如何强制 Android 应用程序使用 32 位或 64 位库

新手上路,请多包涵

在具有 64 位 ARM 的 Android 设备上,将有许多库的两个变体,32 位和 64 位,并且它们的性能可能不同。我想知道是否有办法强制应用程序使用 32 位或 64 位库。

原文由 kanna 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.3k
2 个回答

ABI可以在安装apk的时候指定。

adb install --abi <path to apk>

如果是 ARM 设备,

要在 32 位模式下运行安装使用,

adb install --abi armeabi-v7a <path to apk>

要在 64 位模式下运行安装,请使用,

adb install --abi arm64-v8a <path to apk>

原文由 kanna 发布,翻译遵循 CC BY-SA 3.0 许可协议

  1. 如果您的 apk 是用纯 java 编写的(没有 jni),在 64 位主/32 位辅助 Android 操作系统上,您的应用程序将默认始终以 64 位模式运行,但如果您希望您的应用程序以 32 位模式运行位模式,您可以创建一个虚拟 *.so 文件并将其放在 <your apk name>/libs/armeabi/ 下,以强制 AndroidRuntime 为您的应用创建 32 位 VM

  2. 如果你的apk的某些功能是用jni写的(在 *.so 文件夹中有 <your apk name>/libs/ 文件),你可以使用下面的命令让它在64位或32位VM中运行:

    • 在 32 位模式下运行,因为只会安装 32 位本机库

adb shell install --abi armeabi-v7a <path to your apk>

  • 以 64 位模式运行,因为只会安装 64 位本机库

adb shell install --abi arm64-v8a <path to your apk>

原文由 tonykwok 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题