1. 在 Android 模拟器上运行 ARM 应用
这算是一个非常好的消息了,之前在实际应用开发中,因为模拟器缺少对 arm 的支持,基本上都使用真机进行开发与调试。
随着 Android 11预览版的发布
Android 11 系统映像能够在不影响整个系统的前提下,直接将 ARM 指令转换成 x86 指令。开发者无需搭建高负载的 ARM 环境即可执行 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。
历史分享(点击可直接访问):
- 腾讯Bugly:对字符串匹配算法的一点理解
- 爱奇艺:安卓APP崩溃捕获方案——xCrash
- 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
- 百度APP技术:Android H5首屏优化实践
- 京东技术:任意URL跳转漏洞修复与JDK中getHost()方法之间的坑
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 支付宝 App 构建优化解析:通过安装包重排布优化 Android 端启动性能
- 支付宝 App 构建优化解析:Android 包大小极致压缩
- 搜狐:深入理解Flutter多线程
- 携程:从智行 Android 项目看组件化架构实践
- Google: Flutter 您需要知道的知识点 | FAQ・第三期
- 字节跳动:二维码扫描优化
- 网易传媒技术团队:AOP技术在客户端的应用与实践
- 网易大数据|互联网产品决策秘笈: AB测试
- 高德:Android Native 内存泄漏系统化解决方案
- 例说 Constraint Layout(三)—— 性能测试
- Android P之Smart Linkify
- 百度App组件化之路
- 百度App网络深度优化系列《三》弱网优化
- 头条| 深入理解gradle框架之二:依赖实现分析
- 美团| Probe:Android线上OOM问题定位组件
- 美团|Android静态代码扫描效率优化与实践
- 头条|开源 | Scene:Android 开源页面导航和组合框架
- 网易新闻客户端 H5 秒开优化
- 解决支付宝包体积优化的遗留问题:运行时获取dexpc
- Android篇 | 爱奇艺App启动优化实践分享
- 二维码扫描优化及爱奇艺App的实践
- 腾讯 Bugly:动态下发 so 库在 Android APK 安装包瘦身方面的应用
- 天猫精灵:史上最全Android渲染机制讲解(长文源码深度剖析)
- 花椒Android端自动化测试实践
- 一种简单优雅的TextView行间距适配方案
- Android 10分区存储介绍及百度APP适配实践
- 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%
- 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二)
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要谨慎。
好了,祝大家元气满满!