原标题:新技术又又又又又又又来了?
此“新技术”主要指大厂近期对外的分享,「大厂的对外分享系列」更新一篇, 目前 第 17 期,如果你对新技术都比较感兴趣,欢迎持续关注。
上一期链接:
新技术又又又又又又来了?
这一期距离上一期挺久了,所以内容也会丰富一些,不过还是对文章做了一些挑选。
1. 推荐两个年终总结
因为已经到 21 年了,如果还没有做年终总结的,可以给自己 20 年做个大致的总结,顺便给 21 年列一些重点目标,然后做下拆解为执行方式。
当然也可以看看一些优秀作者的年终总结,从他们身上尝试吸取一些经验和做事的方式,一起努力。
Flywith24的年终总结
我不是大佬,但我相信我在通往成为大佬的路上 | 掘金年度征文
https://juejin.cn/post/6903681611716362254
详细介绍了他整个学习生涯,学习方式,以及很多不错的学习资源推荐。
jsonchao 的年终总结
JsonChao 的 2020 年终总结
https://juejin.cn/post/6911091834219397134
相信大家对于 jsonchao的性能优化的文章都记忆犹新,从年终总结来看,可不仅是性能优化,还有 gradle plugin,算法,计算机基础,ndk,framework等等…都是他一年的学习计划。
作者对每个专题都做了比较详细的学习规划,非常值得借鉴。
2. 大厂对外文章分享
贝壳产品技术
贝壳APP Top Experience系列 | Android方法耗时统计工具
还是算比较常规的方案,通过 ASM 插桩,不过说起来容易,真要做成一个完善的框架还是没有那么轻松的,需要考虑各种 case:例如方法的耗时统计还要考虑到方法执行过程中发生了异常等等,值得借鉴一下。
字节跳动技术团队
抖音 Android 性能优化系列:Java 内存优化篇
Java OOM 一直是 Java Crash中比较难搞的问题了,这篇文章还是比较干的,可以看到产生 Java OOM可能有哪些原因,针对每 类原因:如何处理,需要哪些工具建设,中间也会涉及到很多原理上的知识。
腾讯音乐技术团队
QQ音乐Android编译提速之路
主要思路有些类似于热修复、Instant Run,只编译改动的代码,然后 push 到手机上运行,但是这个过程涉及太多的细节:资源处理,kotlin 等等,想要稳定的跑起来,还是极其不容易的,可以学习下。
有赞之前也分享过一个方案:
有赞 Android 编译进阶之路 —— 增量编译提效方案Savitar
https://tech.youzan.com/you-zan-android-bian-yi-jin-jie-zhi-lu-zeng-liang-bian-yi-ti-xiao-fang-an-savitar/
和 QQ 音乐的方案大的思路上是类似的,不过都没有开源,感觉未来增量编译这一块:只编译修改的代码,然后 push到设备运行,是个比较大的趋势,而且效果确实显著。
这个思路,其实在很久很久以前就有人提出了,当时我还记得推送过:
Android 加快apk的构建速度,如何把编译时间从130秒降到17秒
还是期待能有一个稳定运行的开源方案出来。
美团技术团队
移动端UI一致性解决方案
移动端开发,相信大家可能有 30%的时间都在处理 UI 上,如果项目中有一致的规范、一套非常丰富的 UI 组件库,然后 PM、UI、UE、研发等角色都使用这个组件库,可以极大的提升开发的效率,看下美团是如何做的吧。
西瓜技术团队
Android D8编译器“bug”导致Crash的问题排查
这个就比较硬核了,感兴趣的自己查看吧。
Google 开发者
响应视窗属性动画 | 让您的软键盘动起来 (二)
在 Android 11上,键盘终于要支持比较融合的弹出动画了,不用再羡慕 IOS 了…
历史分享(点击可直接访问):
3. 字节跳动开源内存快照裁剪压缩压缩工具 Tailor
https://github.com/bytedance/tailor
目前已经用于:
内存一直和稳定性息息相关,毕竟 OOM 是崩溃的大头,OOM 的产生其中一个因素就是内存泄露,谈到内存泄露大家就会想到 LeakCanary,LeakCanary 它的使用的场景主要还是线下并且是以页面为粒度的。
而更多的时候,我们希望线上用户发生了 OOM 也能把内存hprof 文件上传上来做自动化的分析,但是 OOM 时候的内存快照是极其大的,所以需要裁减掉一些不太重要的信息,这个时候内存裁减工具就显得比较重要的。
另外这块,之前推荐的快手的线上内存监测方案也可以参考学习:
https://github.com/KwaiAppTeam/KOOM
4. 滴滴开源小桔棱镜
https://github.com/didi/DiDiPrism
这是一个专注 于移动端操作行为的工具,涵盖APP操作回放、操作检测、以及数据可视化能力。
支持 App 功能回放还是比较有意义的,记得以前在小度的时候,还想着可以自定义操作,然后把操作行为定义成语音识别,这样App 就可以通过语音去控制自定义行为了。
不仅如此,其功能在于自动化测试,以及埋点测试上都有比较不错的应用场景。
看到该项目说明已经在生产环境运行一年了,目前我们项目还没有这个能力,今年准备好好看一下这个,尝试具体场景落地下。
5. 滴滴开源更新Dokit For Flutter
https://github.com/didi/DoraemonKit/tree/master/Flutter
内测版本,目前提供了日志、method channel信息、路由信息、网络抓包、帧率、设备与内存信息查看、控件信息查看功能。
DoraemonKit的维护还是非常勤快的,从开源的角度来看也取得了非常不错的成绩,1.6w 的star,功能确实好用,最近又更新了对 Flutter 的支持,感兴趣的可以关注一波。
拆解 Dokit 的各个功能,还是能学到不少有意思的技术点的。
好了,如果你对官方、大厂发布的技术文章和开源项目感兴趣,那么欢迎关注本号,本号将持续为你推送所有大厂移动端对外动态。