О чем вопрос на самом деле - можете ли вы вводить какие-либо команды непосредственно в gradlew через командную строку для сборки, упаковки и развертывания на устройстве?
android
gradle
android-studio
gradlew
Мэтт Веттон
источник
источник
gradle tasks
полезно увидеть готовые задачи, которые включают установку (но не запуск, как указано ниже)Ответы:
Это отправит apk сборки отладки на устройство, но вам придется вручную запустить приложение.
источник
Поскольку вы используете Gradle, вы можете просто добавить свою задачу в build.gradle
task appStart(type: Exec, dependsOn: 'installDebug') { // linux commandLine 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MyActivity' // windows // commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MyActivity' }
затем назовите его в корне вашего проекта
$ gradle appStart
Обновить:
Если вы используете
applicationIdSuffix ".debug"
, добавьте только.debug
к appId, но оставьте действие нетронутым:'com.example.debug/com.example.MyActivity'
источник
'com.your.packagename/.path.relative.to.your.packagename.MyActivity'
вместо того,'com.example/.MyActivity'
если ваша активность не находится в корне вашего пакета.1. Соберите проект, установите сгенерированный apk на устройство.
# at the root dir of project $ gradle installDebug
2. Откройте приложение на устройстве.
источник
alias arun="./gradlew installDebug && adb shell am start -n com.example.package/.LauncherActivity"
#Runs step2 Только когда Шаг 1 успешенОднострочное предложение:
Создать проект и установить созданный apk и открыть приложение на устройстве
$ ./gradlew installDebug && adb shell am start -n com.example/.activities.MainActivity
источник
Для этого есть три команды:
./gradlew assembleDebug #To build the project
adb install -r ./app/build/outputs/apk/app-debug.apk #To install it to the device
adb shell am start -n $PACKAGE/$PACKAGE.$ACTIVITY #To launch the application in the device
, где $ PACKAGE - это пакет разработки, а $ ACTIVITY - это действие, которое нужно запустить (действие средства запуска).Для этого я написал сценарий bash с некоторыми другими функциями.
источник
Более гибкий способ сделать это - использовать обезьяну:
task runDebug (type: Exec, dependsOn: 'installDebug') { commandLine android.getAdbExe().toString(), "shell", "monkey", "-p", "your.package.name.debugsuffix", "-c", "android.intent.category.LAUNCHER", "1" }
Некоторые преимущества этого метода:
getAdbExe
не требует наличия adb на пути и использует версию adb из sdk, на который указывает inlocal.properties
.monkey
Инструмент позволяет отправить пусковое намерение, так что вы не должны знать название вашей деятельности.источник
adb shell am start your.package.name.debugsuffix\.Activity
Сборка -> удалить старую версию -> установить новую версию -> запустить приложение.
echo "Build application" && ./gradlew clean build && echo "Uninstall application" && adb uninstall [application package] && echo "Install application" && adb -d install app/build/outputs/apk/<build type>/[apk name].apk echo "Run application" && adb shell am start -n [application package]/.[application name]
Или, если вы хотите установить и запустить приложение в режиме отладки.
./gradlew installDebug && adb shell am start -n [application package]/.[application name]
источник
task appStart(type: Exec, dependsOn: 'installDebug') { commandLine android.adbExe, 'shell', 'am', 'start', '-n', 'com.example/.MyActivity' }
источник
Я написал эту задачу, чтобы иметь возможность установить, а также открыть приложение на устройстве. Так как у меня было несколько
buildTypes
иflavors
с различными идентификаторами приложений, не было возможности жестко закодировать имя пакета. Поэтому я написал это так:android.applicationVariants.all { variant -> task "open${variant.name.capitalize()}" { dependsOn "install${variant.name.capitalize()}" doLast { exec { commandLine "adb shell monkey -p ${variant.applicationId} -c android.intent.category.LAUNCHER 1".split(" ") } } } }
Это даст вам
open{variant}
все, что уinstall{variant}
вас уже есть.источник