В будущем многие Android-устройства будут использовать процессор Atom. Это означает, что при создании приложения, которое можно развернуть на устройстве с процессором Atom, необходимо будет включить собственную библиотеку для атома, а также для процессора x86. Итак, мой вопрос: как определить, какой процессор находится на устройстве, прежде чем решить, какую нативную библиотеку загрузить? Каков наилучший способ выбрать, какую библиотеку загрузить?
Вопрос
Android обнаруживает процессор Atom во время выполнения, чтобы выбрать правильную скомпилированную библиотеку NDK?
Ответы
Ответ 1 · рейтинг 2 · Mārtiņš Možeiko
Вам не нужно ничего декодировать вручную. Просто создайте свою библиотеку, ориентированную на x86, указав правильный APP_ABI в файле Application.mk (прочитайте файл docs\Application-mk.html из дистрибутива ndk):
APP_ABI := armeabi armeabi-v7a x86
Используя это, вы получите три библиотеки в папке libs. Android автоматически выберет правильный во время выполнения.
Если вам нужно обнаружить во время выполнения, вы можете использовать библиотеку cpufeatures, которая распространяется с NDK. Он обеспечивает следующую функцию:
typedef enum {
ANDROID_CPU_FAMILY_UNKNOWN = 0,
ANDROID_CPU_FAMILY_ARM,
ANDROID_CPU_FAMILY_X86,
ANDROID_CPU_FAMILY_MAX /* do not remove */
} AndroidCpuFamily;
/* Return family of the device's CPU */
extern AndroidCpuFamily android_getCpuFamily(void);
Если вам нужно выполнить те же функции на стороне Java, вы должны прочитать файл /proc/cpuinfo и проанализировать его содержимое.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Модернизация с помощью RXJava/RxAndroid: как работает Observable?
- Несколько событий щелчка по элементу группы expandablelistview
- Подходящий способ выйти из приложения для Android? (Ксамарин)
- Как настроить Android ActionBar с помощью Xamarin Forms?
- Библиотека Android NDK: findLibrary вернула значение null
- Как исправить ошибку упаковки Android для Necessitas (Qt)?