Выполнение кода на процессоре Atom/x86 и ARM на устройствах Android

Код, уже отлаженный на планшетах ARM, я использовал планшет Android с процессором Intel Atom для тестирования собственного кода x86 моего приложения (.so, сгенерированного NDK)...

Как и ожидалось, 1) утилита CPU-Z выдает "Архитектура x86" и "Процессор Intel Atom Z3735G" 2) "Оболочка adb cat /proc/cpuinfo" выдает "название модели: Intel(R) Atom(TM) CPU Z3735G @ 1,33 ГГц "

При неожиданном запуске приложения: 1) Log.d (TAG, "CPU:"+ android.os.Build.CPU_ABI) выдает: "CPU:armeabi-v7a" 2) Существуют некоторые собственные.so библиотеки моего приложения только в коде ARM, и они работают здесь правильно.

Я сомневаюсь, что x86 .so lib используется, даже если она доступна

Поведение точно такое же, как у процессора ARM. У вас есть объяснение? Код переведен на x86? Если код конвертируется, он очень хорошо работает!

1 ответ

Устройства Android на базе x86, включая слой эмуляции ARM, который, я думаю, используется при выполнении вашего приложения. При использовании эмуляции не всегда интуитивно понятно.

Вы должны проверить, есть ли у вас такое же количество файлов в libs/x86 и libs/armeabi и libs/armeabi-v7a внутри файла apk. Так что если у вас есть две родные библиотеки для arm, у вас также должно быть две родные библиотеки для x86.

Если число совпадает, но оно все еще не работает, проверьте, совпадают ли имена собственных библиотек для ARM и x86.

Другие вопросы по тегам