一、Android系统架构
详情请参考 source.android.google.cn/devices/arc…
虚拟机与运行环境
-
虚拟机的作用:提供 Java 代码的运行环境。
-
DVM/ART 虚拟机:
- DVM(Dalvik Virtual Machine) :早期 Android 使用的虚拟机,采用 JIT(Just-In-Time)编译技术。
- ART(Android Runtime) :从 Android 5.0 开始引入,采用 AOT(Ahead-Of-Time)编译技术。ART 在应用安装时将 Java 字节码翻译为机器码,提升运行效率。
常用命令
-
查看文件夹占用空间:
du -sh .- 显示当前文件夹占用的内存大小。
-
查看 CPU 信息:
cat /proc/cpuinfo- 显示 CPU 的详细信息。
-
全局搜索:
- 快捷键:
Ctrl + Shift + N。
- 快捷键:
-
查看磁盘使用情况:
df -h- 显示磁盘分区的使用情况。
-
查看目录结构:
tree -L 1 root- 显示
root目录的一级子目录结构。
- 显示
厂商与分区
-
厂商类型:
- ODM(Original Design Manufacturer) :贴牌厂商,负责设计和生产设备。
- OEM(Original Equipment Manufacturer) :代工厂商,负责制造设备。
-
Treble 项目:
- 从 Android 8.0 开始引入,旨在将 Android 系统框架与硬件驱动分离,便于系统升级。
-
Android 分区:
- root:提供顶层框架,规定 Android 根目录结构,生成
ramdisk.img。 - system:挂载到
root/system节点,生成system.img。 - vendor:挂载到
root/vendor节点,生成vendor.img。 - data:挂载到
root/data节点,生成userdata.img。
- root:提供顶层框架,规定 Android 根目录结构,生成
-
镜像文件:
- 将文件夹打包成特定格式的文件,如
system.img、vendor.img等。
- 将文件夹打包成特定格式的文件,如
-
misc 分区:
- 用于 BootLoader 与 Android 通信。
- 例如,恢复出厂设置时,Android 向
misc分区写入数据,重启后 BootLoader 读取misc分区并进入恢复模式。
启动流程
-
uboot 阶段:
- uboot 将
kernel和ramdisk进行重定向。 kernel挂载ramdisk为根文件系统。
- uboot 将
-
init 进程:
init是 Android 的祖先进程。- 读取
init.rc文件,挂载system、vendor和userdata分区。 - 启动
zygote进程(位于/system/bin)。
-
动态链接器:
- Android 使用
/system/bin/bootstrap/linker64加载可执行程序。 - 传统 Linux 使用
ld加载。
- Android 使用