Android 开发周报:安卓 6.0 安装率上升、新一代编译器详解

  • 郭亮

2016 年 5 月 10 日

话题:移动Android语言 & 开发架构

新闻

  1. 《安卓 6.0 最新安装率出炉:“大增”2.9%》:又来到了月初,意味着又到谷歌更新安卓各版本安装率数据的时候了。在最新的安卓系统安装率数据中,Froyo(2.2)仍然还没消失,Marshmallow(6.0)则增长势头强劲,安卓 6.0 则是唯一一个安装率上升的版本,增长了 2.9%,达到 7.5%,虽然增幅很大,但这个增长率仍不及去年这个时候 Lollipop 的增长率。
  2. 《Android One 已死?谷歌:只是活的不太好》:由谷歌发布低端机型专用的 Android One 似乎好久不见动静,许多业界人士认为这个项目已经名存实亡,然而谷歌业务发展负责人 Mike Hayes 对此提出了反对意见。
  3. 《谷歌公司胜诉一审获得 AndroidPay.com 域名》:针对北京杜女士起诉美国谷歌公司关于 AndroidPay.com 域名权属纠纷一案,北京市海淀区人民法院 5 日称,法院驳回杜女士要求该域名归其所有的主张。谷歌公司依据一审判决获得 AndroidPay.com 域名的所有权。

教程

  1. 《Android 新一代编译 toolchain Jack&Jill 简介》:2016 年 3 月 10 日,Google 向外界发布了 Android N 的预览版,并宣布了 Android N 的 Roadmap,Android N 的最终版源代码将于今年 8 或 9 月份释出到 AOSP 项目。在众多的 Android N 新特性中,有一项新工具链的出现与 Android 生态圈的所有开发者息息相关,即 Jack&Jill 编译器的引入。在依赖了 Sun/Oracle 的 Java 编译器十年之后,Android 终于有了自己的 Java 编译器。本文试图对市面上非常有限的资料进行总结,向大家介绍 Jack&Jill 的缘起,工作方式和原理。
  2. 《糯米移动组件架构演进之路》:随着糯米在生活服务 O2O 平台化战略上的转型,大量的自营/第三方垂类业务需要快速接入糯米,对糯米移动 App 端的架构提出了挑战。在这样的背景下,团队在 2015 年初开始对糯米 App 端架构进行改造。本文介绍了百度糯米移动 App,在面临多业务和多渠道时架构的演进,以及对接入层和 Hybrid 框架的优化。
  3. 《完美的安卓 model 层架构》:无论是 MVC、MVP 还是 MVVM,Model 的角色都非常重要,合理的 Model 设计对整个项目的架构有着至关重要的作用。本文作者提出的 Model 思想利用 OkHttp 和 Retrofit 进行网络请求;使用了 SqlDelight、AutoValue 及其系列扩展生成 model,通过 SqlBrite 提供数据库访问的 reactive API,最终给出了一个完美的 Model 层。
  4. 《Android Local Manifests 机制的使用实践》:为了便于管理多个 git 库,Android 提供了一套 Python 脚本,称为 repo,它是全局管理 Android 源码的利器。Android 系统开发的第一步就是获取源码,这时就需要用到 repo 命令了。repo 还支持 Local Manifests 的定制方式。本文详细讲解了 Local Manifests 机制及其应用。
  5. 《Retrofit 分析 - 经典设计模式案例》:如果你还不知道 Retrofit,那么可以到这里查看其源码。retrofit 其实就是对 okhttp 再做了一层封装。你只需要通过简单的配置就能顺利使用 retrofit 来做网络请求了。还没有使用过 retrofit 的小伙伴们,不妨尝尝鲜。本篇是 retrofit 番外篇。只讲 retrofit 中的设计模式以及作者个人的理解与延伸。如果你还没看过 retrofit 源码,不妨先看看这篇 Retrofit 分析 - 漂亮的解耦套路。
  6. 《SwipeRefreshLayout》:SwipeRefreshLayout 是一个下拉刷新控件,几乎可以包裹一个任何可以滚动的内容(ListView GridView ScrollView RecyclerView),可以自动识别垂直滚动手势。使用起来非常方便。本文结合 SwipeRefreshLayout 的源码,详细解析了其工作原理。
  7. 《Instant Run: How Does it Work(墙)》:Android Studio 2 引入了 Instant Run 功能,降低了开发者(修改→调试)的执行周期。想了解背后是如何实现的吗?简而言之,Instant Run = Incremental build + Hot,Warm,or Cold swap。更多介绍见 Reto Meier 发在 Google Developers 上这篇文章视频

开源项目

  1. flexbox-layout:这是一个来自 Google 官方的开源项目,支持通过 CSS 的方式来灵活的进行页面布局。
  2. Bourbon:这是一个 MVP 架构的开源项目,项目内容来自 Dribbble,支持 Android Mobile,Tablet,Wear 和 TV。
  3. PagerBottomTabStrip:PagerBottomTabStrip 是一个基本谷歌 Material Design 规范完成的安卓底部导航栏控件。
  4. RadarScan:该项目实现了显示雷达扫描的功能,高仿 QQ 附近的人搜索展示页。

感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

移动Android语言 & 开发架构