以递归方式迭代一个Android应用程序中的所有活动

时间:2014-10-01 22:54:10

标签: android android-activity

如果我们将一个活动看作图形节点,从一个活动转换/调用另一个活动作为图形边缘,一个Android应用程序可以在概念上转换为图形。我试图看看是否有任何方法可以从应用的第一页/活动开始创建这样的图形。

让我们说如果需要,我们可以使用android UI test automator来帮助。

1 个答案:

答案 0 :(得分:1)

  

我正在尝试查看是否有任何方法可以从应用的第一页/活动开始创建此类图表。

这将非常困难。

我假设你正试图破解......呃,我的意思是,“分析”......别人的应用程序。在那种情况下:

  1. 除非您正在对APK进行逆向工程,否则您不知道有多少活动。即便如此,您也不知道将如何使用这些活动(例如,将活动放在标签中而不将其用作普通活动的遗留应用程序)。

  2. 您无法知道触发活动的原因。例如,某个活动可能只会通过“复活节彩蛋”式的奇怪输入集出现。有些可能是由应用程序本身以外的内容触发的,例如Notification或第三方调用此应用程序支持的某种MIME类型的ACTION_VIEW。并且一些触发器可能依赖于其他输入(例如,仅当您在应用程序中的其他位置设置了帐户时才会启用禁用的操作栏项。)

  3. 使用完整的源代码,您可以执行静态分析以查找所有startActivity()startActivityForResult()个调用,而对于简单的变体,您可以判断哪些活动开始。对于复杂的Intent构造,即使这种情况在某些情况下也会变得棘手。