我正在尝试从命令行获取应用程序及其可启动活动的列表。我知道
aapt dump badging
会给我这个信息。我只是想知道我是否可以从ADBshell的上下文中获取这些信息。我意识到我可以将文件拉到本地机器,但是有些APK相当大,所以我更愿意直接从设备中获取这些信息…
adb shell dumps
将为您提供大量信息,包括可启动的活动。例如,输出将列出对动作android. int.action.MAIN
做出反应的活动:
android.intent.action.MAIN:
423fff90 com.android.bluetooth/.bpp.BluetoothBppActivity filter 42400218
424003d0 com.android.bluetooth/.bpp.BluetoothBppSetting filter 42400608
42400758 com.android.bluetooth/.bpp.BluetoothBppPrintPrefActivity filter 424009b8
42400b08 com.android.bluetooth/.bpp.BluetoothBppStatusActivity filter 42400d60
42400f10 com.android.bluetooth/.bpp.BluetoothBppAuthActivity filter 42401158
42408bb8 com.google.android.apps.books/.app.BooksActivity filter 42408e88
42414f50 com.android.providers.calendar/.CalendarContentProviderTests filter 42415270
42415a38 com.android.providers.calendar/.CalendarDebug filter 42415c28
42415df0 com.android.providers.calendar/.CalendarDebugActivity filter 42416048
...
请注意,输出是巨大的;您可能希望限制输出。您可以在其输出顶部查看子类别的信息:
Currently running services:
SurfaceFlinger
accessibility
account
activity
alarm
...
package
...
在您的情况下,您可能只对adb shell Dumfos包
的输出感兴趣。
我不知道亚行有什么方法可以做到这一点,但是你可以在Java中敲一些东西来阅读所有这些信息。
请参见包管理器。
尝试adb shell pm list包
。这将为您提供所有包。至于可启动的活动,请尝试使用adb shell am start
。