Android学习 —— 测试init.rc中的条件触发的处理顺序
测试程序
在/system/etc/init/hw/init.rc中追加下面的测试程序:
然后重启
日志
使用logcat抓取init的日志:
adb wait-for-device logcat -s init
测试
- 依次设置test1和test2
vsoc_x86_64:/ # setprop pengdl.test1 1
vsoc_x86_64:/ # setprop pengdl.test2 1
然后会看到下面的日志:
test.txt的文件内容:
vsoc_x86_64:/ # cat /data/test.txt
1
- 再次设置test1或者test2
vsoc_x86_64:/ # setprop pengdl.test1 1
看到如下日志:
文件内容还是1.
- 设置test3
vsoc_x86_64:/ # setprop pengdl.test3 1
看到如下日志:
文件内容变成3
- 再次设置test3
vsoc_x86_64:/ # setprop pengdl.test3 1
看到如下日志:
文件内容还是3
- 再次设置test1或者test2
vsoc_x86_64:/ # setprop pengdl.test2 1
看到如下日志:
文件内容还是3
总结
从上面的测试可以得到如下结论:
- 当设置某个属性时,会检查所有用到该属性的section的触发条件
- 如果多个section的触发条件都满足,按照在文件中出现(或者说是解析时)的先后顺序依次处理
- 每当属性值被设置时,不管值有没有变化,都会检查触发条件
本文来自博客园,作者:摩斯电码,未经同意,禁止转载