Android 开发周报:Android 7.0 开始推送、秒级编译方案解析

  • 郭亮

2016 年 9 月 1 日

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

  • 《Android 动态布局入门及 NinePatchChunk 解密》:相信每一个 Android 开发者,在接触“Hello World”的时候,就形成了一个观念:Android UI 布局是通过 layout 目录下的 XML 文件定义的。使用 XML 定义布局的方式,有着结构清晰、可预览等优势,因而极为通用。可是,偏偏在某些场景下,布局是需要根据运行时的状态变化的,无法使用 XML 预先定义。这时候,我们只能通过 JavaCode 控制,在程序运行时,动态的实现对应的布局。本文给大家介绍了一些动态布局相关的基础知识和经验。

  • 《Freeline - Android 平台上的秒级编译方案》:Freeline 是蚂蚁金服旗的一个基于动态替换的编译方案,5 月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似 Facebook 的开源工具 buck 的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发 dx,并发 merge dex 等策略,在多核机器上有明显加速效果,另外在 class 及 dex,resources 层面作了相应缓存策略,做到真正增量开发。相比目前 instant-run,buck,layoutcast 等方案快数倍速度。

  • 《轻听变色之谜》:轻听是一款小而美的 Android 本地音乐播放器,而它的特点之一就是拥有多彩的外衣。轻听实现变色主要是结合两种方式:自定义 Style、Theme 与动态配置主题色。本文为我们详细讲解了轻听变色的实现过程。

  • 《Android 7.0 来的真快,来看看又来了些什么出人意料的东西》:Android 7.0 已经开始推送,最新的操作系统增加了大量的功能,添加了新的 VR 模式的平台支持和优化;增加了多窗口支持,现在用户可以一次在屏幕上打开两个应用;随时随地低电耗模式;更强大的 Notification;以及号码屏蔽、来电过滤等等。阅读文章,了解更多关于 Android 7.0 的新技术。

  • 《Android 动态链接库加载原理及 HotFix 方案介绍》:随着项目中动态链接库越来越多,作者遇到了很多奇怪的问题,比如只在某一种 OS 上会出现的 java.lang.UnsatisfiedLinkError,但是明明动态库名称没错,ABI 也没错,方法也能对应的上,而且还只出现在某一些机型上。为了找到出现千奇百怪问题的原因,和能够提供一个方式来解决一些比较奇怪的动态库加载的问题,了解一下 so 的加载流程是非常有必要的了,便于发现问题和解决问题,这就是本文的由来。

  • 《awesome-adb》:ADB,即 Android Debug Bridge,它是 Android 开发 / 测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。

  • 《破译 Android 性能优化中的 16ms 问题》:Android 应用有一个明显的趋势 --- 越来越多地使用动画效果来提升用户体验。但任何事情都是有代价的,丰富复杂的动画提升用户体验的同时,性能问题像隐形的恶魔一样,逐渐地侵蚀着你的应用。动画不流畅、界面卡顿开始困扰着你,逼着你进行性能优化。在这个优化过程中,最理想的标准就是绘制一帧的时间不要超过 16ms。这是什么意思?阅读本文,一探究竟。

  • 《Android 下多彩的 StatusView 的实现》:目前市面上的大量 App 都实现了透明状态栏、多彩状态栏的效果。Android 5.0 以上的系统原生支持彩色状态栏效果,但为了兼容性,也需要适配 5.0 以下的版本。本文给出了很好的解决方案。

  • 移动Android语言 & 开发架构