通过adb启动App而不知道活动名称

时间:2015-04-28 22:49:39

标签: android android-intent adb

从帖子jQuery docs开始,我们可以通过adb

启动Android应用
adb shell am start -n yourpackagename/.activityname

但是有可能在不知道活动名称的情况下通过adb启动Android应用程序吗?例如,通过将 android.intent.action.MAIN 意图发送给包?也许有些命令如下:

adb shell am start -a android.intent.action.MAIN -n packageName

谢谢!

-Cosmo

3 个答案:

答案 0 :(得分:78)

是的,可以通过使用猴子工具的adb shell启动应用程序。

使用this answer中的命令:

adb shell monkey -p app.package.name -c android.intent.category.LAUNCHER 1

此命令模拟应用程序图标单击,因此意图隐式意图LAUNCHER将传递给在应用程序清单(MAIN)中声明的特定接收方

答案 1 :(得分:7)

使用最新版本(至少API 25),您可以在不知道其名称的情况下启动默认活动,而不使用monkey

PKG=com.android.calculator2
adb shell am start $PKG/$(adb shell cmd package resolve-activity -c android.intent.category.LAUNCHER $PKG | sed -n '/name=/s/^.*name=//p')

答案 2 :(得分:0)

如果你有apk文件,你可以使用droidbot安装和启动应用程序。

> droidbot -d emulator-5554 -a <xxx.apk> -install_app -policy none -count 0

DroidBot基于adb,但它使用静态分析自动提取活动名称。