BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 郭亮 关注 18 他的粉丝 发布于 2016年9月2日. 估计阅读时间: 7 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

新闻

  1. 《Android 7.0 Nougat 开始推送了》:等待多时的Android 7.0 Nougat,今天开始分批在Nexus 6P、Nexus 5X、Nexus 6、Nexus 9及Pixel C等手机和平板上开始推送。传统上Google都会在新版Android推出的同时发布新硬件,但今年倒是没有跟随这个传统了。如果你从Android 7.0的公测就在使用的话,那正式版推出其实差异不大。

  2. 《调查:Android稳定性首次超越iOS》:近日调研机构Blancco Technology Group发布一份有关智能手机系统的调研报告。调查报告称,苹果iOS设备在2016年Q1故障率为25%,但到了2016年Q2故障率大幅度上升到58%。报告还指出,Android手机故障率从第一季度的44%下降到第二季度的35%,已经超越iOS系统。

  3. 《爆料大神:谷歌将放出安卓7.1/7.1.1/7.1.2季度更新》:现在爆料大神evleaks给出消息称,谷歌接下来会推出安卓7.1/7.1.1/7.1.2三个维护更新,这也跟之前的传闻相吻合,并且此前一份网页访问记录也曝出过安卓7.1.1和安卓7.1.2的版本。目前安卓7.0还有多项功能缺失,例如视频通话应用Allo、VR平台DayDream和谷歌助手等,估计这些功能会在后续的维护更新中添加。

教程

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

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

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

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

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

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

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

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

开源项目

  1. Amigo:这是一款hotfix开源库,使用方法非常简单。

  2. FastBle:Android BLE 蓝牙开发框架,使用回调方式处理,搜索、连接、notify、indicate、读、写等一系列蓝牙操作。

  3. InfiniteCycleViewPager:一款支持无限循环的ViewPage,支持上下、左右切换,切换动画很流畅。

  4. StyleImageView:本类库可以对ImageView,View Background,Drawable和Bitmap添加风格与设置亮度、对比度。本类库现提供十种风格。


感谢徐川对本文的审校。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT