Как отладить приложение, в котором пакеты расширения OBB были заменены на доставку активов из Play Store? - PullRequest
3 голосов
/ 16 июня 2020

Стремясь отказаться от устаревшей системы OBB Expansion Pack нашего приложения и заменить ее блестящей новой Dynami c Asset Delivery (DAD), я следил за документацией. Но я не понимаю, что делать дальше. Как мне добраться до места, где я могу нажать Debug и найти активы, готовые к go, как в старые времена, когда мой OBB ждал в телефоне в / storage / emulated / 0 / Android / obb /?

TL; DR: мой ответ приведен ниже, но мне бы очень понравилось, если бы был способ добиться быстрой отладки с помощью пакета ресурсов во время установки. Текущий рабочий процесс, описанный в моем ответе, требует 1) ожидания около 5-10 минут для создания пакета, 2) создания блоба APKS, затем 3) его установки из разделов.

Ниже приведена запись о мой путь к пониманию того, как работать с готовым к установке пакетом ресурсов. Я надеюсь, что мой отчет о моих усилиях вызовет поисковые запросы от других сбитых с толку разработчиков и осветит им путь.

КАК ВСЕ НАЧИНАЛОСЬ

Моя цель: добиться такой же безупречной ситуации, когда я нажимал кнопку «Отладка» в Android Studio, зная, что расширение обратно было аккуратно установлено в соответствующий каталог, чтобы подавать изображения и звуки в наше приложение. Здесь я надеялся нажать Debug и аналогичным образом найти изображения и звуки, готовые к использованию, но вместо этого прямо у себя в моем Asset Manager.

По традиции документов Expansion Pack, документы DAD сделали --local- тестирование звучит как легкий ветерок. Но потом начались проблемы.

Итак, я сначала установил ту самую альфа-версию v0.15 bundletool в надежде испытать «быстрые, итерационные циклы», которые позволят избежать загрузки в Play Store во время развитие. Все идет нормально! Я использовал флаг --local-testing для создания коллекции APK.

Путаница возникла, когда я подключил свое устройство и запустил команду «bundletool install-apk». Bundletool мало что говорит, и у него почти не было экрана -help. Но он выплюнул эти файлы:

ADB >> OK
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-xxhdpi.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-master_2.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-de.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-fr.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-nb.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-sv.apk"
Pushed "/sdcard/Android/data/com.myapp/files/local_testing/base-arm64_v8a_2.apk" 

Я подумал, что одним из них может быть имя моего пакета ресурсов, «my_asset_pack.apk» или что-то в этом роде. Но ничего не было.

Так что мне было любопытно, какой из этих файлов содержит активы, которые я разбил на пакет ресурсов отдельно от моих базовых ресурсов приложения. Я узнал строки локализации («de», «fr», et c.). Но как насчет моих нелокализованных медиа? (Могут ли они быть в base- master _2.apk?)

Было ли что-то еще, что мне нужно было сделать, чтобы эти ресурсы появились? Пока что мои готовые к установке активы не были доступны из Asset Manager при загрузке, поэтому я, должно быть, пропустил шаг.

1 Ответ

0 голосов
/ 29 июня 2020

Хорошо, поэтому общая картина такова, что наша командная строка будет выполнять ту работу, которую Play Store обычно выполняет при получении нашего пакета, перемешивая его через фабрику и публикуя его в формате APK. Пакет выдает кучу разделенных .APK, которые затем, в свою очередь, используются для установки на нашем устройстве. 1006 *

В AS, go для «Создать подписанный пакет -> Android Пакет приложений».

Создайте отладочную сборку с вашими учетными данными.

С Bundletool 1.0 или выше:

bundletool build-apks --bundle=./app-debug.aab --output=./my_app.apks --ks <path to my keystore.jks> --ks-key-alias=<keystorealias> --local-testing

Используйте наш blob-файл .apks для установки приложения:

bundletool install-apks --apks=./my_app.apks

Коснитесь недавно установленного приложения

Выполнить -> Присоединить отладчик к Android процессу.

Наслаждайтесь наличием ваши активы прямо в вашем AssetManager.

Но достигли ли мы «быстрых итеративных циклов»? Эх, вроде того. Создание этого большого двоичного объекта на моем Dell XPS под WSL занимает около 10 минут без звука. Может быть, пришло время достать чековую книжку для этого 64-ядерного Ryzen Threadripper.

ОТЛАДКА СВЕЖЕУСТАНОВЛЕННОЙ ОТЛАДКИ С ПАКЕТОМ АКТИВОВ

Вот что мне подходит. Перед сборкой пакета я временно копирую все активы пакета активов из в обычный каталог базовых активов, / app / src / main / assets /. Таким образом я могу убедиться, что приложение может связаться с ними через AssetManager. Затем эти временные файлы можно было игнорировать во время сборки или удалить с помощью сценария.

Таким образом можно протестировать ресурсы без 10-минутного ожидания .AAB -> .APKS -> split install.

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