64位android,32位应用程序,32位本机库

时间:2014-03-20 12:25:56

标签: android 32bit-64bit dalvik nativelibrary

假设我们有64位硬件,64位Linux内核和64位机器人 因此,Zygote将以64位进程运行,并具有自己的DVM实例。

现在假设有一个第三方应用程序包含一个32位本机库,它在运行时使用system.loadlibrary调用加载。

我认为当我们尝试运行这个应用程序时,zygote将能够启动该过程,即使apk是为32位机器构建的,DVM也能够解释classes.dex文件。但是当应用程序尝试加载32位本机库时会发生故障,因为在设备仿生libc和其他库都将是64位。

这种理解是否正确?

1 个答案:

答案 0 :(得分:0)

据我所知,如果操作系统支持多个32位库(Java Native Interface 32 bit dll on 64 bit system),32位Native库将在64位操作系统上运行成功,而在Android系统中,OS arch是32位限制( https://android.stackexchange.com/questions/36291/is-android-a-32-bit-or-64-bit-os),因此您需要编译32位本机库。

总之,如果32位运行在64位操作系统,32位需要32位库。