2012-11-14 14 views

答えて

171

起動adbのシェルを必要とされている特定の活動を起動し、マニフェストファイルに記載されたアクションとして

am start -n yourpackagename/.activityname 
+21

アクティビティ名は、「aapt dump」 xmltree AndroidManifest.xml'と出力を見てください。 – chrisvarnz

+11

あなたは 'adb shell pm list packages -f'でapkを見つけることができ、' aapt'コマンドで使う 'adb pull /path/to/file.apk C:\ some \ folder'で取得することができますコメントしました。 (aaptはビルドツールにあります) –

+11

AndroidManifest.xmlファイルにアクティビティの 'android:exported =" true "'行を追加することを忘れないでください。 – mbelsky

10
adb shell am broadcast -a android.intent.action.xxx 

言及xxxのを次のようにコマンドを入力することができるように。

adb shell am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity 

(より一般的な答えが既に掲載されているが、私はここで素敵な一例を逃した。)

9

たとえば、これはXBMCを開始しますトン十分な評判を持っている...) また

adb shell dumpsys window windows | grep 'mCurrentFocus' 
6

(上記のコメントとしてこれを追加するだろうが、ドン」:

+0

投稿していただきありがとうございます!これは大規模なプロジェクトで本当に役立ちます。 –

+0

あまりにもありがとう、私はさまざまなビルドの種類があり、不思議なことに、アクティビティ名内に、パッケージのサフィックスが使用されていません:/何かを学んだ! – cV2

11

などを使用して、画面の活動の現在の名前を見つけることができます。

mypackagenameのはcom.example.demo

MyActivityNameがAndroidStudioがないように私はそれを実行com.example.test.MainActivity

adb shell am start -n com.example.demo/com.example.test.MainActivity 
+1

^^^これは「 am -n yourpackagename/.activityname」というより正しい説明です。あなたの起動アクティビティは、app pakagenameとは異なるパッケージにある可能性があります – UdayaLakmal

11

です:

am start -n "com.example.app.dev/com.example.app.phonebook.PhoneBookActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 

あなたは、製品の風味を持っている場合devのように、アプリケーション・パッケージ名でのみ発生する必要がありますが、アクティビティー・パッケージ名では使用しないでください。

エミュレータの場合、android:exported="true"フラグがのアクティビティには表示されずに動作しますが、それを動作させるためにルーティングされていない物理デバイスに追加すると便利です。

関連する問題