Могу ли я загрузить apks для нескольких архитектур в магазин Google Play без использования Android NDK?
Мне нужно произвести 2 apks, один для x86 и один для ARM. Я делаю это с разными версиями пешеходного перехода, который внутренне использует Cordova. Все, что мне нужно сделать для создания двух проектов, это ./cordova/build --release
а затем подпишите АПК. В документах магазина Google Play упоминается способ загрузки обоих в один список приложений, но они предполагают, что я использую Android NDK, а я - нет. Нужно ли мне начать использовать его или есть другой способ просто загрузить оба apks?
1 ответ
Google поддерживает публикацию APK-файлов, относящихся к архитектуре: http://developer.android.com/google/play/publishing/multiple-apks.html. Обратите внимание, что в документации указано жирным шрифтом:
Мы рекомендуем вам разработать и опубликовать один APK
Итак, если вы выберете единый подход APK:
Просто скомпилируйте ваш нативный код в библиотеки (т.е. файлы.so) и разместите их в следующих местах
<Project_Root>/app/src/main/jniLibs/armeabi/
а также
<Project_Root>/app/src/main/jniLibs/x86/
Процесс сборки упакует их соответствующим образом, чтобы ваш APK содержал библиотеки для обеих архитектур. Затем во время выполнения Android обеспечит загрузку библиотеки, соответствующей архитектуре.
Обратите внимание, что вышеизложенное предполагает, что вы используете Gradle для создания ваших APK. Если вы используете старый процесс сборки на основе муравьев, местоположения будут немного другими:
<Project_Root>/libs/armeabi/
а также
<Project_Root>/libs/x86/