2012-11-14 105 views

回答

171

启动亚行外壳特定活动和进入命令如下

am start -n yourpackagename/.activityname 
+21

您可以通过运行'aapt dump找到活动名称xmltree AndroidManifest.xml'并查看输出。 – chrisvarnz

+11

你可以通过'adb shell pm list packages -f'在手机上找到你的apk,并通过adb pull /path/to/file.apk C:\ some \ folder'与'aapt'命令一起使用来检索它。Chris评论说。 (aapt在编译工具中) –

+11

另外不要忘记在AndroidManifest.xml文件中添加'android:exported =“true”'行。 – mbelsky

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

提到XXX如您在清单文件中提及的行动。

9

例如,这将启动XBMC:

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

(更普遍的答案已经发布,但我在这里错过了一个很好的例子。)

6

(想补充一点如上评论,但不要”没有足够的声誉...) 您也可以使用查找当前的屏幕上活动的名称

adb shell dumpsys window windows | grep 'mCurrentFocus' 
+0

感谢您发布这个!这在大型项目中非常有用。 –

+0

也非常感谢,我有不同的构建类型,奇怪的是在活动名称中,没有使用包的后缀:/ did learn something! – cV2

11

如:

MyPackageName是com.example.demo

MyActivityName是com.example.test.MainActivity

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

^^^这是正确的解释,而不是“ am start -n yourpackagename/.activityname”你发起的活动可能在不同的包中,而不是在app pakagename中 – UdayaLakmal

11

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

相关问题