Was die Frage wirklich sagt - können Sie Befehle direkt über die Befehlszeile an gradlew senden, um sie auf einem Gerät zu erstellen, zu verpacken und bereitzustellen?
android
gradle
android-studio
gradlew
Matt Whetton
quelle
quelle
gradle tasks
ist hilfreich, um die sofort einsatzbereiten Aufgaben zu sehen - einschließlich der Installation (aber nicht wie unten angegeben)Antworten:
Dadurch wird das Debug-Build-Apk auf das Gerät übertragen, Sie müssen die Anwendung jedoch manuell starten.
quelle
Da Sie Gradle verwenden, können Sie einfach Ihre eigene Aufgabe in build.gradle hinzufügen
Rufen Sie es dann in Ihrem Projektstamm auf
$ gradle appStart
Aktualisieren:
Wenn Sie verwenden
applicationIdSuffix ".debug"
, fügen Sie nur.debug
zur AppId hinzu , lassen Sie die Aktivität jedoch unberührt:'com.example.debug/com.example.MyActivity'
quelle
'com.your.packagename/.path.relative.to.your.packagename.MyActivity'
anstelle von sein,'com.example/.MyActivity'
wenn sich Ihre Aktivität nicht im Stammverzeichnis Ihres Pakets befindet.1. Projekt erstellen, generierte apk auf Gerät installieren
2. Öffnen Sie die App auf dem Gerät
quelle
alias arun="./gradlew installDebug && adb shell am start -n com.example.package/.LauncherActivity"
#Läuft Schritt 2 Nur wenn Schritt 1 erfolgreich istEinzeiliger Satz:
Projekt erstellen & generierte apk installieren & App auf Gerät öffnen
quelle
Es gibt drei Befehle, um dies zu erreichen:
./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
Dabei ist $ PACKAGE das Entwicklungspaket und $ ACTIVITY die zu startende Aktivität (die Launcher-Aktivität).Ich habe ein Bash-Skript geschrieben, um dies zu tun , mit anderen wenigen Funktionen.
quelle
Eine flexiblere Möglichkeit ist die Verwendung von Affen:
Einige Vorteile dieser Methode:
getAdbExe
erfordert nicht, dass adb auf dem Pfad ist und verwendet die adb-Version von dem SDK, auf das in verwiesen wirdlocal.properties
.monkey
Tool können Sie eine Startabsicht senden, sodass Sie den Namen Ihrer Aktivität nicht kennen müssen.quelle
adb shell am start your.package.name.debugsuffix\.Activity
Erstellen -> alte Version deinstallieren -> neue Version installieren -> Anwendung ausführen.
Oder wenn Sie eine Anwendung im Debug-Typ installieren und ausführen möchten.
quelle
quelle
Ich habe diese Aufgabe geschrieben, um die Anwendung auf dem Gerät installieren und auch öffnen zu können. Da ich mehrere
buildTypes
undflavors
mit unterschiedlichen Anwendungs-IDs hatte, war es nicht möglich, den Paketnamen fest zu codieren. Also habe ich es stattdessen so geschrieben:Dies würde Ihnen
open{variant}
für jedeinstall{variant}
Aufgabe geben, die Sie bereits haben.quelle