I want to start activity through adb shell. So that I can launch a specific activity that is needed
Launch adb shell and enter the command as follows
am start -n yourpackagename/.activityname
MyPackageName is com.example.demo
MyActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
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.
You can also find the name of the current on screen activity using
adb shell dumpsys window windows | grep 'mCurrentFocus'
adb shell am broadcast -a android.intent.action.xxx
Mention xxx as the action that you mentioned in the manifest file.
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.)