20多个可以提高你安卓开发技能的开源app

TerraO88 7年前
   <p><img src="https://simg.open-open.com/show/122b421a2936a658c8fa3e67c0013f0e.jpg"></p>    <p>学习的最佳方式就是阅读,对程序员来说也是如此。 如果你想成为一个更优秀的程序员,你必须阅读更多的代码, 就是这么简单。书籍,博客,论坛在某种程度上都是有益的,但是没有什么能替代功能完善、代码详细的开源项目。整个app的所有相关资源都直接呈现在你面前。</p>    <p>你所要做的就是坐下来,泡上一杯茶,然后阅读一些够劲儿的代码。本文给大家介绍一些绝佳的不同种类和风格的开源项目,满足你学习和开发的所有需要。</p>    <p>在深入代码之前,你可以直接从Play Store上下载这些app亲自尝试一下。每个app旁边的难度等级可以帮助你判断:是立即深入了解,还是暂放一边。</p>    <h3>LeafPic</h3>    <p>( <a href="/misc/goto?guid=4959737484721276122" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737484818672698" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/003a44bfe8ebe5edf3b22bb20386b90b.png"></p>    <p>相册和视频app是最常见的app之一,任何一个安卓设备上都能看到。是否好奇过它们是如何实现的呢?LeafPic是你可以尝试和学习的最佳开源相册程序之一。</p>    <p>它非常简单,容易理解,适合任何一个初级开发者。从这个app中我发现的最好的东西就是它实现动态主题的方式。这可是许多开发者费劲千辛万苦想要做好的东西。</p>    <h3>Simple Calendar</h3>    <p>( <a href="/misc/goto?guid=4959737484911177101" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737485000996185" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/70733b93b0850f999fb22671d82a41e3.png"></p>    <p>一个完全用Kotlin实现的简单易用的日历app。如果你想学习Kotlin,那么它可能是最佳的入门方法之一。</p>    <p>这个app的目的非常简单,所以非常适合学习如何用这个全新的语言去开发app。另一个比较酷的事情是可以学到如何自定义窗口小部件(Widget)。</p>    <h3>Amaze File Manager</h3>    <p>( <a href="/misc/goto?guid=4959644070463744279" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737485122319125" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/1afdb85f5d5030797536327f88996701.jpg"></p>    <p>安卓设备上另一个极其常见的应用是文件管理器。</p>    <p>虽然构建一个文件管理器看起来很简单,但实际上要在所有安卓平台和设备上都能正常运行是非常困难的。</p>    <p>从这个app中你可以学到很多东西,尤其是如何正确执行SD card上的文件处理。但是我不建议你学习这个项目的编程风格,因为它是不符合标准的。</p>    <h3>Easy Sound Recorder</h3>    <p>( <a href="/misc/goto?guid=4959737485214836721" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737485297556186" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/1533c62b7d145be5f2b01855c12729ba.png"></p>    <p>一个简单,易用,漂亮的音频录制app。如果你想学习安卓中的音频录制与控制,那么这个项目是你开始旅程的最好方法。</p>    <p>这个项目非常小(只有一个Activity),也很好理解。初学者可以从这个项目中学到Material Design的基础知识。</p>    <h3>MLManager</h3>    <p>( <a href="/misc/goto?guid=4959737485381357244" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737485473464217" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/971918e0559b8d3b607c626d27c4cbe1.png"></p>    <p>MLManager是一个简单的app管理器。如果你想学习如何得到安装在设备中的app的详细信息,那么这个app对你而言是个理想的选择。</p>    <p>这个app的编码风格非常好,值得借鉴。它还有助于你理解如何设计一个遵循Material Design规范的app。</p>    <h3>PhotoAffix</h3>    <p>( <a href="/misc/goto?guid=4959737485566412248" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737485649523397" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/862dfcde25089b4fa191a534c60b0d0b.png"></p>    <p>一个非常简单,设计简约的app,用来垂直或者水平拼接图片。听起来很简单是吧?</p>    <p>对于想学习安卓开发基础知识的新手这是一个理想的资源。编码风格是顶级的。</p>    <p>你还会学会制作简单但实用的自定义view,帮助你打好基础,以便今后创建一些真正复杂的视图。</p>    <h3>MovieGuide</h3>    <p>( <a href="/misc/goto?guid=4959654198560254882" rel="nofollow,noindex">Github</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/26259f0ab93baaf86b626f36c42515e5.png"></p>    <p>这个app的目的很简单,就是列出流行的电影以及它们的预告和影评。但是让这个项目有趣的东西是它实现的方式。</p>    <p>这个app演示了一些很酷的开发方式,比如MVP,Uncle Bob的Clean Architecture,RxJava以及Dagger 2。</p>    <p>这个app很简单但是实现的方式很棒,值得一看。</p>    <h3>AnExplorer</h3>    <p>( <a href="/misc/goto?guid=4959737485755722270" rel="nofollow,noindex">Github</a> | |  <a href="/misc/goto?guid=4959737485845047646" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/49ba982d9a1b8bdaba6f31d00dcadbe0.jpg"></p>    <p>又是一个简单的,轻量的文件管理器,为手机和平板而设计。</p>    <p>从这个项目中可以学到文件处理,root管理,loaders,自定义view等。做的非常好,不用花费多长时间就能了解代码里面做了什么。</p>    <h3>Minimal ToDo</h3>    <p>( <a href="/misc/goto?guid=4959737485942815039" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737486023988761" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/e25709677655bffe2465f414e8e575e5.png"></p>    <p>如果你是一个新手,这是一个简单但很酷的项目。你将有机会学到安卓开发的绝大多数基础知识。</p>    <p>这个app设计得很好,作为初学者的起点再合适不过了。但是不要借鉴它的代码风和包结构的设计,因为它们不符合标准并且应该尽量避免。</p>    <h3>Timber</h3>    <p>( <a href="/misc/goto?guid=4958969142716311481" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737486146484680" rel="nofollow,noindex">Play Store</a> | 难度: 高级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/8f6bf59fc624e803fcf463f624726913.png"></p>    <p>Timber是一个设计漂亮,功能完善的音乐播放器。如果你曾想过开发自己的音乐app或者跟音乐相关的app,那么这个项目可以一看。</p>    <p>这个项目很大,而且还在积极的开发中。对于初学者可能有点困难,不过对于中级开发者来说应该是非常有意思的。</p>    <h3>AnotherMonitor</h3>    <p>( <a href="/misc/goto?guid=4959737486236802027" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737486320766603" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/30770e895a7367b6326fa68f58e4ad8a.png"></p>    <p>如果你想学习安卓进程,内存,CPU等系统管理方面的知识,这是一个不错的项目。</p>    <p>项目很简单,也很好理解,不过其代码风格,架构以及整体设计不值得模仿。</p>    <h3>InstaMaterial</h3>    <p>( <a href="/misc/goto?guid=4959624996352212247" rel="nofollow,noindex">Github</a> | 难度: 初级)</p>    <p>如果你在寻找一个学习与提高Material Design技术的项目,那么这个项目就是为你量身定做的。该项目用 Material Design重构了Instagram app的部分UI。</p>    <p>这个app中使用了大量的元素,动画以及过渡动画,这些都可以用在自己的项目中。</p>    <p>它非常简单,也很好理解,非常适合那些想提高自己设计能力的安卓开发者。</p>    <h3>CoCoin</h3>    <p>( <a href="/misc/goto?guid=4959656789915957347" rel="nofollow,noindex">Github</a> | 难度: 简单)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/d9c5ab885b7af42c5dc7a8ffa0faedb3.png"></p>    <p>CoCoin是一个功能完善的个人财物与机长工具,UI简单干净。</p>    <p>如果你想学习如何桥党的管理较多的用户数据,为这些数据绘制漂亮的统计图,制作漂亮的自定义视图,那么这个开源项目就非常适合你。</p>    <h3>OmniNotes</h3>    <p>( <a href="/misc/goto?guid=4959628854604176348" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959628854688706049" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/cf00480ca8e3228d25a5b39a0fe203ab.png"></p>    <p>如果你想找一个Evernote那样的,功能全面的笔记类应用,那么这个项目就正好适合你。</p>    <p>这个项目非常大,有许多功能比如分享,搜索,附加图片,视频,音频,在笔记中涂鸦,添加提醒等。</p>    <p>另一个非常酷的事情是你可以从这个项目中学到如何在app中无缝集成Google Now。</p>    <h3>Clip Stack</h3>    <p>( <a href="/misc/goto?guid=4959737486518345545" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737486606487973" rel="nofollow,noindex">Play Store</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/86cac6ad7d0ac55f36a7d7668c214667.png"></p>    <p>一个简单,干净,漂亮的剪切版管理app。这个项目非常小巧,简单,也很容易看懂。</p>    <p>但是项目的结构,命名规范以及编码风格都不是很标准。它完全是按照对初学者友好的方式来构建的。</p>    <h3>Super Clean Master</h3>    <p>( <a href="/misc/goto?guid=4958867210615300971" rel="nofollow,noindex">Github</a> | 难度: 高级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/268abfd9d7982f7c028cd88d3a201380.jpg"></p>    <p>如果你用过一个安卓设备,你一定曾有过清理设备中垃圾数据的需求。Clean Master就是这类应用中最受欢迎的应用之一。</p>    <p>这个app,就如其名称那样,试图用干净优雅的方式模仿Clean Master的大多数功能。但是整个项目比较复杂,可能会花一些时间才能理解。</p>    <h3>Travel Mate</h3>    <p>( <a href="/misc/goto?guid=4959737486734523147" rel="nofollow,noindex">Github</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/3207f1a4cb7eb8d972cdff8217359bea.png"></p>    <p>如果你要找一个旅途类,对地图和位置依赖很强的应用,那么这个项目可能是最佳的选择。</p>    <p>app的设计和代码质量都算不上很规范,但是整个app还是非常好,对初学者而言(甚至中级开发者)可以学到很多东西。</p>    <h3>KISS</h3>    <p>( <a href="/misc/goto?guid=4959737486811293287" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737486896482765" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/a8a8330e1df1dfbdcf529e0ee3d1edba.png"></p>    <p>一个简单,快速,轻量的launcher应用。项目中可以学到几个非常酷的功能。</p>    <p>所以如果你想为安卓制作一个launcher,这个项目就很适合。app很小,项目也很容易上手。</p>    <h3>Turbo Editor</h3>    <p>( <a href="/misc/goto?guid=4959737486985703544" rel="nofollow,noindex">Github</a> |  <a href="/misc/goto?guid=4959737487061997133" rel="nofollow,noindex">Play Store</a> | 难度: 中等)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/18f5166d0a21607db43885bdf219249b.png"></p>    <p>一个简单但是强大的文字编辑应用。你还可以用这个app来写代码,支持不同语言的语法高亮。</p>    <p>绝大多数应用在打开大型文本文件的时候都会失败或者崩溃,这个app却很好的处理了这个问题。从这个项目中你有机会学到如何实现一个健壮的文本(或者代码)编辑app。</p>    <h3>Wally</h3>    <p>( <a href="/misc/goto?guid=4959628853398544902" rel="nofollow,noindex">Github</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c512983c1237b4a485a4154edb99f8a7.png"></p>    <p>一个快速,简单,高效的wallpaper app。从这个项目中你可以学到很多东西,尤其是对初学者而言。</p>    <p>该app的架构非常不错,使得很容易扩展和修改。app的目的很简单,但是其实现的方法非常值得赞赏。</p>    <h3>Pedometer</h3>    <p>( <a href="/misc/goto?guid=4959555797193282216" rel="nofollow,noindex">Github</a> | 难度: 初级)</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/33c3b77c026f8e138b4a462ae9823eba.png"></p>    <p>一个简单,轻量的计步器app,使用硬件传感器计算步数,而且对电池的消耗非常小。</p>    <p>对学习计步功能而言是不错的项目,但是编码规范和设计还不够好。</p>    <h3>end</h3>    <p>我已经介绍了一些几乎能满足所有开发者的不同类型的开源项目,有些app对于初学者和高级开发者都是有用的。</p>    <p> </p>    <p> </p>    <p>来自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0214/7114.html</p>    <p> </p>