如何强制 Android 应用程序使用 32 位或 64 位库
How to force Android application to use either 32bit or 64 bit libraries
在具有 64 位 ARM 的 Android 设备上,将有许多库的两个变体,32 位和 64 位,并且它们的性能可能不同。我想知道是否有办法强制应用程序使用 32 位或 64 位库。
https://source.android.com/source/64-bit-builds.html
在你身上试试这个Android.mk
LOCAL_MULTILIB := 32 // or 64
安装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>
如果您的 apk 是用纯 java(没有 jni)编写的,在 64-bit-primiary/32-bit-secondary Android OS 上,您的应用将始终默认情况下 运行 在 64 位模式下,但如果您希望您的应用程序在 32 位模式下 运行,您可以创建一个虚拟 *.so
文件并将其放在 <your apk name>/libs/armeabi/
下以强制 AndroidRuntime 为您的应用创建 32 位 VM
如果你的 apk 的某些功能是用 jni 编写的(<your apk name>/libs/
文件夹中有任何 *.so
文件),你可以使用以下命令使它成为 运行 在 64 位或 32 位虚拟机中:
- 在 32 位模式下运行,因为只会安装 32 位本机库
adb shell install --abi armeabi-v7a <path to your apk>
- 在 64 位模式下运行,因为只会安装 64 位本机库
adb shell install --abi arm64-v8a <path to your apk>
在具有 64 位 ARM 的 Android 设备上,将有许多库的两个变体,32 位和 64 位,并且它们的性能可能不同。我想知道是否有办法强制应用程序使用 32 位或 64 位库。
https://source.android.com/source/64-bit-builds.html
在你身上试试这个Android.mk
LOCAL_MULTILIB := 32 // or 64
安装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>
如果您的 apk 是用纯 java(没有 jni)编写的,在 64-bit-primiary/32-bit-secondary Android OS 上,您的应用将始终默认情况下 运行 在 64 位模式下,但如果您希望您的应用程序在 32 位模式下 运行,您可以创建一个虚拟
*.so
文件并将其放在<your apk name>/libs/armeabi/
下以强制 AndroidRuntime 为您的应用创建 32 位 VM如果你的 apk 的某些功能是用 jni 编写的(
<your apk name>/libs/
文件夹中有任何*.so
文件),你可以使用以下命令使它成为 运行 在 64 位或 32 位虚拟机中:- 在 32 位模式下运行,因为只会安装 32 位本机库
adb shell install --abi armeabi-v7a <path to your apk>
- 在 64 位模式下运行,因为只会安装 64 位本机库
adb shell install --abi arm64-v8a <path to your apk>