Android 开发周报:Android Studio 2.2 发布、微信热补丁方案开源

阅读数:2165 2016 年 9 月 27 日 19:00

  • 《微信Tinker 的一切都在这里,包括源码(一)》:最近半年以来,Android 热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架。Tinker 在最近也顺利完成了公司的审核,并非常荣幸的成为github.com/Tencent 上第一个正式公开的项目。在笔者看来Android 热补丁技术应该分为以下两个流派:Native 流派与Java 流派。他们都有着自己的优缺点,它们具体差异大家可参考上文。事实上从来都没有最好的方案,只有最适合自己的。

  • 《Android DataBinding 数据绑定》:数据绑定简单来说,就是通过某种机制,把代码中的数据和xml(UI)绑定起来,双方都能对数据进行操作,并且在数据发生变化的时候,自动刷新数据。在2015 年的谷歌IO 大会上,Android UI Toolkit 团队发布了DataBinding 框架,将数据绑定引入了Android 开发,当时还只支持单向绑定,而且需要作为第三方依赖引入,时隔一年,双向绑定这个特性也得到了支持,同时纳入了Android Gradle Plugin(1.5.0+)中,只需要在gradle 配置文件里添加短短的三行,就能用上数据绑定。

  • 《Retrofit 中如何正确的使用https》:信息安全对于每一个用户、厂商来说都是非常重要的。Https 是客户端与服务器端通信安全的常用方式。证书锁定是用来限制哪些证书和证书颁发机构是可信任的。需要我们直接在代码中固定写死使用某个服务器的证书,然后用自定义的信任存储去代替系统系统自带的,再去连接我们的服务器,我们将这种做法称之为证书锁定。本文为我们介绍了证书锁定的使用、原理及优缺点,以及对介绍了客户端使用自定义证书。

  • 《Android 耗电量测试及排查方法》:Android 应用耗电量一直是比较麻烦的, 也是大家所关注的问题,在4.4 系统之前,google 一直没有相关API 暴露给外面,所以要研究4.4 系统以前的耗电量,就需要研读Android 的源码;5.0 之后的系统,就可以使用adb 命令直接获取。仔细查看BatteryStatsHelper 中的processAppUsage 这个类,就可以看出,每个app 的耗电量主要由以下几个方面决定:cpu 的耗电量、wakelock 的耗电量、wifi 的耗电量、移动数据的耗电量和其他传感器的耗电量。

  • 《Android 混淆从入门到精通》:作为Android 开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则。

  • 《App 优化之消除卡顿》:用户对卡顿的感知,主要来源于界面的刷新,而界面的性能主要是依赖于设备的UI 渲染性能。如果我们的UI 设计过于复杂,或是实现不够好,设备又不给力,界面就会像卡住了一样,给用户卡顿的感觉。本文详细分析了可能引起卡顿的一些原因及解决办法。

  • 《拥抱SVG:苦恼于图片适配 in Android?》:SVG 是指可伸缩矢量图形 (Scalable Vector Graphics),它不同于传统的位图,不是通过存储图像中每一点的像素值来保存与使用图形,而是通过XML 文件来定义一个图形,通过一些特定的语法和规则来绘制出我们所需的图像——同样是使用一张图片,SVG 的方式是事先定义好怎么去画这个图,然后等要用的时候再把它去画出来,而使用传统的位图的话就是已经有了画出来的图,然后要用的时候直接把画好的图拿出来用。

  • 《基于Instant Run 思想的HotFix 方案实现》:近一年来,各种HotFix 库层出不穷,各家大厂百花齐放,QQ 空间最早提出了自己的热修复实现,接着阿里也开源了自家的AndFix(貌似阿里百川已经给开发者提供了新的Hotfix 功能),现在微信又有了Tinker,各家都如此关心HotFix,无非是线上版本的bug 对产品影响太大,尤其是DAU 比较高的app,更是不能容忍。美团基于Instant run 原理推出了自己的Hotfix 库,不过貌似没有开源,于是自己就按照Instant run 的原理也鼓捣出了一个简单的HotFix 实现,可以在不重启App 和Activity 的条件下实现修复。代码地址在这里

  • 收藏

    评论

    微博

    用户头像
    发表评论

    注册/登录 InfoQ 发表评论