2016年最值得学习的五大开源项目
phtv7248
8年前
<p>作为一个有追求的程序员来说,项目源码必须看,但是网上那么多资源是不让你无从下手啊,小编今天为大家推荐五个经典项目吧。</p> <p><strong>1,Material Animations</strong></p> <p>演示View的平移、缩放动画,activity进入和退出动画,界面间元素共享。是学习动画很好的项目,项目代码量比较少,也很适合新手学习。</p> <p><img src="https://simg.open-open.com/show/f7db316c52fad6003eddc8b0699d5e1f.gif"></p> <p>项目地址GitHub: <a href="/misc/goto?guid=4958867433177598880" rel="nofollow,noindex">https://github.com/lgvalle/Material-Animations</a></p> <p><strong>2,Meizhi</strong></p> <p>每天推送一张妹子图、一个小视频和一系列程序员精选文章,数据来源于代码家的干货集中营。</p> <p><img src="https://simg.open-open.com/show/a3fdcba1472e8dd837f085945d6fcaa9.gif"></p> <p>架构: MVC</p> <p>图片加载:"picasso"</p> <p>网络请求:RxJava & Retrofit+okhttp</p> <p>界面: 遵循google材料设计</p> <p>其他:</p> <p>nineoldandroids</p> <p>photoview</p> <p>numberprogressbar</p> <p>umeng-analytics</p> <p>rxandroid</p> <p>butterknife</p> <p>otto</p> <p>项目地址github: <a href="/misc/goto?guid=4959638283298352443" rel="nofollow,noindex">https://github.com/drakeet/Meizhi</a></p> <p><strong>3,LookLook</strong></p> <p>可以阅读知乎日报,网易头条,每日推送一张妹子图片和视频,是一个精美的阅读软件。遵循了谷歌材料设计,加入了一些5.0以上的新特性,阅读体验绝不逊色于官方的app。</p> <p><img src="https://simg.open-open.com/show/a4216b4cc1daba1e90a813dafdd37984.gif"></p> <p>架构: MVP</p> <p>图片加载:”glide”</p> <p>网络请求:RxJava & Retrofit+okhttp</p> <p>界面: 遵循google材料设计</p> <p>其他:</p> <p>Cardview</p> <p>RecycleView</p> <p>Butterknife</p> <p>PhotoView</p> <p>项目地址github: <a href="/misc/goto?guid=4959713607069066583" rel="nofollow,noindex">https://github.com/xinghongfei/LookLook</a></p> <p><strong>4,android-UniversalMusicPlayer</strong></p> <p>这个开源项目展示了如何实现一个横跨各种Android平台的音乐播放器,包括手机,平板,汽车,手表,电视等。</p> <p><img src="https://simg.open-open.com/show/7b7750d037cb15f9d0af2bda4d8583c6.gif"></p> <p>架构:MVC</p> <p>项目地址github: <a href="/misc/goto?guid=4958867432879273485" rel="nofollow,noindex">https://github.com/googlesamples/android-UniversalMusicPlayer</a></p> <p><strong>5,plain</strong></p> <p>由谷歌工程师开发,展示google的材料设计,项目代码量大,但是结构清晰,还是很好理解的。</p> <p><img src="https://simg.open-open.com/show/7b7750d037cb15f9d0af2bda4d8583c6.gif"></p> <p>架构: MVC</p> <p>图片加载:”glide”</p> <p>网络请求:RxJava & Retrofit</p> <p>其他:</p> <p>RecycleView</p> <p>Butterknife</p> <p>项目地址github: <a href="/misc/goto?guid=4958970698499233651" rel="nofollow,noindex">https://github.com/nickbutcher/plaid</a></p> <p><strong>总结:</strong></p> <p>建议学习顺序从第一个开始一直到最后一个,由易到难。项目中用到的开源库,如果不熟悉,网上搜一些文章进行学习,把开源库的基本使用都了解了之后再去看项目,这样就不会一头雾水。当下比较流行的技术有RxJava + Retrofit+okhttp,RecycleView,Butterknife,Glide等,这些技术在LookLook项目中都用应用,如果把LookLook这个项目搞懂了,基本就没有问题了。</p> <p><strong>看开源项目的心得:</strong></p> <p>刚开始看一些项目可能会感觉没有头绪,项目看多了,就不会有这种感觉了,只要静下心,一切都ok了。</p> <p>准备工作: 下载项目,编译后运行在虚拟机或真机上,读README了解项目概况。</p> <p>看项目源码:打开Manifest文件,找到入口activity,简要浏览项目中有一些什么activity,Broadcast Receiver,Service。然后在虚拟机或真机上打开程序对照源码看。顺藤摸瓜,一步一步往下看,第一遍可能不会完全看懂。第一遍就是把程序运行的主要脉络搞懂,熟悉项目中用到的开源库和知识点,如果有自己不熟悉的,上网搜一些文章学习。第一遍主要脉络搞懂了之后,再进行第二遍,第三遍,甚至第四遍,每一遍都会加深对代码的理解。</p> <p>如果你的项目看多了之后你会发现一个项目可以分为以下几个模块:</p> <p>1,activity 和fragment</p> <p>2,adapter</p> <p>3,数据实体</p> <p>4,第三方开源库的使用,网络、图片、其他工具</p> <p>5,一些工具类</p> <p>6,项目配置类</p> <p>7,自定义View</p> <p>8,其他(数据库,activity、fragment的基类,API等)</p> <p>任何事情都可以熟能生巧,在看了一些开源项目后,自己最好开发一个。看项目源码是一个很费脑子的事情,不能急于求成,我之前就有点着急,看了很多项目,高强度的进行了20多天后,把自己彻底累坏了,掉头发很严重,大脑严重劳累过度,休息了一个星期才缓解过来。所以建议大家制定一个合理的学习时间,不要让自己强度太大。</p> <p>最后的感觉就是,看似不可思议的事情,只要自己静下心来,按部就班,最后发现都不过如此嘛。</p> <p> </p> <p> </p> <p>来自:http://www.imooc.com/article/12644</p> <p> </p>