В чем действительно вопрос: можете ли вы выпустить какие-либо команды непосредственно в gradlew через командную строку для создания, упаковки и развертывания на устройстве?Можете ли вы развернуть устройство через Gradle из командной строки
ответ
$ gradle installDebug
Это приведет к отказу сборки apk к устройству, но вы должны вручную запустить приложение.
1. Построить проект, установить сгенерированный APK для устройства
# at the root dir of project
$ gradle installDebug
2. Откройте приложение на устройстве
$ adb shell am start -n yourpackagename/.activityname
alias arun = "gradle installDebug; adb shell am start -n com.example.app/.activity.MainActivity" –
Я не могу выбрать installDebug в gradle. Нет подходящей задачи. Был ли он переименован? –
@ JonasGröger, похоже, был переименован в installDefaultFlavorDebug – durka42
Поскольку вы используете 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
Update:
Если вы используете applicationIdSuffix ".debug"
, добавьте .debug
к APPID только но оставить активность нетронутую:
'com.example.debug/com.example.MyActivity'
Одна линия предложение:
Построить проект & Установка генерироваться АПК & Открыть приложение на устройстве
$ ./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 script to do this с другими функциями.
task appStart(type: Exec, dependsOn: 'installDebug') {
commandLine android.adbExe, 'shell', 'am', 'start', '-n', 'com.example/.MyActivity'
}
Лучшее решение для запуска – Orgatres
Более гибкий способ сделать это состоит в использовании обезьяну:
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, указанную вlocal.properties
.- Инструмент
monkey
позволяет вам отправить намерение запуска, поэтому вам не требуется знать имя вашей деятельности.
Я написал эту задачу, чтобы иметь возможность установить и открыть приложение на устройстве. Поскольку у меня было несколько 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}
задачи у вас уже есть.
'Gradle tasks' полезно, чтобы увидеть из ряда задач коробки - которая включает в себя установку (но не начиная, как указано ниже) – Dori
Командную строку не IDE конкретно, .i.e. этот способ будет работать с Android Studio или Eclipse IDE –