項目中很多情況下,會跟第三方合作,很多情況下需要將第三方提供的服務加入系統啓動中,及在init.rc中添加服務。
系統在啓動的時候,會對init.rc這個文件進行解析,並且按照一定的級別啓動服務。這些服務是在system/core/init.c裏面啓動的。
現在項目中加入了一個藍牙的服務,加入後導致WIFI無法使用。WIFI和藍牙屬於合一芯片,如果不加藍牙服務,沒有問題,
分析機器LOG發現如下問題:
藍牙服務5S的時候就啓動了,但是WIFI服務在15s的時候提示上電失敗。
好像屬於服務啓動時序問題,所以想法就是讓藍牙服務開機後啓動,讓系統的WIFI服務先啓動。
在init.rc中調整時序:
service test /system/bin/test
class main
user root
group root
disabled
on property:sys.boot_completed=1
start test