質問が実際に言っていることは、ビルド、パッケージ化、およびデバイスへのデプロイのために、コマンドラインを介して gradlew に直接コマンドを発行できますか?
9 に答える
$ 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'
1. プロジェクトをビルドし、生成された apk をデバイスにインストールします
# at the root dir of project
$ gradle installDebug
2.デバイスでアプリを開く
$ adb shell am start -n yourpackagename/.activityname
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 スクリプトを書いていますが、他のいくつかの機能があります。
これを行うためのより柔軟な方法は、monkey を使用することです。
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
ツールを使用すると、ランチャー インテントを送信できるため、アクティビティの名前を知る必要はありません。
ビルド -> 古いバージョンをアンインストール -> 新しいバージョンをインストール -> アプリケーションを実行します。
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'
}