Android 开源项目及其学习

这是我之前在知乎的回答,放在这里来一发。虽然也可以罗列几十个项目然后给你些高大上的动态图,但那对你没用,希望这篇全面的梳理分享能帮到更多人。

 

下面的介绍包括几个部分:

  • GitHub 上有哪些 Android 开源项目
  • 哪些项目适合新手学习
  • 如何获取最新的 Android 开源项目
  • 开源项目怎么学习
  • 开源项目源码解析

 

1. GitHub 上有哪些 Android 开源项目

目前收藏 Android 开源库比较多的有 Android 开源项目汇总及中英文搜索Android ArsenalAndroid Libraries and Resources
另有 Libraries for developersDevAppsDirect 等 App 集合了很多开源库。

 

更多介绍可以参考我之前的整理: Android 开源库获取途径整理

 

其中的  Android Arsenal  国外人收集的最棒的开源集合。
Android 开源项目汇总及中英文搜索  是我在维护,包括 2000+ 开源项目,每一个都有中文介绍及大家喜欢的酷炫示例图。

 

2. 哪些项目适合新人围观

这个问题我没法给你列几个项目,具体原因我在下面介绍。
从上面的图中也可以看出来了,开源项目巨多,分类很细。如果你是 Android 新手建议从简单的自定义 View 开始,如自定义 ImageView、TextView;

 

然后到复杂的自定义 View,如功能很全的自定义 ListView;

 

最后是大型的公共库,如 Volley、UIL、Dagger。另说下 Volley 是建议每个中高级开发者学习的库,因为他真的很棒。但如果是新手,你还真不一定看得懂。

 

最后你要针对自己的需要来看:

  • 有紧迫和压力感更快
  • 开源库太多你根本不可能完全学过来,就跟少林七二绝技有生之年你学会一二就已经差不多了
  • 很多库原理类似可举一反三。

 

如果你想学习某个项目源码可以先看我们组织的  Android 开源项目源码分析 ,每篇都是精品,我就不解释了。

 

3. 授人以渔-如何获取最新的 Android 开源项目

 

4. 进阶篇-开源项目怎么学习

如果只是简单的学习的话可以根据 API 逐步 Debug 进去,不断深入和反复即可。

 

全面而系统的学习的话,请移步查看我在 如何针对Github上某个Android开源项目进行学习 的回答,这也是 Android 开源项目源码解析第一期的规范文档。

 

5. 开源项目源码解析

这是我们组织的 Android 开源项目源码分析 项目,我们相信应该知其然知其所以然。为了更好的了解并掌握优秀开源库原理,从简介、总体设计、流程图、详细设计全方面分析开源库源码。目前第一期完成,包括10个开源库及5个公共技术点的全面介绍。

 

最后不管你需要什么别忘记了 Google,只要你要,它肯定有。
Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用。其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用: 1、Android团队提供的示例项目   如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。   2、 Remote Droid   RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项目为开发者提供了如网络连接、触摸屏手指运动等很好的样例。   3、 TorProxy和Shadow   TorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。从该项目源代码中,可以掌握socket连接、管理cookie等方法。      4、 Android SMSPopup   SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信SMS接口。   5、 Standup Timer   Standup Timer应用用于控制站立会议时间,类似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。从该项目的代码中,可以学会如何使用时间函数。另外,这个项目的代码是采用视图view、模型model严格分离的设计思路。      6、 Foursquare   是Foursquare.com的一个客户端应用,该应用主要分为两个模块:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)两部分。从该项目代码中,可以学会如何同步、多线程、HTTP连接等技术。   7、 Pedometer   Pedometer应用用于记录你每天走路步数的。尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。   8、 OpenSudoku-android   OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。   9、 ConnectBot   ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中,可以学习到很多Android安全方面的内容,这些是你在开发应用时经常需要考虑的安全问题。   10、WordPress的Android应用   当然在最后不能不提WordPress的Android应用了,这是WordPress官方开发团队提供的一个项目。从代码中可以学习到XMLRPC调用(当然还有更多的优秀内容)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值