<- 点击标题OPEN按钮:查看此Notion数据库的使用方法
进程通过虚拟内存地址访问这些数据结构的时候,虚拟内存地址会在内存管理子系统中被转换成物理内存地址,通过物理内存地址就可以访问到真正存储这些数据结构的物理内存了。随后就可以对这块物理内存进行各种业务操作,从而完成业务逻辑。 • 那么到底什么是虚拟内存地址 ? • Linux 内核为啥要引入虚拟内存而不直接使用物理内存 ? • 虚拟内存空间到底长啥样? • 内核如何管理虚拟内存? • 什么又是物理内存地址 ?如何访问物理内存?
Android 通用内核 (ACK) 是所有 Android 产品内核的基础。供应商内核和设备内核位于 ACK 的下游。供应商通过修改内核源代码并添加设备驱动程序,添加了对 SoC 和外围设备的支持。这些修改内容可能很多,以至于设备上运行的代码中有多达 50% 是树外代码(并非来自上游 Linux 和 AOSP 通用内核)
在GKI2.0下我们使用的boot.img是google 提供的prebuild,当我们的bug fix,需要修改kernel代码的时就需要respin 。 在项目开发后期,谷歌会从主线上拉出月度分支,例如主线android13-5.15 上用的是android13-5.15-2022-08分支,此分支会作为最后发货,分支被冻结不会随着主线更新。我们基于这个分支去申请respin。
最新Linux内核上的新Android设备将需要每年执行两次LTS更新(针对Android通用内核),以满足Android操作系统发布后头两年的安全补丁级别(SPL)要求。之后,我们将需要执行年度LTS更新,而Android操作系统版本仍保留在安全修复的支持窗口中
高通平台进行GKI升级的流程介绍
MTK平台进行GKI升级的流程介绍
从原理以及代码上来分析高通平台android的启动流程
在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是Makefile,但是随着Android的工程越来越大,模块越来越多,Makefile组织的项目编译时间越来越长。这样下去Google工程师觉得不行,得要优化
从源码角度一层一层的分析android编译时make的流程
Android系统编译之后的打包阶段,会将所有编译出来的有需要的执行文件,库文件以及各种配置文件等打包到各个镜像文件中。有时候我们需要看一下镜像文件中都打包了什么东西,那就可以通过一些方法将其挂载到一个目录,然后进行查看。
基于andorid R梳理的wifi上网校验流程,其余android版本也差不多,相差不大