如何在没有文档的情况下分析和使用Android项目?

时间:2012-06-25 14:52:29

标签: java android eclipse code-analysis

我从没有文档的公司获得了一个项目。现在我必须添加一些东西到这个项目,如新的添加功能等。但我不知道这个项目是如何组织的,它开始的地方......有谁知道如何使用这样的项目?我可以用shema分析它吗?

如何找到此应用程序的起点?

有没有办法从A调试到Z?

4 个答案:

答案 0 :(得分:3)

在清单文件中查找主要活动。

虽然其他人可能会使用特定于Android的答案,但您应该考虑将此项目视为“遗留代码” - 由其他人创建,文档较差或没有文档,并且(最初)知道如何实现

如果您想要一本关于问题的好书,请查看Feathers Working Effectively with Legacy Code。同样相关,但不是Android特定的,是电子书“Rails Rescue”和Rails Test Prescriptions中的“Legacy Code”章节中的建议。虽然Rails相关,但作者给出的建议直接适用于大多数项目。

简而言之:

  • 让项目处于版本控制之下(如果它还没有(如果是,那么你很幸运,因为你可以查看提交历史以了解事物)。
  • 让测试套件干净利落地运行。没有测试套件?获得一个简单的测试存根
  • 承诺为您实施的每个新功能创建测试

最后,阅读代码。你将不得不咬紧牙关并熟悉实施 - 没有办法解决这个问题。

答案 1 :(得分:2)

应用程序的起点(主要活动)可以在清单文件中找到:

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

无论哪个活动都有此意图过滤器是应用程序的入口点

答案 2 :(得分:0)

在Manifest.xml中检查某人应该获得的<activity>

<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

这是apk开始的地方

然后我会从这个类的onCreate()方法开始。您还应检查可能在设备启动时启动的服务。 检查BroadcastReceiver和类似的内容

 if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))

答案 3 :(得分:0)

正如JesperB所说,找到清单中的开始活动。

然后我会在调试模式下运行应用程序,并在您使用应用程序时跟踪所有内容的位置,并在此过程中做笔记。

您也可以尝试在其上运行视图heirarchy查看器,这也可以提供一些方向。