2022年12月26日—2023年1月8日Android精品文章一览

4,737 阅读8分钟

最近准备搞个专栏,专门整理推荐一些我已经阅读过的好文章,尽可能保证文章能给你带来技术上的提升,毕竟掘金上推荐的文章不一定都符合大家的口味、需求。计划每两周输出一篇文章,主要包括过去两周我所阅读的还不错的、给我带来帮助的十篇文章,也希望能给你们带来帮助。

历史文章

2022年11月28日—2022年12月11日Android精品文章一览

2022年12月12日—2022年12月25日Android精品文章一览

一. android 换肤框架搭建及使用 (3 完结篇)

这篇文章主要是解了如何搭建换肤框架的,当然在了解这个之前需要一些前置知识,比如Resource资源加载、Factory2拦截View创建等相关原理,作者也是很贴心的分别写了两篇文章讲解:

在了解完前置知识后,阅读android 换肤框架搭建及使用 (3 完结篇) 这篇文章时,建议大家一定搭配作者提交到github上的源码一起观看,这样你才真正了解透彻文章,能了解一个简单的换肤框架的实现原理,真正的掌握。

仔细阅读完这三篇文章,你会发现实现一个换肤框架没有想象中的难。而且了解了之后,会对资源的插件化、资源的热修复的学习打下一点点基础的。

二. Android自定义ViewGroup的交互,往往都是侧滑菜单开始

这个又是一篇非常好的学习Android滑动知识的好文章,作者会带你了解事件的拦截处理、滑动的实现方式等等,最后会通过实战的方式实现一个简单的侧滑菜单,类似于iOS的那种侧滑菜单。

文章的内容比较多,但是非常丰富,由于作者的写作功底,文章阅读起来也不会特别的难,非常好的一篇自定义ViewGroup相关知识点讲解的好文章,强烈推荐给大家。

三. 初学安卓framework系列 三 (系统服务的设计思路)

framework相关的知识点在我的印象中,一直都是十分枯燥且复杂的,平时也没多大机会去接触。

虽然但是,还是给大家推荐这篇好文章,对于framework的讲解文章作者并没有去一步步分析那些枯燥无聊的源码,而是从全局整体出发,从一个大家常见的问题的角度去讲述,比如安卓端的C\S架构是个啥,不细究于细节。

文章写的很通俗易懂,没有给framework蒙上更厚的面纱,这一是我感觉是最重要的,反而带着大家一步步的去解密。

还有作者写的另一篇framework好文:初学安卓framework系列 二 (安卓framework怎么给开发者赋能)推荐给大家。

四. 协程是怎么切换线程的

本篇文章主要是带大家了解协程如何实现线程切换的,文章并不会设计大量的很深入的源码分析,主要是对Dispatchers.xxx的实现作者一个基本的分析。

如果大家想要对于这块源码机制有个更深入的了解,推荐大家看这篇好文:Kotlin协程之Dispatchers原理,这篇文章作者带大家非常深入的分析了Dispatchers的实现原理,看完就会觉得很透彻。

本人之前也写过两篇分析Dispatchers.Main实现原理的文章,厚着脸皮给大家推荐下:

肢解协程:Dispatchers.Main到底是个啥(一)?

肢解协程:Dispatchers.Main到底是个啥(二)?

五. JsBridge 的设计与实现(下)

这是jsbridge讲解的下篇文章,还有一篇上篇:JsBridge 的设计与实现(上)

这两篇文章出自作者:工号_策码编腾_古哥,非常精彩的讲解jsbridge的好文章。

上篇文章带大家了解常见的系统提供的native和js交互方式,以及存在的弊端;

下篇文章会带领大家从0到1搭建一个jsbridge通信框架,大家项目可能用过github上非常受欢迎的一个jsbride通信库:GitHub - lzyzsd/JsBridge: android java and javascript bridge, inspired by wechat webview jsbridge,我们项目中就有用到,阅读完作者写的这篇文章,你会对github上的这个开源库实现原理熟稔于心。

