Android Framework源码与内核深入解析,Binder\Handler\WMS\AMS……

写在前面:

1、有没有必要学习linux内核?我认为是很有必要的。
学习linux内核有助于我们加深对一些概念的理解,比如“进程”、“线程”。
2、有没有必要自己编译android源码?
非必须,可以直接用android studio查看sdk源码,除非要调试一些功能。但是要亲自操练起来才能更熟悉。

android framework与我们的开发息息相关,这也是我们通常需要阅读源码的地方。

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

尤其是在面试的时候,面试官经常同你随便侃侃Activity的启动模式,但Activity启动牵扯的知识点其实很多,并非能单单用四个启动模式就能概括的,

默认的启动模式的表现会随着Intent Flag的设置而改变,因此侃Activity启动模式大多走流程装逼,最多结合项目遇到的问题,不熟悉Framework内容,这很难把控得住。

最为值得关注的是,Android Framework招聘岗位增长速度竟然达到了70%,在这接连裁员的环境下,也看得出这块前景是不可估量的。

在这里插入图片描述

那Android Framework工程师需要学习那些内容?

首先,需要了解Android系统的基本架构和组成部分。包括:Linux内核、HAL层、Framework层和应用层等。

其次,开发者们需要熟悉Java编程语言和Android开发工具,如Eclipse和Android Studio等。

最后,开发者们需要了解Framework层框架的各个模块和功能,如Activity、Service、Content Provider和Broadcast Receiver等。

这样一看想要全面学习 Android 系统,似乎并不简单而且有些难度,但我们作为应用开发者来讲,如果只是了解一些选修内容还是没那么难,虽然 Android 系统非常庞大且错综复杂,但整体架构设计还是很清晰的。

那么对于想要深入学习Android Framework开发知识的,仍在迷茫的开发们可以参考这份腾讯大佬整理的进阶文档《Android Framework 源码开发手册》

内容涵盖:系统启动流程分析、跨进程通信IPC、Handler、AMS 、WMS、SurFace,SurfaceFlinger、PKMS等共10个章节,章节最后还有相关面试题解析,帮助大家更好地学习Framework,通过面试难关。

在这里插入图片描述

由于篇幅原因,文中只展示部分内容,完整的可以直接下方扫码获取:

部分内容节选

目录

在这里插入图片描述

Android系统启动流程

了解Framework的同学,可能都或多或少的知道AMS、WMS、类加载、热修复Sophix、插件化等都要涉及系统的启动流程。

从手机开机开始涉及到的关键流程一般可分为以下五个步骤

  1. 手机开启执行Boot ROM引导芯片开始执行。
  2. 加载引导程序Boot Loader到RAM,Boot Loader一般就会由厂商进行定制。
  3. 执行引导程序:初始化堆栈、硬件、网络内存等操作。
  4. 启动Android内核,寻找init关键文件,并启动init进程
  5. Kernel启动后,在用户空间启动init进程,该进程作为用户空间的第一个进程,并调用init进程中的main方法开始启动Zygote进程。

仅凭流程是无法掌握具体技术,相信完整的源码解析加上案例分享,可以帮大家省下不少时间。

在这里插入图片描述

跨进程通信IPC

IPC(inter-Process-Communication)进程间通信,用于两个进程之间进行数据交互的过程,任何操作系统都有IPC机制,但不同的操作系统有着不同的通信方式,Android系统是一种基于Linux内核的移动操作系统,Linux的跨进程通信主要通过管道、共享内存、内存映射等实现的,但Android有自己的进程间通信机制,最具代表性的就是Binder。

在这里插入图片描述

结语

在整个Framework的学习过程中肯定会有一些痛苦,但相信只要能熬过去便能更上一层楼。

共勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值