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

Вопрос:На Android-устройстве с 64-битным ARM было бы два варианта многих библиотек, 32 бит и 64 бит, и их производительность может быть разной. Я хочу знать, есть ли способ заставить приложение использовать 32-битные или 64-битные библиотеки. Лучший ответ: ABI может быть задан при установке apk. adb install --abi В случае устройства ARM, Для

Вопрос:

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

Лучший ответ:

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-битную виртуальную машину для вашего приложения.

  • Если какая-либо функция вашего apk записана в jni (там есть файл *.so в папке <your apk name>/libs/), вы можете использовать следующую команду для ее запуска в 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>

Ответ №2

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

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

LOCAL_MULTILIB := 32 // or 64

Оцените статью
Добавить комментарий