Android 开发周报:2017 I/O 大会时间公布、AOP 之字节码插桩详解

  • 郭亮

2017 年 2 月 24 日

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

新闻

  1. 《2017 谷歌 I/O 大会时间正式公布:2 月 22 日开始报名》:在微软刚刚开启了今年的 Build 2017 大会的参会注册之后,另一场开发者盛会也即将开始预热。谷歌今天正式公布,2017 年的 I/O 大会将于太平洋时间 5 月 17 日开始,一直持续三天时间。地点设在加州山景城的海岸露天剧场。

  2. 《2016 移动应用质量大数据报告》:2016 年,在“互联网 +”战略的推动下,移动互联网与越来越多传统行业的结合更加紧密,用户使用移动互联网的工作场景、生活场景、消费场景都在悄然发生着改变, 移动互联网产品在智能硬件、医疗、汽车、旅游、教育等市场也都在不断探索新的可能性。本文是来自腾讯的 2016 年度 Android & iOS 移动应用质量大数据报告。

  3. 《谷歌高管暗示 Android 8.0 或命名奥利奥,5 月 17 日发布》:2 月 21 号消息,之前就有消息称在今年的谷歌 I/O 开发者大会上,Android 8.0 将作为焦点亮相。随着大会的临近,Android8.0 更多信息遭到曝光。昨日,Android 业务副总裁 Hiroshi Lockheimer 在推特晒出带有奥利奥蛋糕的图片,似乎暗示 Android 8.0 将要命名为“奥利奥”。

教程

  1. 《Android AOP 之字节码插桩详解》:随着流量红利时代过去,精细化运营时代的开始,网易乐得开始构建自己的大数据平台。为了实现非侵入的,全量的数据采集,AOP 成了关键,数据收集 SDK 探索和实现了一种 Android 上 AOP 的方式。本篇文章基于《网易乐得无埋点数据收集 SDK》总结而成,关于网易乐得无埋点数据采集 SDK 的功能介绍以及技术总结后续会有文章进行阐述,本篇单讲 SDK 中用到的 Android 端 AOP 的实现。

  2. 《理解 Android Binder 机制 (2/3):C++ 层》:Binder 的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情。这里面牵涉到好几个层次,每一层都有一些模块和机制需要理解。这部分内容作者预计会分为三篇文章来讲解。第一篇对整个 Binder 机制做了一个架构性的讲解,本文是第二篇,讲解了 Binder Framework C++ 部分的逻辑。

  3. 《Android 触摸事件分发那些事》:在 Android 开发中,经常需要自定义 View。自定义 View 大概可以分为两个步骤:绘制外观和处理触摸事件。处理触摸事件需要知道触摸事件的分发流程,本文将带着大家详细地了解触摸事件分发流程,以及在触摸事件分发流程中扮演重要角色的方法如:dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 的详细讲解。

  4. 《Android 动态加载简单易懂的介绍方式》:使用动态加载技术,可以达到让用户不用重新安装 APK 就能升级应用的功能(特别是 SDK 项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时也可以快速修复一些线上的 BUG。本文从动态加载的定义、类型、类加载器 ClassLoader 和 dex 文件、代理 Activity 模式等多方面详细介绍了动态加载的知识,作者对动态加载理解的很透彻,推荐阅读。

  5. 《从 json 文件到炫酷动画 -Lottie 实现思路和源码分析》Lottie是最近 Airbnb 开源的动画项目,支持 Android、iOS、ReactNaitve 三个平台,相关背景介绍可以参考这篇文章Airbnb 开源炫酷动画库 Lottie(译)-看看 Airbnb 的工程师怎么说。本文主要分析了 Lottie 是如何把 json 文件转为动画的思路和源码实现。文章首先介绍了 Android 版本 Lottie 的基本使用,然后分析把 json 文件映射到动画的实现思路,最后分析 Lottie 的源码实现.

开源项目

  1. Cockroach:Android 中虽然可以通过设置 Thread.setDefaultUncaughtExceptionHandler 来捕获所有线程的异常,但主线程抛出异常时仍旧会导致 Activity 闪退,App 进程重启。使用 Cockroach 后就可以保证不管怎样抛异常 Activity 都不会闪退,App 进程也不会重启。

  2. routerSDK:这是一款小而美的路由框架。使用 routerSDK,可以通过网页动态添加自定义参数启动应用,当然也可以实现通过 url 的方式在 App 内进行页面跳转。对于我们进行模块化或组件化开发很有参考价值。

  3. Zoomy:这是一款支持列表中图片拖拽、手势放大的开源库。

  4. Alerter:一款非常漂亮的自定义 Alert View,从顶部弹出,位于所有视图的上层。


感谢徐川对本文的审校。

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

移动Android语言 & 开发架构