Android 开发周报:谷歌开始推送 Android 5.1

  • 郭亮

2015 年 2 月 10 日

话题:GoogleAndroid语言 & 开发架构

新闻

  1. 《Android One 先行,谷歌开始推送 Android 5.1》:虽然没多少人用上 Android 5.0,不过谷歌并未怠慢,已经在 Android One 上推送 Android 5.1 系统。Android 5.1 修复 5.0 版本丢失的静音模式、改善系统稳定性、改进内存管理、修复应用程序突然关闭的问题、提升续航能力、改善 Wi-Fi 耗电问题、改善 Wi-Fi 连接问题、修复某些设备的声音问题、改善 Material Design 调色板等等。
  2. 《Go 1.4 版本发布:支持 Android 开发》:今年是 Go 诞生的第五个年头,而 Go 1.4 版本也是其第五个稳定版本。与 Go1.3 版本相隔 6 个月时间。此次版本更新最引人注目的是官方支持 Android,现在,开发者可以使用 Go 开发简单 Android App 了。
  3. 《谷歌放出六段 Android 宣传视频:和谐促及生态系统发展》:近日谷歌在 Android 官方频道更新了六段宣传视频,围绕着数月之前提出的“Be together, not the same”宣传主题,以各种动物和谐融洽的生活在一起来暗示 Android 系统以开放的态度迎接更多的厂商,共同和谐融洽的推进 Android 生态系统的发展。

教程

  1. 《让 Android 应用在 Chrome 浏览器上运行》:让 Android 应用运行在电脑上,大部分人会使用 Android 模拟器,现存的模拟器品牌也有很多,有的甚至还专门为手机游戏做了一些优化。但这种做法未必是最方便的,Google 曾经发布了一个小工具可以让 Android 应用运行在 Chrome OS 下。经过大神修改移植,现在只要你在电脑上安装了 Chrome 浏览器,就可以在任何系统上运行 Apk 应用。
  2. 《合理管理内存分类: Android 疑难解析》:内存 (RAM) 对于任何一个软件开发环境都是种非常珍贵的资源,而对于移动操作系统来讲,则会显得更加重要,因为手机的硬件条件相对于 PC 毕竟是比较落后的。尽管 Android 系统的虚拟机拥有自动回收垃圾的机制,但这并不代表我们就可以忽视应该在什么时候分配和释放内存。本文作者参考官方的高性能编程建议,给出了一些实现方法,值得所有 Android 开发者借鉴。
  3. 《Android 打造编译时注解解析框架 》:很多 Andorid 开发者都使用过注解框架,比如 butterknife,xutils 等。大部分注解框架使用到了反射技术,属于运行时注解,这类实现方式对性能有所消耗。本文作者实现了另外一种无损耗注解——编译时注解,其实现原理就是在编译的时候,根据注解标识动态生成一些类或者生成一些 xml。阅读文章,了解详细实现方式
  4. 《Android 开发工具之 Codota——搜索最好的 Android 代码》:Codota 是一款源码搜索引擎,Codota 从大量的项目中抓取源代码,开发者可以从这里搜索超过七百万精品代码实例。不仅有 Github,而且还有知名博客和开发者网站。有了 Codota,搜索一段代码或一个项目,不用在找上半天。并且 Codota 同时提供了 Chrome 插件和 Android Studio 插件,使用起来非常方便,能大大提高开发效率。
  5. 《Fragment 笔记整理》:不同大小屏幕的手机、平板、以及 TV 要展示统一的界面,但是由于屏幕大小不同,布局展示上就会有差异,但是又不想写多套布局,Fragment 便诞生了。Fragment 的使用频率非常高,但很多开发者对于 Fragment 的原理并不是很清楚,对常用的 API 了解的也比较浅薄,本文汇总了 Fragment 的相关知识,开发者可以参考并查缺补漏。
  6. 《官方文档学习 - Canvas and Drawables》:本文知识汇总自官方文档的 Drawable 部分,大多数关于界面、UI 的开源库都会有自定义的 Drawable 的部分,可以说 Drawable 是最基本的组件,但大部分开发者只会简单的使用其上层组件,对 Drawable 还很陌生。作者介绍了 Canvas and Drawables 相关概念、使用场景及绘图方面的一些知识,可以帮助我们熟悉 Drawable。开发者也可以在这里阅读官方文档。
  7. 《与 Sevice 实现双向通信》:经常有这样的应用场景,需要 Client 端调用 Service 完成一些事情,并且需要 Service 通过回调通知客户端。这样就需要一些通信方面的知识。与 Service 的通信方式有通过 BroadCastReceiver、通过 Messager、通过 Binder 来实现远程调用 (IPC) 几种。作者写了三篇文章介绍了使用 AIDL 实现 Service 端和 Client 端的双向通信。

开源项目

  1. android-open-project-analysis:该项目旨在分析一些流行项目的源码,是由国人组织,这里是官网。目前分析的项目有 Volley、Dagger、Universal Image Loader 等。每篇文章的技术含量都很高,从架构层面分析技术实现,适合进阶选手阅读学习。
  2. Genius-Android:Genius 自定义了大量常用的 Android 组件,包括 Button、Checkbox、Edittext 等。还提供了动画、命令行工具、网络工具及开发过程中常用到的工具类库。项目中的组件非常漂亮、工具很实用。
  3. json2view:一个可以将 json 数组转换成 view 的开源库,可以实现无需更新 Apk 而修改界面的效果。json2view 可以省去频繁更新 Apk、提交市场的烦恼。听起来很强大,赶快去试试吧。

感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

GoogleAndroid语言 & 开发架构