我有一个关于使用亚行的问题。
我知道这个命令:
adb shell dumpsys activity
可以显示设备上当前运行的所有活动。
但我注意到,有时候,意图是这样的:
Intent { ...some_intent/activity_name.... (has extras) }
我知道extras意味着活动已经开始了,并且传递了一些参数(这里我可能错了,如果我错了,请纠正我)。
所以我的问题是,我怎样才能通过亚行获得目的/活动的额外费用?
我之所以需要这个,是因为我正试图通过adb命令启动一个apk(安装在手机上),比如:
adb shell "su -c 'am start -n com.package.name/.ActivityName'"
好的,然后提出申请。应用程序有一个开始屏幕(比如我们称之为homeactivity),您必须单击一个按钮并进行一些选择(比如selectionactivity),然后它将转到另一个屏幕(比如actionactivity)。我希望能够启动apk并直接进入actionactivity。
如果我尝试使用am start命令启动actionactivity,应用程序将崩溃,我假设这是因为它需要selectionactivity屏幕中的参数。
这就是为什么我想看看actionactivity屏幕实际得到的“额外”或参数是什么,以便我可以执行如下操作:
adb shell "su -c 'am start -n com.package.name/.ActionActivity -e param1 val1 -e param2 val2'"
希望我的问题是清楚的。
如果我在某个地方犯了错误,请纠正我。
提前谢谢!
最佳答案
如果我理解正确,您的目标是以正确的意图开始“action”活动,但是您不知道应该包含什么类型的参数信息,对吧?
dumpsys命令不会转储您想要的所有内容,因此为了简单地实现您的目标,您有两个选项(您应该找到一个可以将自己的固件刻录到其中的设备):
修改AMS中的转储方法以打印更多信息
修改activitythread类源代码以打印出详细的意图信息