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

kan*_*nna 9 android android-testing

在具有64位ARM的Android设备上,将有两个版本的库,32位和64位,它们的性能可能会有所不同.我想知道是否有办法强制应用程序使用32位或64位库.

kan*_*nna 24

安装apk时可以指定ABI.

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>

  • 很好的答案,但如果我必须在根设备中将其作为系统应用程序推送呢? (2认同)

Ton*_*Guo 9

  1. 如果您的apk是用纯java(没有jni)编写的,那么在64位 - 原始/ 32位辅助Android操作系统上,默认情况下,您的应用程序将始终以64位模式运行,但如果您希望应用程序在32位运行在bit模式下,您可以创建一个虚拟*.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>

  • @ VC.One区别在于我提供了一种强制在32位或64位模式下运行纯java apk的方法. (3认同)