项目中用到的开源库,如果不熟悉,网上搜一些文章进行学习,把开源库的基本使用都了解了之后再去看项目,这样就不会一头雾水。

    当下比较流行的技术有 RxJava + Retrofit+okhttp,RecycleView,Butterknife,Glide等,这些技术在LookLook项目中都用应用,如果把 LookLook这个项目搞懂了,基本就没有问题了


看开源项目的心得:

刚开始看一些项目可能会感觉没有头绪,项目看多了,就不会有这种感觉了,只要静下心,一切都ok了。

准备工作:  下载项目,编译后运行在虚拟机或真机上,读README了解项目概况。

看 项目源码:打开Manifest文件,找到入口activity,简要浏览项目中有一些什么activity,Broadcast Receiver,Service。然后在虚拟机或真机上打开程序对照源码看。顺藤摸瓜,一步一步往下看,第一遍可能不会完全看懂。第一遍就是把程序运行 的主要脉络搞懂,熟悉项目中用到的开源库和知识点,如果有自己不熟悉的,上网搜一些文章学习。第一遍主要脉络搞懂了之后,再进行第二遍,第三遍,甚至第四 遍,每一遍都会加深对代码的理解。

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

1,activity 和fragment

2,adapter

3,数据实体

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

5,一些工具类

6,项目配置类

7,自定义View

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

任何事情都可以熟能生巧,在看了一些开源项目后,自己最好开发一个。


阅读源码的经验总结

    阅读源码对于中级工程师尤为重要,通过代码可以看作者的实现途径,方法,思想。如果你源码看多了,你就可以灵活应用不同的途径实现同一效果。对于一个中级android开发者需要阅读什么源码,android系统源码?第三方开源库源码?完整项目源码?这些源码学习价值都很大,那我们应该学习哪一个?首先我们要明白我们的目的:短时间提升我们编码技能,希望在工作能体现出来。从这个角度来看,阅读android系统源码的价值就不是很高。所以对于一个中级工程师来说,要把第三方开源库和完整项目作为主要对象。下面我就讲一下看第三方开源库和完整项目源码的一些方法和技巧。


前期准备:

我使用的是Android Studio来看源码的;

开始阅读源码:

如果你是一个阅读源码的新手,那我建议你首先找一些代码量少的,自己感兴趣的来看。

  1. 如何阅读第三方开源库

    (1)选择一些当下热门、学习价值高的第三方开源库,例如Volly;

    (2)热门的第三方开源库,网上会有很多源码解析文章,这样就可以快速的对项目的整体框架有一个大体的了解,再去看源码具体实现就很快了。

    (3)学会使用搜索引擎:对于搜索引擎,Google>bing>baidu.

    (4)一些看不懂的代码,先放一放,继续往下看。阅读第三方开源库主要是学习他的设计思想。

  2. 如何阅读开源完整项目

    (1)下载项目,在真机或虚拟机上运行,最直观的体验app的功能。

    (2)然后熟悉app的架构,mvc、mvp、mvvm,目前项目中mvvp用的比较少。

    (3)然后打开build.gradle文件看看项目用了哪些网络请求库、图片加载库、其他库。如果有不熟悉的,上网找一些文章学习一下。

    (4)然后就打开manifasts文件找的入口activity,顺藤摸瓜往下看。同样,不懂的地方放过。

    (5)不要指望一遍就可以搞定。

    (6)这里给大家推荐一个特别值得学习的项目LookLook,项目结构清晰,代码量不是很大,学习价值高,涉及到:mvp架构,RxJava + Retrofit+okhttp,glide。


    看源代码的大体思想:

    1、第一遍不要纠结于具体实现,先把程序的整体框架流程搞清楚。

    2、不需要从头到尾看,可以跳着看,因为程序本来就是模块化的。

    3、项目的选择也很重要,代码量由少到多,功能由简单到复杂。


很喜欢作者的这句话:

“最后需要记住的是如果你被庞大的源码打败,不是因为你笨,而是因为你急躁,或是你选择的项目不对。编程就像写小说一样,不仅要多看,还要多练。总有一天你也会成为一个优秀的“作家”。小伙伴们开始 赶快Read The Fucking Source Code 吧”。


左后把作者总结的经验借鉴一下,然后就投入使用了:

1.要有决心,要有一个成为高级工程师的决心。这一点谁也帮不了你,完全靠自己。可以提前畅想一下成为高级工程师后的自己,挑女朋友、买HHKB,高清显示屏,人工力学座椅、降噪耳机,漂亮的房子、汽车、人生赢家......

2.循序渐进,任何事情需要一个过程,由易到难。很多小伙伴一开始不知道看什么开源项目,我这里给大家列顺序。

第一阶段android的官方Demo,90%都不难,有一些技术我们不常用到,可以直接略过。

第二阶段2016年最值得学习的五大开源项目,可以挑自己感兴趣的看,也可以在完整项目(泡在网上的日子)找一些。首先看项目src文件夹大小,在500kb以下都可以接受。

第三阶段第三方热门开源库,Volly,Universal Image loader等。

第四阶段看自己感兴趣的,融会贯通,扩充知识广度,最好自己再做一个开源项目,放在Github上。

3.计划,给自己设定一个计划,一个自己想完成的计划。如几天之内看完这个项目。我一般会制定周计划、月计划,这个月学些什么内容,这个星期学一些什么内容,不需要太详细,简要的内容就可以,我会把他以便签的形式放在电脑桌面上。一个月下来,学的东西比计划里的东西要多,但是不一定会完成全部计划,计划可以作调整。

4.其他。根据自己的习惯选择。我的习惯:编程前把手洗干净,干净整洁的桌面,一个舒服的椅子或靠垫护腰,累了再加点轻音乐,不定期跑步、打球,每天傍晚一个人散步。对于我来说一个人去散步很重要,去不会碰就熟人的地方,可以专心致志想很多事情.....。最后剩下的就是日复一日的坚持。



文/maat红飞(简书作者)
原文链接:http://www.jianshu.com/p/be86e5678252
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。