Android 开发周报:工信部欲统一推送标准、Android 专家看 Kotlin

阅读数:1911 2017 年 6 月 14 日

话题:Android语言 & 开发架构

新闻

  1. 《谷歌提高悬赏金额:发现安卓 bug 者,最高奖励 20 万美金》:就像市面上其他的操作系统一样,没有哪个系统天生完美,安卓系统在设计之初也可能存在一些 bug 或者安全漏洞,而若这些 bug 或安全漏洞被黑客利用,用户恐怕会遭受不小的损失。谷歌深知这一点,有鉴于此,谷歌在两年之前启动悬赏计划,那些发现并提交了安卓系统 bug 的人将得到赏金。日前,谷歌提高了悬赏金额,并希望借此吸引更多的研究人员和工程师参与到这项悬赏计划中来。

  2. 《6 月最新安卓各版本份额:牛轧糖达 9.5%,暴增 34.8%》:近日谷歌公布了最新的安卓各版本份额情况,根据过去七天(截止到 6 月 5 日)访问 Google Play 商店的所有设备所运行的系统统计得出。数据显示,本月最大涨幅显然是 Android 7.0 牛轧糖,相比上月增加了 34.8%。Android Nougat7.0 的份额可谓突飞猛进,Nougat7.1 份额仅为 0.6%。

  3. 《工信部放大招:国内安卓生态将统一消息推送标准》:据工信部旗下泰尔终端实验室发布消息称,目前泰尔终端实验室联合包括华为、OPPO、vivo、小米、三星、魅族、金立、努比亚、谷歌、百度、阿里巴巴、腾讯、个推、极光等国外内主要相关企业共同制定安卓统一推送服务(Unified Push Service,简称 UPS)技术标准,旨在为国内的消息推送服务建立统一的标准,为终端用户提供更好的手机使用体验,为应用开发者更好解决消息推送需求,并取得了阶段性成果。

  4. 《Android O 正式版最早或将在 8 月第 1 周发布》:Android O 预览版已经进行到 DP 2 了,我们从 Android Developer 可以得知 DP3 将会在本月中旬发布,而正式版将还是老规矩放在第 3 季度发布,具体时间不得而知。虽然 Android O 的预览版日常使用不会有太大问题,但是或多或少还是会遇到一些让人比较头疼的 BUG,很多小伙伴也还在耐心的等待着正式版的出来。

教程

  1. 《微信移动端数据库组件 WCDB 系列(二) — 数据库修复三板斧》:长久以来 SQLite DB 都有损坏问题,从 Android、iOS 等移动系统,到 Windows、Linux 等桌面系统都会出现。由于微信所有消息都保存在 DB,服务端不保留备份,一旦损坏将导致用户消息被清空,显然不能接受。微信即将开源的移动数据库组件 WCDB (WeChat Database),致力于解决 DB 损坏导致数据丢失的问题。之前一篇文章《微信 SQLite 数据库修复实践》介绍了微信对 SQLite 数据库修复以及降低损坏率的实践,这次再深入介绍一下微信数据库修复的具体方案和发展历程。

  2. 《17 位谷歌 Android 开发专家是如何看待 Kotlin 的》:Google 已经多次表达过他们不反对 Kotlin 的使用,只要 Kotlin 编译器依然生成有效的字节码,那么 Google 就不会阻止任何人使用它。目前 Kotlin 已经成为了安卓开发的一级编程语言。本文作者联系了一些 Android 专家(人员列表很长),并得到了来自 17 位的答复。

  3. 《开发者大杀器 —— 刨根问底,揪出 Android App 耗电的元凶代码》:这是一篇讲述应用耗电的文章,围绕 Android 电量采集机制及第二代 Battery Historian 分析工具讲述。文从数据采集、导出、环境搭建、解读报告的角度出发,从细节讲解整个流程。和大谈概念的文章不同,这里将进行实际操作及分析。

  4. 《Android 卡顿检测方案》:应用的流畅度最直接的影响了 App 的用户体验,轻微的卡顿有时导致用户的界面操作需要等待一两秒钟才能生效,严重的卡顿则导致系统直接弹出 ANR 的提示窗口,让用户选择要继续等待还是关闭应用。所以,如果想要提升用户体验,就需要尽量避免卡顿的产生。本文提供了详细的卡顿检测方案。

  5. 《Android 多状态加载布局的开发 Tips》:对于大多数 App 而言,项目中都有多状态加载 View 这种需求。对应到开发中,我们通常会开发一个对应的自定义 layout 用于根据页面不同的状态来显示不同的提示 view。在项目中,我们大多会在开发初期就把这套 layout 框架写好,然后其他人的自己的开发过程中直接使用即可。这篇文章不讨论如何去实现这样的自定义 loading layout,Github 上这样的 layout 太多了,这里主要思考、总结在实际开发中开发这样的自定义 Layout 时应该注意那些地方。

  6. 《WebView 缓存原理分析和应用》:现在的 App 开发,或多或少都会用到 Hybrid 模式,到了 WebView 这边,经常会加载一些 js 文件(例如和 WebView 用来 Native 通信的 bridge.js),而这些 js 文件不会经常发生变化,所以我们希望 js 在 WebView 里面加载一次之后,如果 js 没有发生变化,下次就不用再发起网络请求去加载,从而减少流量和资源的占用。那么有什么方式可以达到这个目的呢?先得从 WebView 的缓存原理入手。

  7. 《Android 热修复升级探索(二)》:Android 资源的热修复,就是在 app 不重新安装的情况下,利用下发的补丁包直接更新本 app 中的资源。作者在开发阿里云移动热修复 (Sophix) 的过程中,对 Android 资源的加载原理做了深入的探究,最终在资源修复方法上取得了突破性进展!新的资源修复方法不论是在使用便捷性、补丁包大小以及运行时效率方面,相比其他实现都有巨大的优势。

开源项目

  1. Aria:一个简单易用,稳当高效的下载框架。

  2. AgentWeb: AgentWeb 是基于 Android WebView 一个功能完善小型浏览器库。使用很方便,集成进你应用,只需几行代码。

  3. InfiniteCycleViewPager:一个很炫的切换效果实现,支持横向、竖向切换。

  4. MaterialShadows:这是一个可以将组件增加阴影效果的开源库。


感谢徐川对本文的审校。

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