`

ubuntu 9.04下查看android源码

 
阅读更多

一.目的:

我现在的目的:学会根踪源码的某个模块的运行轨迹。如查看源码中电话本Contacts的执行方式,查看Browser的工作方式(各类中各方法功能实现)

二.有效的方法:

大多数教程都介绍采用debug方式来根踪;这样其实有很多不方便的地方,比如咱们不知道哪个类的功能,不好确定你的当前操作的准确地点。

所以,我采取android最神奇的发明:Log语句,它的神奇在于--在真机上运行时Log出来的打印数据也可以在控制台上显示。

这面的Log语句是我习惯的写法:

1.//wu0wu是我在源码上加的我本人修改的标记(和源码的代码区分)

2.我在Log的打印数据中先加我的标记:***wu:***"这样在logcat信息里一目了然。

3.在根着getClass().getName()这样就可以打印出当前方法调用所在的类名。一下子就可以定位类的位置。

4."-->clearFormData()"是我在某个类里的所有方法里都加入了上面的那句Log语句,所以这里是当前方法名。一下子定位当前的方法调用位置。

三.编译模块

1.我们在源码的com.android.contacts包下的所有类的所有方法都加这句Log语句。

2.在ubuntn的终端命令窗口中进入源码文件夹,执行. build/envsetup.sh (.后面有空格)


3.使用mmm来编译指定目录的模块,如Contacts:

mmm packages/apps/Contacts

4.编译完后生成两个文件:

out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/ Contacts.apk

5. 使用make snod重新生成system.img


6. 运行模拟器emulator

7.在 emulator中操作Contacts(你想查看的模块,这样你在adb logcat中就能一眼看到你所加的Log标记了)

四.在Logcat中查看显示结果

adb logcat



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics