Android學習 —— 測試init.rc中的條件觸發(fā)的處理順序
測試程序
在/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的觸發(fā)條件
- 如果多個section的觸發(fā)條件都滿足,按照在文件中出現(xiàn)(或者說是解析時)的先后順序依次處理
- 每當屬性值被設置時,不管值有沒有變化,都會檢查觸發(fā)條件
本文來自博客園,作者:dolinux,未經(jīng)同意,禁止轉載

浙公網(wǎng)安備 33010602011771號