В чем разница между armeabi-v7a, arm64-v8a, x86? - PullRequest
0 голосов
/ 30 июня 2019

Я работаю над приложением для Android на Kivy. Я использую Buildozer для компиляции файла APK. В файле спецификации Buildozer есть настройка android.arch = armeabi-v7a, я не понял этого.

Кроме того, когда я сгенерировал файл APK с помощью команды buildozer -v android debug и установил его с помощью команды adb install bin/<appname>.apk - он не открылся на моем телефоне Android.

Пожалуйста, помогите мне, ребята!

1 Ответ

0 голосов
/ 30 июня 2019

Это наборы команд процессора. В основном вам не нужно беспокоиться об этом, по умолчанию все в порядке, но я хотел добавить что-то в документы по этому поводу из-за недавних изменений.

По сути, данное устройство Android может иметь руку или процессор x86 (или даже что-то еще, но это не важно), это просто разные типы архитектуры от разных производителей. Процессоры руки наиболее распространены, но x86 не является необычным. Когда вы компилируете код, вывод зависит от цели архитектуры. Когда вы создаете приложение Kivy, вы указываете одну из архитектур, и тогда приложение будет работать только на этом типе устройства. Если вы хотите поддерживать все устройства, вы можете скомпилировать несколько APK-файлов для распространения - магазин Play позволит вам загрузить более одного и отправит каждому устройству нужное.

В рамках данного типа архитектуры существует несколько версий. armeabi-v7a - более старая цель, для 32-битного процессора, почти все устройства поддерживают эту цель. arm64-v8a - более новая 64-битная цель (аналогично 32-битному -> 64-битному переходу в настольных компьютерах). Я думаю, что большинство новых устройств 64-битные, но не уверен. Устройства arm64-v8a могут запускать код, скомпилированный для armeabi-v7a, он обратно совместим.

С конца этого года в магазине Play будет требоваться загрузить как минимум APK arm64-v8a, поскольку это обеспечивает лучшую поддержку для новых устройств. Вы также сможете загружать другие APK-файлы для поддержки устройств других типов.

Это не совсем полная история: некоторые устройства x86 имеют специальную библиотеку, которая позволяет им запускать код, скомпилированный для оружейных устройств. Я не уверен, насколько это широко распространено, но это кажется довольно распространенным явлением.

Для проблемы вашего приложения используйте adb logcat , чтобы увидеть, что не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...