如何强行启动某应用的某个 Activity?

2018-09-18 15:41:06 +08:00
 zcm3579
例如我的 APP 有 MainActivity 和 AActivity BActivity CActivity 这几个页面
在某些 cash 统计收集(例如 bugly 蒲公英)控制台中, 有时能看到应用在上传应用市场后, 被该市场自动化测试工具强行跳过了正常的流程,直接启动了后面的 Activity, 导致产生一些异常.

请问这种启动方式是如何实现的? 是通过 ADB 还是其他工具?
5866 次点击
所在节点    Android
12 条回复
bertsir
2018-09-18 15:44:03 +08:00
adb
yukiww233
2018-09-18 15:45:32 +08:00
自己写过一个小工具用来做这个。。
exported 的 activity 不要任何权限就可以启动
sabermiao
2018-09-18 15:47:16 +08:00
drozer 一把梭
Dori
2018-09-18 16:09:11 +08:00
adb shell am start -n com.android.settings/.Settings
不知道包名和 activity 名字的话可以先 dumpsys 一下:
adb shell dumpsys activity | grep mResumedActivity
tenwx
2018-09-18 16:21:04 +08:00
google play 上搜“ QuickShortcutMaker ”
mzlogin
2018-09-18 16:48:08 +08:00
mzlogin
2018-09-18 16:49:58 +08:00
思路是可以先用脚本和工具将 AndroidManifest.xml 文件逆向出来,然后就能拿到 exported 的 Activity 列表了,再使用上述 adb 命令来调起。
iwtbauh
2018-09-18 16:57:44 +08:00
不用逆向那么麻烦,lineageos 的开发人员工具里就能列出 app 的 activity,Android 应该提供了 API 列出 app 的 activity
zcm3579
2018-09-18 17:22:57 +08:00
感谢楼上各位回复

不过尝试了上面的方法好像不能调起 exported=false 的 activity
xuhaoyangx
2018-09-18 17:38:06 +08:00
@zcm3579 #9 exported 得 xposed 一下
ysc3839
2018-09-18 19:30:36 +08:00
kaedea
2018-09-18 19:49:47 +08:00
adb am 工具

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX