В чем действительно говорит вопрос - можете ли вы выдавать какие-либо команды непосредственно в gradlew через командную строку для сборки, упаковки и развертывания на устройстве?
Можете ли вы развернуть устройство с помощью Gradle из командной строки
Ответ 1
$ gradle installDebug
Это приведет к отладке apk для устройства, но вы должны вручную запустить приложение.
Ответ 2
Поскольку вы используете 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'
Ответ 3
1. Построить проект, установить сгенерированный apk на устройство
# at the root dir of project
$ gradle installDebug
2. Откройте приложение на устройстве
$ adb shell am start -n yourpackagename/.activityname
Ответ 4
Одно предложение:
Создать проект и установить сгенерированное приложение apk и Open на устройстве
$ ./gradlew installDebug && adb shell am start -n com.example/.activities.MainActivity
Ответ 5
Для этого есть три команды:
./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-скрипт для этого, с некоторыми другими функциями.
Ответ 6
Более гибкий способ сделать это - использовать обезьяну:
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
позволяет вам отправить намерение запуска, поэтому вам не требуется знать имя вашей деятельности.
Ответ 7
task appStart(type: Exec, dependsOn: 'installDebug') {
commandLine android.adbExe, 'shell', 'am', 'start', '-n', 'com.example/.MyActivity'
}
Ответ 8
Я написал эту задачу, чтобы иметь возможность устанавливать и открывать приложение на устройстве. Поскольку у меня было несколько 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}
, которую вы уже имеете.
Ответ 9
Сборка → удалить старую версию → установить новую версию → запустить приложение.
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]