是否可以通过 adb shell 启动活动?

我想通过 adb shell 启动活动,这样我就可以启动需要的特定活动

204810 次浏览

启动 adb shell 并按如下方式输入命令

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

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

还可以使用以下命令查找屏幕上当前活动的名称

adb shell dumpsys window windows | grep 'mCurrentFocus'

例如:

MyPackageName 是 com.example.demo

MyActivityName 是 com.example.test. MainActivity

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

我像 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"标志,但是我发现将它添加到非根物理设备中以使其工作是有用的。