资讯专栏INFORMATION COLUMN

android高级工程师-阅读源码的经验总结

马忠志 / 1734人阅读

摘要:对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。和差不多,想法一样,但是和相比,搜索到的有价值结果不是很多,没有的理想,还有一些来着百度知道。

对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。阅读别人的代码远比自己写代码要难。Linus 是Linux的早期作者,一句影响深远的话是“Read The Fucking Source Code”(RTFSC),这句话既体现了阅读源码的重要性,也说明了阅读源码对于大牛来说也是一件令人头疼的事。阅读源码对于中级工程师尤为重要,通过代码可以看大牛的实现途径,方法,思想,如果你源码看多了,最终你会发现同样的效果可以有多种实现方式,具体的实现方式就和自己的编码风格有关系。对于一个中级android开发者需要阅读什么源码,android系统源码?第三方开源库源码?完整项目源码?这些源码都是大牛写的,学习价值很大,那我们应该学习哪一个?首先我们要明白我们的目的:短时间提升我们编码技能,希望在工作能体现出来。从这个角度来看,阅读android系统源码的价值就不是很高。所以对于一个中级工程师来说,要把第三方开源库和完整项目作为主要对象。下面我就讲一下看第三方开源库和完整项目源码的一些方法和技巧。

前期准备:

如何高效的看fuck source code,首先需要解决的是我们用什么看,我推荐看第三方开源库使用sublime text,看完整项目用android studio。第三方开源库无须编译,直接看代码,使用sublime text代码高亮整洁,看的很爽。效果如下:

也许你刚开始不适应,不要担心,用不了几天你就离不开它了。那问题又来了,看代码我习惯了这种高亮风格,再也无法忍受android studio的黑白风格的代码了。没关系,很简单,只要设置一下,android studio就可以和sublime text 达到同样的效果。先来看看设置后的效果吧。


只需下载jar包,导入android studio即可。设置方式详见README文件。

开始阅读源码:

如果你是一个阅读源码的新手,那我建议你首先找一些代码量少的,自己感兴趣的来看。可以参考我之前写过的一片文章2016年最值得学习的五大开源项目(这些都是完整的项目,如果想看一些第三方开源库,可以来这里开源项目解析)

如何阅读第三方开源库

选择一些当下热门、学习价值高的第三方开源库,我认为最值得学习的是Volly,开源项目解析中也有对Volly的解析。

首先下载源码,然后在网上找一些源码解析文章来看看,不要忘记,我们的宗旨之一“高效”,这样就可以最快的对项目原理有一个大体的了解,再去看源码具体实现就很快了。这里很重要的一点是如何找一些有价值的学习资料,我们最常有的就是搜索引擎,今天就主要说说如何选择搜索引擎,以后有机会再写写如何筛选有价值的学习资料。搜索引擎:Google>bing>baidu.其实我不想黑百度,因为我很想去百度,既然现在还不是一名百度工程师,就说一下事实吧。Google是把你想要的,最有价值的东西呈现在你面前,并且他做到了。Google会把符合搜索结果、点击量最大的、最有价值的东西排在首页,所以你很轻松就会找到你想要的东西(如果你上不了Google可以点这里)。bing和Google差不多,想法一样,但是和Google相比,bing搜索到的有价值结果不是很多,没有Google的理想,还有一些来着百度知道。百度呢,第一眼看到的是广告,一些内容来着百度知道,呈现的搜索结果不是按价值排序,你需要自己慢慢找。所以首推Google。

再你看了一些解析文章之后,理解了项目原理,对大部分类的功能有了一定的了解,再来看源码的具体实现方式。在阅读的过程中总会遇到一些看不懂的代码,你可以先放一放,继续往下看。这样反复几遍,就会对代码的理解不断加深。我认为阅读第三方开源库主要是学习设计思想。

如何阅读开源完整项目

毋庸置疑使用android studio阅读完整项目,很高效。阅读完整项目涉及的东西比较多,项目的架构不同,使用的第三方库不同,这就要求需要对项目中自己不熟悉的东西进行学习,也不需要都弄懂了再去看项目,边看边学,遇到不会的就去搜资料学习,这样最快了。

