【问题标题】:64 bit android, 32 bit application with 32 bit native library64 位安卓、32 位应用程序和 32 位本机库
【发布时间】:2014-04-27 07:10:36
【问题描述】:

假设我们有 64 位硬件、64 位 linux 内核和 64 位 android。
所以 Zygote 将作为 64 位进程运行,并带有自己的 DVM 实例。

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

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

这种理解正确吗?

【问题讨论】:

    标签: android 32bit-64bit dalvik android-native-library


    【解决方案1】:

    据我所知,如果操作系统支持许多 32 位库(Java Native Interface 32 bit dll on 64 bit system),32 位原生库将在 64 位操作系统上成功运行,并且在 Android 系统中,操作系统架构为 32 位限制(@987654322 @),所以需要编译 32 位原生库。

    综上所述,32bits 如果运行在 64bits OS 上,则需要 32bits 库。

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2013-07-27
      相关资源
      最近更新 更多