web-dev-qa-db-ja.com

ターミナルを使用して特定のAndroidアプリを実行するには?

Eclipseをインストールし、Android SDKを既に使用しています。すべて正常に動作しています。

.apkファイルをインストールしたいので、指示に従ってください。しかし問題は、エミュレータを起動したときに、アプリが自動的に実行されないことです。

ターミナルに、要求した特定のアプリを実行できるコマンドがありますか?

41
Lam Tran

使用 cmd activity start-activity(または代替のam start)コマンド。これは ActivityManager へのコマンドラインインターフェイスです。このヘルプに示されているように、amを使用してアクティビティを開始します。

$ adb Shell am
usage: am [start|instrument]
       am start [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
                [-c <CATEGORY> [-c <CATEGORY>] ...]
                [-e <EXTRA_KEY> <EXTRA_VALUE> [-e <EXTRA_KEY> <EXTRA_VALUE> ...]
                [-n <COMPONENT>] [-D] [<URI>]
       ...

たとえば、Contactsアプリケーションを起動し、Activityではなくパッケージ名のみを知っていると仮定すると、

$ pkg=com.google.Android.contacts
$ comp=$(adb Shell cmd package resolve-activity --brief -c Android.intent.category.LAUNCHER $pkg | tail -1)
$ adb Shell cmd activity start-activity $comp

または代替

$ adb Shell am start -n $comp

http://www.kandroid.org/online-pdk/guide/instrumentation_testing.html (廃止されたU​​RLのコピーである場合もあります: http://source.Android.com /porting/instrumentation_testing.html )その他の詳細については。

アプリケーションを終了するには、使用できます

$ adb Shell am kill com.google.Android.contacts

またはより抜本的な

$ adb Shell am force-stop com.google.Android.contacts
71

このコマンドでAndroidサービスを開始できます。

adbシェルam startservice -n packageName/.ServiceClass

6
user3085499

コマンドラインから作業しているときはいつでも このビルドアンドランスクリプト を維持します。

PACKAGE=com.examply.demo
ACTIVITY=.MainActivity
APK_LOCATION=app/build/outputs/apk/app-debug.apk
echo "Package: $PACKAGE"

echo "Building the project with tasks: $TASKS"
./gradlew $TASKS

echo "Uninstalling $PACKAGE"
adb uninstall $PACKAGE

echo "Installing $APK_LOCATION"
adb install $APK_LOCATION

echo "Starting $ACTIVITY"
adb Shell am start -n $PACKAGE/$ACTIVITY
4

上記のすべての回答を使用しましたが、エラーが発生していたので、

adb Shell monkey -p com.yourpackage.name -c Android.intent.category.LAUNCHER 1

そしてそれは働いた。 1つの利点は、このコマンドを使用する場合、ランチャーアクティビティを指定する必要がないことです。

3
Ezio