Android 读书笔记-Framework概览(一)

参考书籍(Android框架揭秘-)

1.framework概要

在这里插入图片描述

1.1 framework层模块

am、 wm、 content providers、View system、notification manager、pm、tm、resource manager、location manager

1.2 启动过程

bootloader->初始化linux内核->init进程
init进程初始化daemon进程、context manager、media sever、zygote

1.3 主要进程

Context manager:管理系统服务的进程,应用进程调用系统服务过程
详细见5.3Binder寻址
在这里插入图片描述

System View进程:创建系统服务
zygote

1.4 init进程

在这里插入图片描述

查找并执行init文件


static int noinline init_ post(void)
if (execute_ command) f
run_ init process(execute command);
}
run init_ process("/sbin/init");
run init_ process(" /etc/init");
run_ init process(" /bin/init");
run_ init_ process(" /bin/sh");
}

init进程功能:
分析init.rc文件 -->运行服务列表
生成设备驱动节点
处理子进程终止—>重启子进程
属性服务
init进程注册信号处理器,接收子进程终止的信号
创建并挂载需要的文件目录

mkdir("/dev", 0755);
mkdir("/proc", 0755);
mkdir("/sys", 0755);

mount("tmpfs", " /dev", "tmpfs", 0, "mode=0755" );
mkdir("/dev/pts", 0755);
mkdir("/dev/socket", 0755);
mount("devpts", " /dev/pts", "devpts", 0, NULL);
mount("proc", " /proc", "proc", 0; NULL);
mount("sysfs", "/sys", "'sysfs", o, NULL);

sysfs

init进程生成输出设备
解析init.rc文件
init.rc 文件在Android系统运行过程中用于通用的环境设置及与进程相关的定义
init. {hardware}.rc用于定义Android在不同平台下的特定进程和环境设置等

parse init.rc --> service list && action list

生成静态节点文件

共享内存中生成属性域,设置一些属性
显示logo

执行action list中与init区块相关的命令

启动属性服务
在这里插入图片描述

子进程向init进程提交申请来修改属性值,通过socket

在poll中注册文件描述符,设置事件处理循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值