如何获取一个Android App APK的所有Activity类名,并通过代码启动其中某个Activity?

FengBo
  • 1
新手上路,请多包涵

我知道如何启动第三方app的launcher,但如何启动第三方app内某个Activity组件?如何查找该Activity的classname

回复
阅读 8.4k
1 个回答
li21
  • 3.1k

这个问题可以拆开成两个问题(鉴于其中一个问题与SF上另一个问题重复,所以我把你的标题也顺带修改了,原标题“如何在自己编写的app里直接启动微信的朋友圈”)。

如何在自己编写的app里直接启动微信的朋友圈?

就我目前的测试结果来看,答案是不可行的,会导致崩溃。与问题通过startActivity启动第三方应用的Activity时崩溃Permission Denial(比如打开微信朋友圈)重复

如何获取一个Android App APK的所有Activity类名?

我目前找到了两种办法:

方法1: 通过adb logcat

$ adb logcat

V/ActivityManager(  602): com.tencent.mm/.plugin.sns.ui.SnsTimeLineUI: task=TaskRecord{432b6e58 #3 A com.tencent.mm U 0}
V/ActivityManager(  602): com.tencent.mm/.ui.LauncherUI: task=TaskRecord{432b6e58 #3 A com.tencent.mm U 0}

方法2:通过一个App: Development.apk

它是默认安装在Android模拟器里的app,目的是方便测试和debug,其中一个功能叫Package Browser,可以看到App内的所有的activity.
关于它你还可以参考:使用Dev Tools查看App的包名和所有Activity
这篇文章给出了下载链接: android 真机 安装 模拟器 DevTools Development.apk

图片描述
图片描述

就是这样 : )

宣传栏