Android レイアウトをテストするとき、私は Eclipse から (ADT を使用して) 3 つの異なるエミュレーターを常にビルドしているため、3 回実行してからそれぞれを選択する必要があります。[実行] を 1 回押すと、アプリケーションが 3 つすべてで開始されるようにする構成またはプラグインはありますか?
2 に答える
やっとできました。私はMac環境を使用しているので、Applescriptを使用していくつかの変数の設定を簡略化しましたが、これはターミナルから直接実行できます。
set apkref to "install -r /path/to/your/app.apk"
set appref to "shell am start -a android.intent.action.MAIN -n
com.example.app/com.example.app.MainActivity"
set sourceref to "/path/to/android/tools/"
set devices to do shell script sourceref & "adb devices | grep \"[device]$\" |
sed 's/.device/\\ /' | sed 's/^/\\adb -s /' | sed 's@$@\\" & apkref &
" \\&" & "@' | sed 's@^@\\" & sourceref & "@'
| sed -E -e :a -e '$!N; s/\\n/ /g; ta'"
do shell script devices
set devices to do shell script sourceref & "adb devices | grep \"[device]$\" |
sed 's/.device/\\ /' | sed 's/^/\\adb -s /' | sed 's@$@\\" & appref &
" \\&" & "@' | sed 's@^@\\" & sourceref & "@'
| sed -E -e :a -e '$!N; s/\\n/ /g; ta'"
do shell script devices
ご覧のとおり、私はいくつかのシェルコマンドを実行しています。sedのこの特定の連結を達成することは苦痛でしたが、素晴らしい学習経験でした。
最初のシェルスクリプトは、adbデバイスで見つかったすべてのデバイスにapkをインストールします。アプリがすでに存在する場合、adbは-rフラグのためにアプリを再インストールします。コマンドを&と連結して、各コマンドがバックグラウンドで実行され、インストールと実行が同時に行われるようにします。以前は、コマンドを&&で連結しようとしたため、各コマンドが順番を待っていたため、プロセスが大幅に遅くなりました。
2番目のシェルスクリプトは、すべてのデバイスでアプリを実行します。
これはsedの知識が豊富な人なら簡単にできると思いますが、私にとってはうまくいきます。
この小さな経験に触発されて、私は先に進み、これを実行して各デバイスでadb logcatを実行するAutomatorアプリケーションを作成しました(したがって、1つのlogcatからctrl + cを実行すると、次のlogcatが起動します)。
私はこのAutomatorアプリを実行するためのサービスを作成するところまで行きましたが、MacOSXのEclipseはサービスをサポートしていません。回避策は、アプリを外部ツールとして実行することでした。
さらに味わいを増すために、AutomatorアプリにGrowl通知を追加して、adbがアプリをインストールして実行しているときに通知します。
一度に 3 つのエミュレーターを実行できるほど強力なマシンがあればいいのにと思います。:)
Android 開発ツールでこれができるとは思えません...おそらく最も近いのは、何かをスクリプト化することです。「adb devices」はエミュレータ インスタンスのリストを取得します。次に、それぞれで次の 2 つのコマンドを実行して、そのリストを繰り返すだけです。
adb -s <シリアル番号> install app.apk
adb -s <シリアル番号> shell am start -a android.intent.action.MAIN -n org.example.app/org.example.app.MainActivity