Как заставить приложение Android использовать 32-битные или 64-битные библиотеки

на устройстве Android с 64-битной ARM будет иметь два варианта многих библиотек, 32-бит и 64-бит, и их производительность может быть разной. Я хочу знать, есть ли способ заставить приложение использовать 32-битные или 64-битные библиотеки.

3 ответов


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>


  1. если ваш apk написан на чистой java (без jni), на 64-разрядной/32-разрядной вторичной ОС Android, ваше приложение всегда будет работать в 64-разрядном режиме по умолчанию, но если вы хотите, чтобы ваше приложение работало в 32-разрядном режиме, вы можете создать манекен *.so файл и поместите его под <your apk name>/libs/armeabi/ чтобы заставить AndroidRuntime создать 32-битную виртуальную машину для вашего приложения

  2. если какая-то функция вашего apk написана в jni (есть любой на <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>


https://source.android.com/source/64-bit-builds.html

попробуйте это в вас Android.mk

LOCAL_MULTILIB := 32 // or 64