Android启动流程分析.doc

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android启动流程分析

Android 2.3.1 (Tiny210 Source) 启动分析 init 干的那些事儿 干吗的:保姆(打扫卫生),父亲(制造儿子) 谁找她:她干爹(内核或者switch_root切换) 代码阅读指数:★★★★★ 重点阅读函数: * main 入口 * parse_new_section 处理init.rc配置文件(注意这里默认的service不指定class属性,则默认的classname为 default,将被 class_start default 逐一启动) * service_start 启动服务 init.rc最重要的两个keyword 以on打头的“ACTION”,定义启动顺序的流程(early-init,XXXXX这里省略后面详细说 init, early-fs, fs, post-fs, early-boot, boot)。它的触发是被动的,在init.c定义了启动顺序,如前面所述可以理解为信号触发及回调。 基本格式: on action command command command * 以service打头的SERVICE,顾名思义,服务服务,为别人服务,是属于预先定义,后被调用的。其格式如下: service name command option option option 例如ueventd的启动 预先定义ueventd服务: service ueventd /sbin/ueventd critical #critical表示 关键服务,如果服务在4分钟内重启超过4次,将重启进入恢复模式 启动ueventd服务 on early-init start ueventd 常用command INFO sysclktz 设置时区 loglevel 设置消息调试等级 3 erorr 5 notice 6 info 一般设为7则可以输出所有的调试信息 export 设置环境变量,最多支持32个,在 运行程序execve时,作为第三个参数传入 symlink 链接 实际调用symlink函数 oldpath newpath mkdir 建立文件夹:mkdir path [mode] [owner] [group] mount 挂载文件系统:mount type device path flags ... options write 往指定文件输出内容:write file content chown 改变指定文件的所有者,组ID可选 chown file uid gid chmod 改变制定文件的权限 chmod 0777 file ifup 设置某个网络端口属性为up(ifr.ifr_flags |= IFF_UP;) hostname 设置hostname,即write_file(/proc/sys/kernel/hostname, args[1]) domainname 设置域名,即write_file(/proc/sys/kernel/domainname, args[1]); setrlimit 设置系统资源,例如设置调度优先级等,函数参数等同于setrlimit系统调用函数 setprop Android属性设置 启动流程 early-init 启动ueventdwait_for_coldboot_done 等待ueventd 初次初始化设备节点,并进入循环property_init 初始化property, 读取/default.propkeychord_init 按键音console_init 在FB CONSOLE 上打印提示消息,可以是565格式的图片(/initlogo.rle),也可以是默认的Android提示..set_init_properties 处理/proc/cmdline的参数(import_kernel_nv),增加至property中。 (这里可以传入工厂参数儿进入工厂测试模式)init 设置环境变量,建立必要的文件系统结构,建立cgroup(一种可设置进程的CPU,内存,网络占用率的机制)控制点early-fs 空,未处理fs 空,未处理post-fs 建立/data /cache 下必要的文件夹,处理/proc/kmsg,/proc/sysrq-trigger 权限 property_service_init 加载/system/build.prop /system/default.prop /data/local.

文档评论(0)

yaobanwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档