前言
现如今,由于市面上应用App的更新逐渐变少,很多Android移动应用开发者都开始转型做系统开发,这比开发应用有趣多了,因为你可以探索系统模块的运行原理,从框架层面去了解它。
在应用层,你只需要配置好相关的参数,就不用那些组件是怎么配合运行的,也不用关心类库中那些方法的由来,更不用在意这个运行流程怎么是这样的。所以在应用层,开发者一般主要关注基础功能的实现,对于实现原理就没有过多的关注。
但是在Framework层,你就要关注这些组件框架的运行原理了,为什么这么说呢?
如果你想提高一个App的用户体验,就需要熟悉Activity的启动和Android整个渲染机制,还需要掌握App性能优化的原理和方法,因为framework层的开发工作就是从系统层面上来维护,优化应用的用户体验感,如果用户在使用App的过程中出现了卡顿,闪退,反应慢等现象,必然造成用户体验降低。
所以说学完这部分,你不仅可以知道类库、函数、组件的运行原理,也可以从系统层面上来优化整个应用。
如何学习Android framework层的内容呢
学习Android Framework层的内容需要一定的基础和技能。如果你从应用层转向Framework开发,可以从以下几个方面入手:
- 掌握Java语言和面向对象编程基础。Android Framework层是用Java语言编写的,因此需要熟悉Java语言的基本语法和面向对象编程思想。
- 学习Android系统架构和框架。Android系统是由多个层次组成的,包括应用层、应用框架层、系统运行库层、Linux内核层等。需要了解各个层次之间的关系和交互,掌握Android系统的架构和框架。
- 学习Android Framework层的核心模块。Android Framework层包括许多核心模块,例如Activity Manager、Window Manager、View System、Package Manager、Content Provider等。需要逐一学习这些模块的实现原理和使用方法。
- 学习Android Framework层的API。Android Framework层提供了许多API,包括Android系统服务、系统类库等。需要了解这些API的使用方法和实现原理。
- 参与开源项目或者自己实现一个小项目。参与开源项目可以锻炼自己的技能和经验,也可以学习其他开发者的经验和技能。自己实现一个小项目可以巩固自己的知识和技能。
总的来说,学习Android Framework层需要一定的基础和技能,需要花费一定的时间和精力。需要掌握Java语言和面向对象编程基础,了解Android系统架构和框架,学习Android Framework层的核心模块和API,参与开源项目或者自己实现一个小项目,不断提升自己的技能和经验。
没有方向和学习资料的可以点击下方大佬分享腾讯文档:
Framework精编内核解析
docs.qq.com/doc/DWFdlc2JocEtNbEJ1 全部内容分享
第一章 深入解析Binder
- 第一节 binder系列-开篇
- 第二节 Binder Driver 初探
- 第三节 binder Driver再探
- 第四节 binder启动 serviceManager
- 第五节 获取 SericeManager
- 第六节 注册服务
- 第七节 获取服务(getsevice)
- 第八节 framework 层分析
- 第九节 如何使用 Binder
- 第十节 如何使用 AIDL
- 第十一节 Binder 总结
- 第十二节 Binder 面试题全解析
第二章 深入解析Handler消息机制
-
第一节 宏观理论分析与 Message 源码分析
-
第二节 MessageQueue 的源码分析
-
第三节 Looper的源码分析
-
第四节 handler的源码分析
-
第五节 Handler机制实现原理总结
-
第六节 Handler面试题全解析
第三章 Dalvik vm 进程系统 -
第一节 Android 系统启动-综述
-
第二节 Init 篇
-
第三节 zygote 篇
-
第四节 SystemServer 上篇
-
第五节 SystemServer 下篇
第四章深入解析 WMs
- WMS 概述
- WMS 的诞生
第五章 PackageMS 启动
最后
由于Framework层的内容巨多,很容易出现看完后面的内容就立马忘记前面的内容,所以,要记得在看完一部分时要及时总结。总结可以是一个流程图、一篇文章,或者任何你认为合适的方式,一来可以加深记忆,二来可以复习和会刊。