今年互联网寒风好像没有停止过,从年初的开始一直持续到现在,中间也有不少大厂传出优化人员的消息,近期印象比较深的还是菊厂新闻。

这杀伤力直接拉满,市场的寒气瞬间就被扩散开了,招聘门槛再度提高、毕业优化、边缘业务裁撤、HC缩减……
想必有许多小伙伴焦躁不安,时刻感觉危机会降临到自身。但对于一些有真实力的人而已并不算什么。
就拿Android 开发行业来说,初中级市场已基本处于饱和状态,而这股寒气的来袭更让开发者们头疼起来。甚至有人想问自己到底还能在这个行业待多久?是不是早点转业比好?
Android 具体还能在市场上存活多久,这是未知的,也是明天、后天、几年后就没了或者一直都在。但是只要在它存活在市面上一天,那么市场就一定会有对 Android 技术人才的需求。

如果想转行就得趁早,不然热门行业的饼就被别人先吃完了。转行方向建议:系统开发、车载开发、音视频开发、游戏开发、逆向安全、跨平台开发……,这些都是目前市场热门行业。
但如果你想继续的坚持收获在该行业,那么你就必须掌握长存法则:拥抱新技术,深挖底层,高筑技术壁垒。
拥抱新技术:Kotlin/Jetpack/Compose,总要有所涉猎吧?
深挖底层:开源库原理/Framework/性能优化,总要有一个特别行吧?
就拿 Framework 知识点来说,它始终穿插在每个App的整个研发生命周期中,尤其是从1到N的阶段。不管你后面转做车载开发、还是跨平台开发等……它都有涉及到。
同时在大厂面试中,像Framework 涉及到的相关问题是必问项,还有些面试官喜欢那它去考察候选人的功底。例如:
1.APP启动过程中必须处理的问题有哪些
2.如何合理的在启动阶段最优化利用CPU资源
3.AMS和WMS管理UI的流程对启动优化的意义
4.启动任务过多如何合理的组织和管理这些任务
5.APP整体设计时如何设计启动管理架构
6.Binder 线程池数量是多少?
7.Binder一次拷贝原理?
8.Binder线程池满了为什么会造成ANR
9.……
如何才能掌握好 Framework呢?
首先对Framework涉及到的技术点进行收集,再将其技术点(知识点)进行梳理整理成思维导图的形式,注意针对自身的需求分好先后顺序,后续可以根据规划好的导图顺序去查找相关文档、视频学习。导图的主要目的就是帮你理清楚学习的方向,学习旅途中少走弯路。

上图是小编整理梳理的思维导图,大家不嫌弃可供参考,中间记录了Framework 通信(Binder、Handler、Livedata机制)、Framework 底层服务(AMS、PMS、WMS)、Framework UI机制(UI绘制、UI自定义)、Framework 事件机制、Framework 系统资源,根据这些知识点整了份《Android Framework 开发手册》,望这导图和学习手册能在大家学习途中 有一席用武之地 ↓↓↓
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
一、Handler机制实现原理部分
1.宏观理论分析与Message源码分析
2.MessageQueue的源码分析
3.Looper的源码分析
4.handler的源码分析
5.总结

二、Binder原理
1.学习Binder前必须要了解的知识点
2.ServiceManager中的Binder机制
3.系统服务的注册过程
4.ServiceManager的启动过程
5.系统服务的获取过程
6.Java Binder的初始化
7.Java Binder中系统服务的注册过程

三、Zygote原理
1.Android系统的启动过程及Zygote的启动过程
2.应用进程的启动过程

四、AMS 原理与源码分析
1.Activity生命周期管理
2.onActivityResult执行过程
- AMS中Activity栈管理详解

五、深入PMS源码
- PMS的启动过程和执行流程
2.APK的安装和卸载源码分析
3.PMS中intent-filter的匹配架构

六、WMS机制
1.WMS的诞生
2.WMS的重要成员和Window的添加过程
3.Window的删除过程

需要参考学习的小伙伴,可以 通过↓↓↓方式货取!!!
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
最后
作为过来人,我发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如:
- 工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会发作,原因则是缺乏方法论、思路的指引以及工具支持;
- 能力修炼中,缺乏互联网项目这一实践环境,对Framework只能通过理论知识进行想象,无法认识其在工作实战中的真实面目和实操过程;
- 职场晋升中,只管功能开发,不了解底层原理,缺少深入地思考与总结,无法完成复杂系统设计这类高阶工作,难以在工作中大展拳脚,而有挑战的工作往往留给有准备的人。
总之,一旦遇到问题,很少人能够由点及面逆向分析,最终找到瓶颈点和最优解决方案,而Framework是Android开发的深水区,也是衡量一个Android程序员能力高低的标准。
网友评论