Android技术知识

死磕 Framework准没错,大把的高薪岗位等着你~

2022-10-11  本文已影响0人  搬砖小老弟

随着互联网时代产品的不断更新,各大厂、各中小型公司的招聘需求也在不断的变更。Android 开发行业就是一个很好的例子,从最开始火爆的热门行业,现在却变成内卷最严重的行业。如果想要找份高薪的工作,你还得要对某个或多个技术板块有着深入了解,要么就是对一些新技术有着一定的了解;否则你就只配那种最低的工资,天天加班。

新技术例如:Kotlin、Jetpack、Compose……等
可以继续深挖的技术例如有:开源库原理、Framework、性能优化……等

就拿Framework 为例来说,除了通常市场上一些(小米、OPPO、美团……等)大厂需要这方面的人才外,现在热火的车企行业也在广招这方面的人才。

所以说深耕Framework 还是可以的,毕竟目前趋势在这里。

首先你得知道什么是Framework?Framework里面的内容需要学习那些?

Framework是一个架构,它是一个语言开发软件,提供了软件开发的框架,使开发更具工程性、简便性和稳定性。

下面这张图想必大家都看过,Google官方提供过一张经典的平台架构图,从下往上依次分为:Linux内核、硬件抽象层、Native层、Java Framework层、App层,每一层都包含大量的子模块或子系统。

可以看到具体app的下面就是Framework层的支撑。所以掌握Framework层非常有助于我们开发出一个性能良好的App,另外在大厂的面试过程中,Framework也是高阶面试时必问的问题。例如

  1. 为什么Zygote通信fork进程,使用的是socket,而不是Android的Binder?
  2. 为什么是从zygote进程fork App,而不是其他进程?
  3. Binder在做数据传输过程中,最大的数据量限制是多少?
  4. 打开一个Activity的过程中经历过几次跨进程调用?
  5. ANR弹框的原理是什么?
  6. ……

等等这类问题却在大厂面试中经常问到,如果有会小伙伴会这些问题的,欢迎大家在评论区留言回答。

在所有的Framework知识中,要数最重要的还是AMS,主打和Activity,Service,ContentProvider,Broadcast等交互:

看一下上图,Activity启动,涉及到ActivityThread,AMS,H类,上述过程还涉及到多次跨进程调用,涉及到各种binder的知识。
搞清楚这些:我们就可以去研究各种黑科技,例如在做插件化的时候,你需要占坑Activity等,hook代码等都是在和AMS斗智斗勇;在做性能优化的时候,你也要了解AMS是如何调度Activity的,消息队列是如何运转的,这些必须要要搞清楚。

当然大多数开发者更多的还是在做业务开发,对于Framework基本停留在“不够了解”的阶段,其中不乏一些工作多年的 Android 工程师。

如果想要精进,不仅要对底层原理充分了解,还要知道如何利用Framework知识指导我们代码实践开发,像Android App 的启动机制、AMS、PMS、WMS、Handler、Binder等...

考虑到 Framework 中所需要学习的知识点较多,想一次性全部在这讲完有点不太现实,于是对Framework 的所有知识点整理了一条完整知识路线,并将相关的知识点解析整理成了对应的学习手册,请继续往下看:

该路线共分为5大版块,分别是:Framework 通信、Framework底层服务、Framework 系统资源、Framework事件机制、Framework UI机制,在这些里面又分了许多小分支,大家可以仔细的参考看一下。针对这图中所记录的一些小知识点相关解析汇总成了一个文档形式,有需要的可以 点击直接参考↓↓↓ 学习!

有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE

《Framework 核心知识点汇总手册》

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执行过程
  3. AMS中Activity栈管理详解

深入PMS源码

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

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

《Android Framework学习手册》:

  1. 开机Init 进程
  2. 开机启动 Zygote 进程
  3. 开机启动 SystemServer 进程
  4. Binder 驱动
  5. AMS 的启动过程
  6. PMS 的启动过程
  7. Launcher 的启动过程
  8. Android 四大组件
  9. Android 系统服务 - Input 事件的分发过程
  10. Android 底层渲染 - 屏幕刷新机制源码分析
  11. Android 源码分析实战

有需要的可以 点击直接参考↓↓↓ 学习!

有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE

作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如:

上一篇下一篇

猜你喜欢

热点阅读