[android] Is it possible to start activity through adb shell?

I want to start activity through adb shell. So that I can launch a specific activity that is needed

This question is related to android

The answer is


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

Mention xxx as the action that you mentioned in the manifest file.


You can also find the name of the current on screen activity using

adb shell dumpsys window windows | grep 'mCurrentFocus'

For example this will start XBMC:

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

(More general answers are already posted, but I missed a nice example here.)


I run it like AndroidStudio does:

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

If you have product flavour like dev, it should occur only in application package name but shouldn't occur in activity package name.

For emulator, it works without android:exported="true" flag on activity in AndroidManifest.xml but I found it useful to add it for unrooted physical device to make it work.


eg:

MyPackageName is com.example.demo

MyActivityName is com.example.test.MainActivity

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