Android 是否可以通过adb外壳启动活动?
我想通过adb shell启动活动。这样我就可以启动所需的特定活动启动adb shell并输入如下命令Android 是否可以通过adb外壳启动活动?,android,Android,我想通过adb shell启动活动。这样我就可以启动所需的特定活动启动adb shell并输入如下命令 am start -n yourpackagename/.activityname 将xxx作为您在清单文件中提到的操作。例如,这将启动XBMC: adb shell am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity (更多的一般答案已经发布,但我错过了一个很好的例子。)您还
am start -n yourpackagename/.activityname
将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
,它应该只出现在应用程序包名称中,而不应该出现在活动包名称中
对于emulator,它在没有android:exported=“true”的情况下工作在
AndroidManifest.xml
中标记活动,但我发现为无根物理设备添加该标记非常有用,以使其工作。您可以通过运行aapt dump xmltree AndroidManifest.xml
并查看输出来查找活动名称。您可以在手机上找到带有adb shell pm列表包的apk-f
并使用adb pull/path/to/file.apk C:\some\folder
检索它,以便与aapt
命令一起使用。(aapt在构建工具中)也不要忘记为AndroidManifest.xml文件中的活动添加android:exported=“true”
行。在手机上查找apk的更简单方法是adb shell pm path
@ChristopherGalpin无需拉动apk,adb shell dumpsys package
完成了这项工作。^^^^这是正确的解释,而不是“am start-n yourpackagename/.activityname”您启动的活动可能在不同的包中,而不是在应用程序PakagenamAnks中。很多时候,我有不同的构建类型,奇怪的是在活动名称中,没有使用软件包的后缀:/doeslearning!哇,真的很惊讶。我可以看到每个应用程序和游戏的每个活动名称,即使它们有混淆!该命令似乎不再有效,至少在我的模拟器上是这样(grep不返回任何内容):(
am start -n "com.example.app.dev/com.example.app.phonebook.PhoneBookActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER