- 《微信 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 的条件下实现修复。代码地址在这里。
评论