Безопасно ли поддерживать только armeabi-v7a для Android 4 и выше?

Я разработал приложение, которое в основном находится на C ++ и, .soкак обычно, скомпилировано NDK в библиотеки. Мы знаем, что собственные приложения должны быть построены для каждой архитектуры процессора отдельно; поэтому у меня разные armeabiфайлы для armeabi-v7aи x86. (Я умышленно ушел mipsи so, поскольку не так много устройств Android с этими архитектурами).

Однако размер очень большой, и каждый soфайл занимает около 90 MBместа, и я хочу его уменьшить.

Я знаю, что я могу уйти armeabi-v7aиз-за обратной совместимости, но в этом случае приложение будет работать очень медленно.

Учитывая тот факт, что мое приложение поддерживает только андроид ICS и выше ( minSdkVersion="14"), могу ли я безопасно удалить armeabiи предположить, что все эти новые устройства используют armeabi-v7a? Или некоторые из устройств могут по-прежнему использовать старые, armeabiа не armeabi-v7aархитектуры?

android,android-ndk,arm,

14

Ответов: 3


18 голосов принято

Немодифицированный оригинальный Android-источник для Android 4.0 и новее по умолчанию не поддерживает ARMv5 / ARMv6 (но может быть изменен для сборки для ARMv5 / ARMv6 - на нем созданы пользовательские сборки, которые запускаются на ARMv6). Я не уверен, что можно получить сертифицированное ARMv6 устройство, совместимое с такими выпусками Android, или если оно применимо только для неофициальных прошивок. Начиная с Android 4.4, CDD (определение совместимости) строго требует ARMv7. Подробнее об этом см. Https://android.stackexchange.com/questions/34958/what-are-the-minimum-hardware-specifications-for-android .

Так что да, возможно, в принципе, вы можете отказаться, armeabiесли ваше приложение требует Android 4.0, но я не уверен, есть ли такая официальная гарантия. Если вам нужен Android 4.4, все равно должно быть хорошо.


3

Нет устройств Android 4+, которые поддерживают, armeabiно нет armeabi-v7a, поэтому вы можете спокойно упасть armeabi.

Вы можете проверить это самостоятельно в Google Play: создать 2 APK (1, который поддерживает armeabiи 1, который поддерживает armeabi-v7a), и попробовать загрузить их в Google Play. Вы заметите, что у них одинаковое количество поддерживаемых устройств.

Вы даже получите сообщение об ошибке при загрузке в Google Play, если вы разделите APK по архитектуре, пытаясь поддерживать обе архитектуры:

Версия xxx этого приложения не может быть загружена никакими устройствами, так как все они получат APK с более высокими кодами версий.


0

Как владелец zenfone 2 я бы сказал нет - эти устройства запускают ICS +, но с микроархитектурой x86. Если вы ищете Android на x86% в google, вы должны столкнуться с страницей единства, рассказывающей о рыночной доле различных микроархитектур. Кроме того, есть несколько нишевых продуктов с использованием MIPS-базовых процессоров и запуск ICS +.

Хотя есть механизм, позволяющий устройствам x86 android запускать apk, скомпилированные без так для x86, у которых есть другие недостатки.

андроид, андроид-NDK, рука,