Android 7.0 init.rc的一点改变
来源:互联网 发布:单片机高八位低八位 编辑:程序博客网 时间:2024/06/05 10:16
在Android 7之前的版本中,系统Native服务,不管它们的可执行文件位于系统什么位置都定义在根分区的init.*.rc文件中。这造成init*.rc文件臃肿庞大,给维护带来了一些不便,而且其中定义的一些服务的二进制文件根本不存在。
但在Android 7.0中,对该机制做了一些改变 。
- 单一的init*.rc,被拆分,服务根据其二进制文件的位置(/system,/vendor,/odm)定义到对应分区的etc/init目录中,每个服务一个rc文件。与该服务相关的触发器、操作等也定义在同一rc文件中。
- /system/etc/init,包含系统核心服务的定义,如SurfaceFlinger、MediaServer、Logcatd等。
- /vendor/etc/init, SOC厂商针对SOC核心功能定义的一些服务。比如高通、MTK某一款SOC的相关的服务。
- /odm/etc/init,OEM/ODM厂商如小米、华为、OPP其产品所使用的外设以及差异化功能相关的服务。
这样的目录结构拆分,也与Android产品的开发流程相吻合,减轻了维护的负担。下图为Android7.0 模拟器/system/etc/init中定义的服务。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2.提供一个编译宏LOCAL_INIT_RC用于将服务相关的RC文件编译到相应位置。这能确保服务定义和服务的可执行文件同时存在,避免了之前出现的服务对应的可执行程序不存在的问题。
例如logcatd的Android.mk中,通过LOCAL_INIT_RC将logcatd对应的logcatd.rc编译到/system/etc/init目录中。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
3.在init执行mount_all指令挂载分区时,会加载这些目录中的rc文件,并在合适的时机运行这些服务和操作。下面位Android7.0模拟器的log。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
相关内容可以参考android 7.0 system/etc/init/readme.txt.
0 0
- Android 7.0 init.rc的一点改变
- Android 7.0 init.rc的一点改变
- Android 7.0 init.rc的一点改变
- Android 7.0 init.rc的一点改变
- Android 7.0 init.rc的一点改变
- android 的init.rc
- Android的init.rc
- Android init.rc 的執行順序
- Android init.rc 的生成
- android init.rc 的 service
- Android init 进程 init.rc init.*.rc
- Android init 进程 init.rc init.*.rc
- Android init 进程 init.rc init.*.rc
- 对/etc/rc.d/init.d/目录的一点理解
- 对/etc/rc.d/init.d/目录的一点理解
- 对/etc/rc.d/init.d/目录的一点理解
- 对/etc/rc.d/init.d目录的一点理解
- 对/etc/rc.d/init.d/目录的一点理解
- Java 7提供的多异常捕捉
- 一些关于Android蓝牙的学习链接
- Java常见异常类的继承关系
- [李景山php]每天laravel[037]-laravel 系统服务 --- 错误及日志
- 利用SVD简化数据
- Android 7.0 init.rc的一点改变
- 怎样访问异常信息
- Google 的android-architecture,todo-mvp解析
- 数据结构(17)——基于邻接表的基本操作:构造,深搜(DFS),广搜(BFS)
- 两个整数相除
- 自定义的异常类
- [HDU 5710]Digit-Sum:其他
- 1 Tomcat常用配置
- 设计模式概述