Сборка apk с динамическими функциональными модулями из командной строки без bundletool - PullRequest
0 голосов
/ 20 июня 2019

У нас есть несколько динамических функциональных модулей.Мы хотим легко построить отладочную версию нашего приложения с использованием ADB и дополнительной загрузки.Когда мы используем ./gradlew app:assembleDebug наши динамические модули не включены в апк.Я знаю, что есть способ сделать это через Android Studio:

enter image description here

Но есть ли способ использовать ADB для этого?По сути, просто скажите «включите все модули динамических функций, как если бы они были частью базового модуля».

Я также знаю, что каждый разработчик может собрать / собрать apk для своего тестового устройства с помощью bundletool.Но этот многошаговый процесс замедляет тех из нас, кто предпочитает CL gradle.

1 Ответ

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

Либо я, должно быть, использовал более старую версию Android Gradle Plugin, либо я звонил assemble, а не install.При использовании AGP 3.5.0-beta04, вызывающего ./gradlew app:installDebug, запускается bundletool и автоматически загружаются необходимые разделенные apks:

...
The APKs have been extracted in the directory: /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942
Installing APKs 'base-xxhdpi.apk, base-master_2.apk, base-en.apk, base-x86_2.apk, my-dynamic-feature-xxhdpi.apk, my-dynamic-feature-master.apk' on 'Nexus_5X_API_25(AVD) - 7.1.1' for app:debug
01:30:05 I/SplitApkInstallerBase: Created install session 1503835220 with options -r -t -S 5653406
01:30:05 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-xxhdpi.apk to session 1503835220
01:30:05 D/SplitApkInstaller: Executing : cmd package install-write -S 285980 1503835220 0_base-xxhdpi -
01:30:05 V/ddms: execute: running cmd package install-write -S 285980 1503835220 0_base-xxhdpi -
01:30:05 V/ddms: execute 'cmd package install-write -S 285980 1503835220 0_base-xxhdpi -' on 'emulator-5554' : EOF hit. Read: -1
01:30:05 V/ddms: execute: returning
01:30:05 D/SplitApkInstaller: Successfully uploaded base-xxhdpi.apk
01:30:05 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-master_2.apk to session 1503835220
01:30:05 D/SplitApkInstaller: Executing : cmd package install-write -S 4887264 1503835220 1_base-master__ -
01:30:05 V/ddms: execute: running cmd package install-write -S 4887264 1503835220 1_base-master__ -
01:30:06 V/ddms: execute 'cmd package install-write -S 4887264 1503835220 1_base-master__ -' on 'emulator-5554' : EOF hit. Read: -1
01:30:06 V/ddms: execute: returning
01:30:06 D/SplitApkInstaller: Successfully uploaded base-master_2.apk
01:30:06 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-en.apk to session 1503835220
01:30:06 D/SplitApkInstaller: Executing : cmd package install-write -S 32342 1503835220 2_base-en -
01:30:06 V/ddms: execute: running cmd package install-write -S 32342 1503835220 2_base-en -
01:30:06 V/ddms: execute 'cmd package install-write -S 32342 1503835220 2_base-en -' on 'emulator-5554' : EOF hit. Read: -1
01:30:06 V/ddms: execute: returning
01:30:06 D/SplitApkInstaller: Successfully uploaded base-en.apk
01:30:06 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-x86_2.apk to session 1503835220
01:30:06 D/SplitApkInstaller: Executing : cmd package install-write -S 401632 1503835220 3_base-x____ -
01:30:06 V/ddms: execute: running cmd package install-write -S 401632 1503835220 3_base-x____ -
01:30:06 V/ddms: execute 'cmd package install-write -S 401632 1503835220 3_base-x____ -' on 'emulator-5554' : EOF hit. Read: -1
01:30:06 V/ddms: execute: returning
01:30:06 D/SplitApkInstaller: Successfully uploaded base-x86_2.apk
01:30:06 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/my-dynamic-feature-xxhdpi.apk to session 1503835220
01:30:06 D/SplitApkInstaller: Executing : cmd package install-write -S 15362 1503835220 4_my-dynamic-feature-xxhdpi -
01:30:06 V/ddms: execute: running cmd package install-write -S 15362 1503835220 4_my-dynamic-feature-xxhdpi -
01:30:06 V/ddms: execute 'cmd package install-write -S 15362 1503835220 4_my-dynamic-feature-xxhdpi -' on 'emulator-5554' : EOF hit. Read: -1
01:30:06 V/ddms: execute: returning
01:30:06 D/SplitApkInstaller: Successfully uploaded my-dynamic-feature-xxhdpi.apk
01:30:06 I/SplitApkInstaller: Uploading APK /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/my-dynamic-feature-master.apk to session 1503835220
01:30:06 D/SplitApkInstaller: Executing : cmd package install-write -S 30826 1503835220 5_my-dynamic-feature-master -
01:30:06 V/ddms: execute: running cmd package install-write -S 30826 1503835220 5_my-dynamic-feature-master -
01:30:06 V/ddms: execute 'cmd package install-write -S 30826 1503835220 5_my-dynamic-feature-master -' on 'emulator-5554' : EOF hit. Read: -1
01:30:06 V/ddms: execute: returning
01:30:06 D/SplitApkInstaller: Successfully uploaded my-dynamic-feature-master.apk
01:30:06 V/ddms: execute: running cmd package install-commit 1503835220
01:30:14 V/ddms: execute 'cmd package install-commit 1503835220' on 'emulator-5554' : EOF hit. Read: -1
01:30:14 V/ddms: execute: returning
01:30:14 D/SplitApkInstaller: Successfully install apks: [/var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-xxhdpi.apk, /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-master_2.apk, /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-en.apk, /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/base-x86_2.apk, /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/my-dynamic-feature-xxhdpi.apk, /var/folders/1g/mz8f0hgd0dg8ghy3pd_0llxm0000gn/T/apkSelect457573925930020942/my-dynamic-feature-master.apk]
Installed on 1 device.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...