android 源码学习经验分享

来源:互联网 发布:淘宝拒签申请哪种退款 编辑:程序博客网 时间:2024/05/23 19:18

纯属个人经验,希望对大家学习android源码有些许帮助。


我一直不满足于用android提供的api来写应用程序,我想知道它是怎么工作的。就我自己而言,我觉得首先对整个系统架构有一个比较清晰的了解,然后深入理解自己感兴趣的模块。


http://source.android.com/该网站是google维护的,是对android架构最权威,最准确的介绍,里面还有对各个模块架构的说明。


深入模块,怎么深入呢? 一是看书,看代码高手的分析。推荐邓凡平,罗升阳的书,但他们讲的都是比较老的版本。我有时看着看着就很累,想睡觉。还有就是到网上去搜索。

还有就是用git clone把android代码下载下来后自己分析,不明白的再到网上搜。


我介绍一下我看android源码的方法。 首先下载代码,用git clone下载自己感兴趣的模块的代码。后建个source insight工程,在看代码的同时用UML画该模块中类的关系图,我觉得这样很能加快自己对该模块的理解,如果一味的看代码,自己容易困,看后自己也没多少印象。在看代码时可能想搜索部分关键字,用source insight有点慢,这时我一般在终端里输入 find . -type f -name "*.cpp" -print | xargs grep "mSurface" -RnH | less 来找代码我觉得这挺快的。


看代码当然不是一件容易的事,如果你认为看代码就是跟函数,只要不停的跟就行了。我认为这只对代码规模小的,并且只对某个实现有效。如果代码量大,我觉得最重要的是对对结构的理解。andorid代码量大,必须理清结构。我想看代码的功力和写代码的功力是等价的,我的意思是,如果你知道别人写代码时的意图,设计思想那么看代码就会轻松很多。android中本地层几乎全是C++代码,用到的是面向对象的思想,大量用到设计模式。如果你知道这些可能对看代码很有帮助。


总结一下,看代码先要有全局的理解,然后深入细节。android代码复杂,用的是面向对象思想写的代码,大量用到设计模式,最好在看代码前对这些有写理解。 看代码时边看边画UML图以加深自己对代码的理解。这便是我看代码的经验,如果你有什么经验请分享一下。

原创粉丝点击