想要了解jsbridge机制的以及如何封装的开发者,不应该错过这两篇好文章。

六. 面试官,你要跟我聊单例?那我可有话说了

单例的实现大家都知道,但是背后的机制你就可能不知道了,还是有很多道道的。比如如何实现一个最安全全卖你单例、单例的实现和类加载流程有什么关系等等

这篇文章的阅读门不高,读完你会对单例的实现机制有一个清晰的认知,通过学习到的背后知识,反哺到你项目中:目前单例的实现方式是否有什么弊端、是否可以完善等等。

不要轻易的把一篇文章定义为八股文,这篇文章还是建议大家读读的。

七. 自定义View模仿即刻点赞数字切换效果

这是一篇不错的自定义View实战文章,仔细阅读完文章,你会发现实现这种一个动画效果不复杂,作者讲解的很到位。

自定义View的一个最关键逻辑就是:拆解要把最终实现的效果拆解成一个个小逻辑单元,将一个复杂的大问题拆解成很多清晰简单的小问题,将每个小单元映射到能够拿来使用的系统API和小部分计算逻辑中,最终组合起来完成一个完整的自定义View实现。

总之来说,这个自定义的动画效果比较简单易上手,作者还在文章后面贴上了完整实现的代码,动手跟着实现一遍,实现最终效果时你会感觉很有成就感哈。

八. 记一次文件fd耗尽排查过程

文章主要从作者遇到的一个问题出发,讲述了一整个的排查过程,中间使用了那些有用的技巧、工具等,以及最终得出的结论

阅读完这篇文章,对我收获最大的就是如何去排查这种fd引发的崩溃、OOM等相关问题,你可以从这篇文章中学习到如何统计项目中fd的使用、如何借助PLTHook去hook native层关键API等等,非常的有收获。

如果没有native开发基础的可能看hook native那块讲解的比较吃力,我本人就是如此,但是还是强烈推荐大家阅读,看不明白就反复阅读几遍,加油。

九. 掌握这17张图,没人比你更懂RecyclerView的预加载

又是一篇分析RecyclerView模块源码的好文章,这篇文章主要分析了RecyclerView的预加载实现原理,关键类GapWork,文章中有大量的图片帮助读者更加清晰的了解一整个预加载的流程,对读者非常的友好。

文章的内容比较长,但是大家一定要耐得心看下去,因为RecyclerView的预加载又和RecyclerView最关键的复用机制有着较强的关联,属于大家要掌握的知识点。

文章并没有讲解的晦涩复杂,还是比较通俗易懂,文字看不太懂的话一定要多看几遍图片,做的图片都非常的精良。

十. 一种Android应用耗电定位方案

这是一篇讲解耗电性能优化非常非常赞的文章,文章逻辑清晰有条理,对于耗电检测讲解的十分到位,货拉拉官方出品的好文,文章的质量也是非常有保证。

文章并没花很大篇幅去分析那些复杂的系统源码啥的,不会显得特别枯燥,而是文章大部分内容讲解如何实现耗电的检测,并从蓝牙、GPS、sensor等方面带大家分析如何检测这块的耗电详情,以及最后面贴出了部分实践源码——ASM插桩实现wifiLock耗电检测,并配上非常详细的讲解。

这篇文章对于我这种APM新手非常的友好,顺便说一句,货拉拉的官方文章真的很棒。

总结

本篇文章统计的2022年12月26日—2023年1月8日期间阅读的好文章,又是收获满满的两周,其实还想着给大家推荐一篇,只不过就打破之前说好的推荐10篇精品的规则了。

所以就在总结这里额外推荐一篇文章了,准确来说不是一篇文章,而是一个框架的使用说明文档:moshi,GitHub框架主页上有一篇非常详细的使用文档;

image.png

英文阅读起来可能比较吃力,但是这篇说明文章写的非常到位,克服下困难阅读你还能学习下英语,一举两得。