- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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/
您可能关注的文档
- 9.1 金融资产分类【应试精华会计网校】.doc
- 9.1枣阳中银富村镇银行有限公司章程???.doc
- 9.2015继续育答案--经济增长新亮点.doc
- 9.2枣阳中银富村镇银行_会计基本制度_v3.doc
- 9.区域特征分析差异比较.doc
- 9000质量体系证文件控制程序.doc
- 901工作面初次顶的安全技术措施.doc
- 90个摄影技巧,鸟变达人.doc
- 90分《中国行政革面临的困境与突破》下试卷.doc
- 90分以上的融合育正确答案.doc
- 2025年氢能源汽车产业发展关键:加氢站建设成本分析与布局优化策略报告.docx
- 康复工程智能化解决方案市场前景与竞争格局分析报告.docx
- 2025年文化娱乐行业消费者行为趋势分析报告:细分市场洞察[001].docx
- 2025年社区零售行业数字化供应链金融创新应用案例报告.docx
- 2025年环境监测智能化系统在野生动植物监测中的数据质量控制研究.docx
- 广告传媒行业2025年:新兴媒体广告投放成本控制策略报告.docx
- 2025年线下演出市场复苏,演出市场知识产权保护趋势报告.docx
- 城区供水管网升级改造工程实施方案.docx
- 低空旅游产业政策效果评估与优化建议报告(2025年).docx
- 2025年连锁餐饮行业中央厨房食品安全风险管理与供应链协同研究报告.docx
文档评论(0)