質問は本当に何を言っています-コマンドラインを介して直接gradlewにコマンドを発行して、デバイスにビルド、パッケージ化、デプロイできますか?
質問は本当に何を言っています-コマンドラインを介して直接gradlewにコマンドを発行して、デバイスにビルド、パッケージ化、デプロイできますか?
回答:
$ gradle installDebug
これにより、デバッグビルド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
更新:
を使用している場合は、appIdにのみapplicationIdSuffix ".debug"
追加.debug
し、アクティビティはそのままにします。
'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.デバイスでアプリを開く
$ adb shell am start -n yourpackagename/.activityname
alias arun="./gradlew installDebug && adb shell am start -n com.example.package/.LauncherActivity"
#ステップ2を実行するステップ1が成功した場合のみ
1行の文:
プロジェクトをビルドし、生成されたAPKをインストールして、デバイスにアプリを開く
$ ./gradlew installDebug && adb shell am start -n com.example/.activities.MainActivity
これを行うには、3つのコマンドがあります。
./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がパス上にある必要はなく、でポイントされているSDKのadbバージョンを使用しlocal.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]
このタスクは、デバイスにアプリケーションをインストールして開くこともできるように作成しました。私は複数持っていたのでbuildTypes
とflavors
異なるアプリケーションIDと、それは、パッケージ名をハードコードすることは不可能でした。だから私は代わりにこのように書いた:
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
すぐに使えるタスクを確認するのに役立ちます-これにはインストールが含まれます(ただし、下記のように開始されません)