可以通过adb shell启动活动吗?

我想通过adb shell启动活动。 以便我可以启动所需的特定活动

启动adb shell并input命令如下

am start -n yourpackagename/.activityname 
 adb shell am broadcast -a android.intent.action.xxx 

提到xxx作为你在清单文件中提到的动作。

例如,这将启动XBMC:

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

(更一般的答案已经发布,但我错过了一个很好的例子。)

我像AndroidStudio一样运行它:

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

如果你有类似dev 产品风格 ,它应该只出现在应用程序包名称中,但不应该出现在活动包名称中。

对于模拟器,它在AndroidManifest.xml活动中没有android:exported="true"标志,但是我发现将它添加到无根据的物理设备以使其工作是有用的。

例如:

MyPackageName是com.example.demo

MyActivityName是com.example.test.MainActivity

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

(将这个作为上面的注释添加,但没有足够的声望…)您也可以使用find当前屏幕活动的名称

 adb shell dumpsys window windows | grep 'mCurrentFocus'