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

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

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

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

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

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

Немодифицированный оригинальный 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, все равно должно быть все в порядке.

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

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

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

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

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

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