随着 Android 平台市场份额的持续猛增 ,越来越多的开发者开始投入 Android 应用程序的开发大潮。如果您是一位 2013 年刚刚入行的 Android 开发新兵,恭喜你,因为这个平台已经在过去几年里变得愈发成熟了,绝对值得住你全情投入。目前来看,Android 现成的开发资源早已经汗牛充栋,我们这篇帖子,就是要在浩如烟海的资源中挑出最重要的那些,呈现给你。
本帖对 Android 开发菜鸟和中级老兵同样适用,因为本帖重点列出了那些最常用的 Android 开发资源。
推荐书籍
你或许觉得,都 2013 年了,再去看个什么书来学习 Android 开发,这方法应该早就过时了。没错,或许你的想法是对的。但是我们还是推荐按照过时的办法来。理由的话,请参看: Programmers Don’t Read Books – But You Should (作者为:Jeff Atwood)
我推荐下面两本书:
The Busy Coder’s Guide to Android Development
- 《The Busy Coder’s Guide to Android Development》(Mark Murphy 著)。这本书最大的特色就在于它的覆盖广度(此书有超过 2000 页的篇幅),而且更新频率很高(平均每 2 个月更新一次)。这本书对于快速进化的 Andoird 平台来说,应当是很具有榜样性质的。作者 Mark Murphy 本人还设立了常规答疑环节,这样本书的读者就能够向作者直接提问。本书的示例源代码全部都发布在 github 上面。所以综上所述,强烈推荐。
- 《Smashing UI 》(Juhani Lehtimaki 著)。对于那些关注如何做出顶级 UI 设计的 Android 开发者来说,此书无可挑剔。
Smashing UI
developer.android.com 官方开发者站点推荐资源
在动手编写第一个 Android 应用之前,用心读一读 Android Design 章节。尤其是下面的这些文章:
- Devices and Displays (设备和显示)
- Touch Feedback (触摸反馈)
- Metrics and Grids (度量和网格)
- Iconography (图像研究)
同时也请下载 Downloads 部分的代码,这些代码囊括了 Android 图标和控件的设计模板,源文件,样式以及无样式图标等等。
那么读完了这些以后就可以开始编程了么?不,最好连下面的东西也一起读:
- Best Practices for User Experience & UI (a must read) (用户体验和用户接口最佳实践——必读)
- Best Practices for Performance (性能最佳实践)
- Displaying Bitmaps Efficiently (高性能位图显示)
- Adding Animations (also see NineOldAndroids library) (动画效果——同时也需要看NineOldAndroids 库的介绍)
- Tools help (开发工具介绍)
- SDK Samples (SDK 示例)
StackOverflow 推荐资源
很多 Android 核心框架的工程师,开发者布道师以及 Android 开发专家都会经常到stackoverflow.com 上助人为乐。以下是关于 Android 最热门问题的清单。我已经订阅了很多高手的 RSS feeds, 例如:CommonsWare (Mark Murphy), Dianne Hackborn, Romain Guy, Reto Meier, Trevor Johns, Roman Nurik, Adam Powell (感谢, @remdroid!).
Blogs 推荐资源
很多博客能够提供给你最好最新的 Android 开发资源
- Android Dev Weekly (博主 Gyuri Grell)。这是一个极好的博客,可以为 Android 新手提供一手的开发新闻。
- Official Android developers blog。这是一个绝对值得一看的博客档案,里面的很多东西都是干货,比如:Avoiding memory leaks (如何防止内存泄露), Memory Analysis for Android Applications (Android 应用程序内存分析).
- Romain Guy。来自 Android 核心框架组工程师的博客。一旦你开始熟悉 Android 开发了以后,一定要阅读他写的 Android Performance Case Study 这篇博文。当然,他的博客还包含一些非技术的内容,比如:great photographer (优秀的摄影师)
- Codependent(博主:Chet Haase),Chet Hasse 是 Android 动画框架的创始人(Youtube 上的 Android 开发者频道上有 Chet Hasse 的专题节目 DevOps——译者注)
- The CommonsBlog (博主:Mark Murphy)
- Cyril Mottier 的 Android 博客。这个博客里的博文都很有深度,而且资源非常丰富。最新更新的博文包括:ListView Tips & Tricks #5: Enlarged Touchable Areas, Tweeted Android Development Tips, The Google Maps Android API V2 Utopia, Android App Launching Made Gorgeous, “Pull-to-refresh”: An Anti UI Pattern on Android.
- Styling Android (博主:Mark Allsion)
- Daniel’s Lew 的 Coding Thoughts —— 此博客的作者是美国 Expedia 公司的著名 Android 应用 Hotels and Flights(正式名称叫 Mobiata)的开发人员之一,他的博客经常能给出很多有价值的提示。
Google+ 推荐资源
在 Google+ 尚未成为社交网络的时候,它就已经是 Android 开发资源的一块瑰宝了。以下是一些你应该关注的 Google+ 账号: Tor Norbye (他是 ADT 的开发者之一), Dianne Hackborn, Romain Guy, Chris Banes, Roman Nurik, Nick Butcher, Adam Powell, Rich Hyndman, Cyril Mottier, Paul Burke, Jeff Gilfelt.
记住一定要关注 Jake Wharton 这个人,他是 ActionBarSherlock,ViewPageIndicator,NineOldAndroid 以及其他很多著名的开源 Android 库的作者。
同时也请考虑加入 Google+ 上的一些社区,例如:
- Official Android dev community (Google+ 上的官方 Android 开发者社区)
- Android designer community
开源库推荐
以下是一些最有用的开源库项目:
- ActionBarSherlock,作者是 Jake Wharton。这个库在 Android 4.0+ 版本上通过本地 action bar 实现了 action bar 设计模式,并通过单个 API 和主题在 4.0 之前的版本上做出了一个自定义 action bar 实例。
- ViewPagerIndicator,作者同样是 Jake Wharton。Paging indicator 组件与 ViewPager 都来自于 Android 支持库和 ActionBarSherlock。他们的最初原型是来自于 Åkerfeldt 的 ViewFlow。
- NineOldAndroids,作者是 Jake Wharton。这个 Android 库使用 Honeycomb 版本的动画 API,对直到 1.0 版本的 Android 系统全部适用。
- Universal-Image-Loader,作者 Sergey Tarasevich。这个库具有强大的功能和灵活性,可支持图像的异步加载,缓存和显示。
- UrlImageViewHelper,作者 Koushik Dutta。 UrlImageViewHelper 可以根据一个 URL 来找到图形,并填充到 ImageView 里,还能实现对图像的自动下载,存储以及位图缓存。
- Android-BitmapCache,作者 Chris Banes。这是一个很有特色的缓存库,用于缓存 Android 位图对象。
- DiskLruCache,作者 Jake Wharton。这是一个基于磁盘系统的 LRU 缓存库,主要针对于 Android 平台,用 Java 实现。
在 github 上搜索[android] 项目,你可以找到更多的开源库。而且,DevAppsDirect 应用提供了很好的功能,去归纳目前已有的开源视图,组件和工具库。
GOOGLE I/O TALKS 推荐资源
总的来说 Google I/O的门票现在已经火爆到了一定程度了,你基本上是不可能买到票去现场的,不过所幸的是,所有 Google I/O的主题演讲都会被放到网上,并且提供 PPT 下载链接。以下是 Goolge I/O Android 相关的所有主题演讲的链接:
其中一些主题是我非常喜欢的,如:
- Advanced Design for Engineers(工程师设计进阶),演讲人 Alex Faaborg and Christian Robertson (2012 年)
- For Butter or Worse: Smoothing Out Performance in Android UIs(Butter 项目:让 Android UI 性能更加流畅)演讲人: Chet Haase, Romain Guy (2012 年)
- Navigation in Android(Android 导航)演讲人: Adam Powell, Richard Fulcher (2012)。如果你认为 Android 的 back/up 按键问题很好解决的话,看看这个视频你就不会这么想了。
- So You’ve Read the Design Guide; Now What?(学完了设计指南,然后?)演讲人:Daniel Lehmann, Tor Norbye, Richard Ngo (2012)
- What’s New in Android? (Android 更新介绍)演讲人:Chet Haase, Romain Guy, Daniel Sandler (2012)
- What’s New in Android Developers’ Tools(ADT 更新介绍)演讲人:Xavier Ducrohet, Tor Norbye (2012)
- Memory management for Android Apps(Android 应用程序内存管理)演讲人:Patrick Dubroy (2011)
- Writing zippy Android apps(编写敏捷的 Android 应用)演讲人:Brad Fitzpatrick (2010)
- Developing Android REST client applications (开发基于 REST 的 Android 客户端应用)演讲人:Virgil Dobjanschi (2010)
停!太多了!
如果本贴的内容太过丰富,让你觉得应接不暇,没关系,有些内容是专门针对于初学者的,如果你不是初学者的话,你可以只关注本文中那些相对高级一些的主题。
关于如何有效地选择内容,以下是几点建议:
- 首先,看书。本文一开始就提到了,你应当要看书。看书能为你打下 Android 开发的牢固知识基础。
- 订阅本文中提到的博客内容,以及 stackoverflow 的问答内容(通过 RSS)
- 在你的 Google+ 账户上创建 android-dev 开发圈子(当然,由于某些原因,墙内的朋友们可以在墙内的社交媒体或者论坛上建立自己的 Android 开发圈子——译者注)
Android 巨星
在 Andoird 开发者生态系统的持续繁荣的过程中,逐渐涌现出了许多天赋异禀的巨星级开发人员,尤其下面这两位,他们的工作让其他 Android 开发者们受益匪浅。他们是:Mark Murphy 和 Jake Wharton。
Mark 和 Jake 在 Android 开源项目上面贡献良多,可以说早已功成名就。如果你有幸见到他们,一定要请他们喝喝啤酒,表示感谢。(不过根据回帖的情况来看,Mark Murphy 本人不喜欢喝酒,而有一位叫 Chris Bane 的网友愿意帮他喝,所以要请客的话可以直接请 Chris Bane,并且,如果你一直坚持阅读到了现在,那你就明白感谢 Mark Murphy 最好的办法就是去订阅他的博客 CommonsWare——原文作者)。
显然,多数 Google 的 Android 开发者和设计师也为 Android 系统做了很多工作。他们中的部分人在本文中也有提到。
结语:
那就到这儿吧。现在你应该了解了不少开发信息和工具了,这一切都是为了让你写出优秀的 Android 应用程序!好吧,还有一点:你还需要一个优秀的 Android UI 设计师,不过由于本贴是技术贴,这就不在讨论范围之内了。那么现在,你应该做好充分的准备来开始做你的第一个 Android 应用了。
如果你觉得我遗漏了哪些优秀的资源,那么就在评论你留言补充吧,我会定时更新这篇文章的内容的。
祝,编码愉快