第一步下载项目,在真机或虚拟机上运行,最直观的体验app的功能。然后看app的架构,mvc、mvp、mvvp,目前项目中mvvp用的比较少。然后打开build.gradle文件看看项目用了哪些网络请求库、图片加载库、其他库。如果有不熟悉的,上网找一些文章学习一下。然后就打开manifasts文件找的入口activity,顺藤摸瓜往下看。同样,不懂的地方放过。看完一遍,再进行下一步,不要指望一遍就可以搞定。这里给大家推荐一个特别值得学习的项目LookLook(Github地址:https://github.com/xinghongfe...):mvp架构,RxJava + Retrofit+okhttp,glide。项目结构清晰,代码量不是很大,学习价值高。方法基本也就这么个方法,剩下就是跟者自己的感觉走。

如果你的项目看多了之后你会发现每个项目可以分为以下几个模块:

UI(activity ,fragment)

adapter

数据实体

第三方开源库的使用,网络、图片、其他工具

一些工具类

项目配置类

自定义View

其他(数据库,activity、fragment的基类,API等)

任何事情都可以熟能生巧,在看了一些开源项目后,自己最好开发一个。看项目源码是一个很费脑子的事情,不能急于求成,我之前就有点着急,看了很多项目,高强度的进行了20多天后,精力消耗很大,掉头发很严重,大脑严重劳累过度,休息了一个星期才缓解过来。所以建议大家制定一个合理的学习时间,不要让自己强度太大。

最后的感觉就是,看似不可思议的事情,只要自己静下心来,按部就班,最后发现都不过如此嘛。小伙伴们开始 赶快开始Read The Fucking Source Code 吧。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/13118.html

相关文章

  • android高级工程师阅读源码经验总结

    摘要:对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。和差不多,想法一样,但是和相比,搜索到的有价值结果不是很多,没有的理想,还有一些来着百度知道。 对于一个有追求的程序员来说必须读源码,当然阅读源码是一件令人头疼的事。阅读别人的代码远比自己写代码要难。Linus 是Linux的早期作者,一句影响深远的话是Read The Fucking Source Code(RTF...

    idisfkj 评论0 收藏0
  • android开发案例

    摘要:多个可以提高你安卓开发技能的开源学习的最佳方式就是阅读,对程序员来说也是如此。年初你绝对想尝试的个新安卓库这是一份年,月份发布的个最佳安卓库的列表,你应该会喜欢,虽然是按顺序排列的,但排名不分先后。 20 多个可以提高你安卓开发技能的开源 app 学习的最佳方式就是阅读,对程序员来说也是如此。如果你想成为一个更优秀的程序员,你必须阅读更多的代码,就是这么简单。书籍,博客,论坛在某种程度...

    LeexMuller 评论0 收藏0
  • 一个老鸟发公司内部整理 Android 学习路线图

    摘要:一个老鸟发的公司内部整理的学习路线图年月日阅读数发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图。另一份开发学习路线图。看完这本书后,小明对的历史结构代码规范等都有了一个大概的了解,并且,小明已经可以写出一些简单的了。一个老鸟发的公司内部整理的 Android 学习路线图 2017年09月12日 17:13:27 阅读数:20449   jixiaohua发了一篇一个老...

    miya 评论0 收藏0
  • 新书《Android App开发从入门到精通》终于出版啦

    摘要:第二个要感谢的就是我的好朋友王帅,本书的早期大纲是我们两共同完成的后面有修改,并且计划跟我一起写这本书,但是由于个人原因放弃了。前言 经过了两年多终于完成了这本书,2016年9月份开始写的,到今天为止2年零2个月,本书的内容大部分是去年完成的,看过我去年总结的读者可能知道,去年事情很多太忙了,导致本命年这本书没有上架(有点小小的遗憾)。 工作之余喜欢写写技术文章,对自己的技术做一个总结同时也...

    adie 评论0 收藏0
  • Android 研发工程师图书一览(2016年版)

    摘要:番茄工作法简约而不简单,本书亦然。在番茄工作法一个个短短的分钟内,你收获的不仅仅是效率,还会有意想不到的成就感。 @author ASCE1885的 Github 简书 微博 CSDN 知乎本文由于潜在的商业目的,不开放全文转载许可,谢谢! showImg(/img/remote/1460000007319503?w=728&h=792); 广而告之时间:我的新书《Android 高...

    MadPecker 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<