大家好,欢迎来到IT知识分享网。
作为一个工作了好几年的Android应用层开发者,准备在工作之余干一件事情,那就是分享一些Android系统知识,为什么决定要做这个呢,理由如下:
帮助更多人转型Android系统开发
不知何时起,单纯的Android应用层开发越来越少了,主流技术演变也越来越快,从之前的rxjava到如今的协程,从之前MVC到如今的MVVM,还有Flutter、Compose等技术,可以说是日新月异。 当我们在使用这些技术时,通常会犯一个毛病,那就是使用简单,深入困难。随便新技术,可能几天就上手了,但是没有深入理解,时间久了,就容易欠下许多技术债。
这里我提到了转到Android系统开发,也并非是一定的好方向,只是觉得可以多一条路而已,毕竟有很多相通之处。在Android系统中,涉及的知识更多,从充当基石的Linux,到各种C++库的native层,再到我们熟悉的 Framework层,还包括虚拟机、驱动等,这里关联的知识非常多,更适合个人能力提升和沉淀。
在Android应用层开发进阶
这个说起来并非易事,可能在很多人的认知里,Android开发就是主要用来实现UI和交互,但是现在小程序和混合开发大行其道,真正留给Android开发的工作量可能会越来越少。
基本方向
Android系统的架构官方经典图献上:
从下到上分别是:
- Linux内核:Android平台的基础是Linux内核,Android虚拟机依靠Linux内核来执行底层功能,比如线程和底层内存管理。同时基于Linux内核可以让Android系统更加稳定,并且允许设备制造商为著名的内核开发硬件驱动程序。
- 硬件抽象层(HAL):为特定类型的硬件提供标准的接口,比如相机和蓝牙模块,这样各个硬件厂商就可以按需开发驱动程序。
- Android Runtime:这个便是Java代码运行需要的虚拟机,现在一般都是ART虚拟机,ART虚拟机可以执行DEX文件来运行Java代码。
- 原生C/C++库(native层):许多核心Android系统组件和服务都是用C/C++代码编写,比如OpenGL ES等,而Java和Native由JNI技术打通。
- Java Framework层:这里就是我们经常使用的一些Java API,包括各种服务,比如AMS、WMS等,也是Android framework开发最常修改的部分。
- APP层:这里就是我们平时开发的APP所在的层级,这里就更侧重前面说的性能优化和各种黑科技了。
上面大致列了Android系统的层级, 这里就要对每个层级所需要的相关知识做如下列举,这些仅仅只是罗列了很少一部分,有时间之后会进行补充,想要学明白这些点都需要花费大家非常多的精力, 但现在很多人迫在眉睫想要学好学会Framework,关于如何学习Android Framework开发知识,仍在迷茫的开发们可以参考整理的这份进阶文档《Android Framework 源码开发手册》,今天在这里分享给大家:
获取方法: 关注本人公众号<Android苦做舟> 或 联系作者 领取这些Android进阶开发文档
1.Android高级开发工程师必备基础技能 2.Android性能优化核心知识笔记 3.Android+音视频进阶开发面试题冲刺合集 4.Android 音视频开发入门到实战学习手册 5.Android Framework精编内核解析 6.Flutter实战进阶技术手册 7.近百个Android录播视频+音视频视频dome
1.Framework通信
进程间通信(Binder IPC机制)
- Linux内存binder基础
- Binder IPC通信原理
- 深入Binder驱动
- Binder面试总结(阿里篇)
进程内通信(Handler消息机制)
- Loop消息泵机制
- Message解析
- Handler面试分享(鹅厂)
实战企业架构通信
- LiveData事件机制
2.Framework底层服务
AMS原理
- SystemServer加载AMS
- AMS数据结构
- AMS数据结构
- Activtiy栈管理
- 手机开机启动的AMS流程
- App启动中的AMS流程
- Activtiy管理
- AMS面试集合
- AMS原理实战
PMS原理
- Packagelnstaller安装器流程分析
- PMS源码解读
- T10级面试PMS总结
WMS机制
- WMS内核
- Window的创建过程
- 企业级Toast与Window架构体系
- T10级岗位WMS面试总结
3.Framework系统资源
ServiceManager原理
- init.rc文件启动关键服务
- service_ manager进程入口
- ServiceManager消息轮训
- ServiceManager服务存储之svclist链表
- ServiceManager面试总结
深入Contxt上下文
- Context与ApplicationContext
- Context族谱分析
- Contextmp与ActivityThread
- getActivity()与getContext ()内存区别
- 带你认识不一样的上下文Context
深入Resource资源加载
- resources.arsc文件
- ResourcesManager创建Resource
- LoadedApk与Resource关系
4.Framework事件机制
事件分发机制
- Android事件处理的三个流程
- 事件信号从内核到IMS过程
- IMS如何推送数据给ViewRootimp转入上层
- Android处理Down事件的责任链模式
- Android处理Move事件
- 手写模拟Android事件分发架构
事件冲突解决万能公式
- 产生冲突事件分类
- 产生冲突事件分类
- 事件冲突优先级
- 事件冲突模拟实战
5.Framework UI机制
UI绘制原理
- setContentView加载数据的核心概念
- ViewRootlmpl的绘制管理
- Choreographer编舞者
- 测量机制(onMeasure)
- 摆放机制(onLayout)
- T10级面试UI绘制总结
UI自定义实战
- RecycleView
- Webview
- ViewPager
需要更多开发资料可以关注本人的公众号<Android苦做舟>领取这些Android进阶开发文档~
1.Android高级开发工程师必备基础技能 2.Android性能优化核心知识笔记 3.Android+音视频进阶开发面试题冲刺合集 4.Android 音视频开发入门到实战学习手册 5.Android Framework精编内核解析 6.Flutter实战进阶技术手册 7.近百个Android录播视频+音视频视频dome
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/47125.html