一、前言
前面一篇文章写了2025年Android六边形战士开发趋势,需要掌握哪些技能可自我反省,其实也没有完全讲完。它还有框架篇,架构篇。但是要单单从技术上面把这两点深入掌握,需要相当的基础功底。至少,我前一篇里面提到的:
- Android开发必备技能
- Framework的理解
- 性能优化 这三点必须要深入掌握才行。
才能不被沦为高级三方SDK调用工程师。
那我们先来聊聊框架篇,沦为高级三方SDK调用工程师的表现有哪些,可能开发者在初级阶段,或者初中级阶段,或者开发年限混得比较久的伪高级都有这种。比如,我们要开发一个App:
- 网络框架选
Retrofit+Okhttp
等 - 数据库选
Room
,或者GreenDao
等 - 本地存储
Key-Value
选MMKV
- 下拉刷新选择
SmartRefreshlayout
- 组件化选择阿里
Arouter
- 异常上报监控旋转腾讯
Bugly
或者其他等 - 音视频播放选择
Exoplayer
或者其他等 - 图片加载框架选择
Glide
- 动画选择
lottie
库 - 异步任务处理流采用
RXJava
或者Flow
- 图标库采用
MPAndroidChart
- 直播IM采用某XXX公司的SDK
看上面这些,完全没有错啊,用这些也没有错啊,但是只会用这些,不理解里面核心部分,或者不能自己撸轮子,是想要走到高级去,那这样是肯定不行了。没有哪一个高级工程师敢声称自己达到高级所掌握的技术范围是只会使用这些三方sdk的api的。
其实现在Android开发已经相对早期好太多了,大多数轮子都已经被人造出来了。android 三方已经有很多轮子了,android 自己早前的v4,v7,v13 supoort
也有很多轮子,到现在,Android 官方Jetpack 库里面本来就自带了很多轮子。经历过Android 1.6, Android2.1, Android 2.2, Android 2.3
开发的都知道,那时候是没有轮子的,比如:网络框架得自己封装好没有轮子,图片异步加载也是得自己造轮子,没有轮子,下拉刷新也没有的得自己写,就连早期没有v4,就没有viewpage,左右滑动翻页得自己写。早期的夜间模式得自己想思路自己写,现在的换肤框架,兼容不了之前的。
现在有这么多轮子了:如果想成为高级,还得深入理解, 理解的程度要达到自己能撸一个的水平
。
二、框架理解有哪些,对应哪些技术
- 研究Retrofit:理解动态代理,注解,反射,学习它所用到的设计模式,达到自己能手写它的核心实现
- 研究Okhttp:理解它的请求如何共享同一个Socket,内置连接池,连接复用,gzip压缩,响应缓存,自动重试,底层OKIO,所设计到的模式,尤其是拦截器部分的责任链模式
- GreenDao,Romm,掌握对象映射,自动生成代码系列,相关 apt,kapt,ksp,spi相关机制等
- MMKV,掌握Protobuf, mmap,关联binder跨进程通信 只copy一次原理
- SmartRefreshlayout,掌握自定义view,和它的设计思路
- Arouter:掌握路由原理,及ASM字节码插桩
- Bugly:掌握崩溃,异常捕获,能自定义Thread.UncaughtExcerptionHandler处理异常方案及对traces.txt文件监控方案并分析
- Exoplayer掌握音视频的硬解码,缓存处理,能手写它
- glide深入理解它的三部分,with部分,注册编码器,管理请求和生命周期监听,load部分,每个请求单独配置option,into部分,启动请求,加载数据,对数据解码,转码,缓存数据,显示数据
- RxJava,掌握它背压模式,观察者模式,如何切换线程,能手写它
- MPAndroidChart:掌握android 画布绘制原理,能自己绘制各种图表
- 直播IM的SDK,掌握音频 视频,编码,解码 原理,rtmp,rtsp推拉流等
三、架构理解
Android端架构篇应该学哪些?简单以下几点
- 前言里面三点必须要深入掌握才行
- 针对项目模块分: 才有模块化,组件化,插件化
- 针对模块内部代码架构才是 MVC,MVP,MVVM,MVI等。
- 2和3的选型问题,根据预算时间,金钱,人员成本,综合考虑,选型问题。
- 技术方案定制相关等
总结
本文重点介绍了,怎么避免沦为高级三方SDK调用工程师?学些三方框架应该掌握它里面的哪些技术,或者思路
架构的简单理解。