我从没有文档的公司获得了一个项目。现在我必须添加一些东西到这个项目,如新的添加功能等。但我不知道这个项目是如何组织的,它开始的地方......有谁知道如何使用这样的项目?我可以用shema分析它吗?
如何找到此应用程序的起点?
有没有办法从A调试到Z?
答案 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查看器,这也可以提供一些方向。