【新技术】又双叒叕来了系列三

1. 在 Android 模拟器上运行 ARM 应用

这算是一个非常好的消息了,之前在实际应用开发中,因为模拟器缺少对 arm 的支持,基本上都使用真机进行开发与调试。
随着 Android 11预览版的发布
Android 11 系统映像能够在不影响整个系统的前提下,直接将 ARM 指令转换成 x86 指令。开发者无需搭建高负载的 ARM 环境即可执行 ARM 二进制文件并进行测试。

详情:
在 Android 模拟器上运行 ARM 应用

2. 大厂对外文章分享

携程技术
携程Android 10适配踩坑指南
新版本适配一直是 Android 开发者的痛楚之一,但是这件事如果长期不升就会越来越困难。加上现在应用市场比较强势,所以保持一个较高的版本的适配是有必要的。
携程旅行分享了他们从API 26 到 29 的适配经验,大家可以参考一波。
全网最详!暗黑模式在 Trip.com App 的实践

暗黑模式也最近的一个非常热门的话题,甚至微信支持暗黑模式都成为热点了。如果你对这方面感兴趣,或者刚好有暗黑实践的需求,那么可以看这一篇由携程 UED 团队+研发团队撰写的文章。
我个人其实一直没有体验过暗黑模式,毕竟没适配的 app 太多了,所以我不认为把手机切换为暗黑模式有很好的的体验…

Google 开发者
在 Android 开发中使用协程 | 背景介绍
可以看一下官方的文章了解下协程的一些背景知识,用来解决什么问题,如何解决,以及性能相关的一些知识。

字节跳动技术团队
抖音包大小优化-资源优化
可以看下抖音团队为了减少 apk 的体积,针对资源这一方面做了哪些极致的事情。
另外 apk 体积优化也可以看下 jsonchao 的文章:
吹爆系列:深入探索Android包体积优化

百度 APP 技术
Gradle 与 Android 构建入门
写了一篇 Gradle 构建入门的文章,其实很多同学都非常害怕 Gradle,这篇文章会给大家解释为什么需要 Gradle,以及 Gradle 相关的一些基础知识,帮你更好的了解相关知识,比较轻松,可以一看。

西瓜技术团队
AwCookieManager.nativeGetCookie crash 排查
分享了西瓜的一个CookieManager.getCookie(String url) 过程中的 native crash,分析过程较为复杂,不过给出了解决方案,解决方案涉及到 hook,西瓜用了自研的方案,开源的 lancet 应该也能做到,这篇文章也会提到 lancet。

历史分享(点击可直接访问):

4. 一个 Android 优秀博主的文章合集

https://github.com/yangkun19921001/Blog

比较适合系统性的复习,而且作者应该比较精通音视频,我知道很多同学对音视频很好奇,苦于没有什么入门的书籍等,不妨看下这位作者系列文章。

5. 一个Android 面试题合集

这是一个国外开发者维护的仓库,所以问题以及相关问题解答的博客都是外文。

https://github.com/MindorksOpenSource/android-interview-questions
上述问题在我们看来不一定能作为面试题,但是有些问题还是可以用来差缺补漏的,也能帮助大家发现一些写的比较好的外文博客。

6. lancet :一个 hook 库

https://github.com/eleme/lancet
这个库非常久了哈,饿了么对外开源的,但是好像开发者关注度并不高。
实际上还是非常好用的,我们传统意义 hook 的想法,都是换掉某个实现。

比如 A 类,有个 b 方法,我们需要修改 b方法返回值,我们一般会考虑 hook 一些对象,由这些对象导致 b 方法的执行返回逻辑发生改变,但是这种hook 并不是那么容易找到突破口。

而 lancet 的概念就很有意思了,它不修改 b方法,他修改所有调用 b 方法的地方,把对b 方法的调用hook 到你准备好的方法中,所以你可以随意的控制返回值,当然这种 hook 肯定是基于编译期修改字节码的,优势就是一定能换到,只要是参与编译的代码。

我说的可能大家不太容易理解,还是建议大家了解下这个库的原理,确实是 hook 的一个非常好的新思路。

7. 奇思妙想

见到一个库是这样的:

https://github.com/m-zylab/SketchyComponent
主要是手绘风,相信大家根据之前的灰白化的文章:
App黑白化实现探索,有一行代码实现的方案吗?

都知道我们可以基于换肤的方案把一些控件换成我们自己的,那么假设我们可以提供手绘风格的:TextView,Button…等,是不是有可能可以将一个 app 瞬间变成手绘风格?

8. 随便播报

appcomapt 1.1.0 版本在 android 5.0,5.1的设备上可能会造成 webview 崩溃
这是周六的时候一个朋友遇到的问题,查了下发现的。
这是个官方bug:
https://issuetracker.google.com/issues/141132133

一些解决方案:
https://stackoverflow.com/questions/41025200/android-view-inflateexception-error-inflating-class-android-webkit-webview/49024931#49024931
如果你升级1.1.0要谨慎。

好了,祝大家元气满满!

坚持原创技术分享,您的支持将鼓励我继续创作!