initandroid
① 如何去寫 Android init.rc (Android init language)
C風格的反斜杠轉義符可以用來插入空白到語言符號。雙引號也可以用來防止文本被空格分成多個語言符號。當反斜杠在行末時,作為折行符。 * 以#開始(前面允許有空格)的行為注釋行。 * Actions和Services隱含聲明一個新的段落。所有該段落下Commands或Options的聲明屬於該段落。第一段落前的Commands或Options被忽略。 * Actions和Services擁有獨一無二的命名。在它們之後聲明相同命名的類將被當作錯誤並忽略。init.action 當前正在執行的action,如果沒有則為"" init.command 被執行的命令,如果沒有則為"" init.svc. 命名為的服務的狀態("stopped", "running", "restarting") init.rc 示例:----------------- # not complete -- just providing some examples of usage#on boot export PATH /sbin:/system/sbin:/system/bin export LD_LIBRARY_PATH /system/lib mkdir /dev mkdir /proc mkdir /sys mount tmpfs tmpfs /dev mkdir /dev/pts mkdir /dev/socket mount devpts devpts /dev/pts mount proc proc /proc mount sysfs sysfs /sys write /proc/cpu/alignment 4 ifup lo hostname localhost domainname localhost mount yaffs2 mtd@system /system mount yaffs2 mtd@userdata /data import /system/etc/init.conf class_start default service adbd /sbin/adbd user adb group adb service usbd /system/bin/usbd -r user usbd group usbd socket usbd 666 service zygote /system/bin/app_process -Xzygote /system/bin --zygote socket zygote 666 service runtime /system/bin/runtime user system group system on device-added-/dev/compass start akmd on device-removed-/dev/compass stop akmd service akmd /sbin/akmd disabled user akmd group akmd 調試---------------默認情況下,init執行的程序輸出的信息和錯誤到/dev/null.為了debug,你可以通過Android程序logwrapper執行你的程序。
.d 是 directory 的縮寫,表示這是一個目錄(文件夾)。
這個在配置文件中比較常見。
一般如果有一系列格式相同的,目的一致的配置文件,就把它們放在一個以.d結尾的文件夾中。
例如,
init.d 中存放的就是一系列系統服務的管理(啟動與停止)腳本。
又如,
在我的 /etc/ 文件夾下有一個 modprob.conf 文件,用來配置系統載入的內核模塊。
同時又有一個 modprob.d 文件夾,裡面的文件與 modprob.conf 的格式和載入方式都相同。
這樣做的好處是,當新裝的軟體需要配置內核模塊時,只需簡單地向 modprob.d 文件夾中
添加一個文件就可以了,避免了修改 modprob.conf 文件的麻煩。而且各個配置的作用和來源
一目瞭然,維護起來也更加方便,當系統升級有新的 modprob.conf 時,只需簡單的替換原來的,因為用戶和其他程序添加的配置都以單獨文件的形式存放在 modprob.d 文件夾中,不會受到影響。
③ 如何修改android根目錄init.rc文件
根據自己的CPU,修改init.rc文件的相應位置,然後:
[html] view plain
print?
make bootimage
重新生成boot.img文件,重新燒錄即可。
三、實例
以Freescale的CPU為例,只需修改init.rc文件,init.freescale.rc文件make後自動生成,位於out/target/proct/sabresd_6dq/root/目錄下。
下面我們修改GPS對應的串口號,針對編譯後的源碼:
1、修改out/target/proct/board_name/root/init.freescale.rc
④ Android中什麼時候需要使用init()方法
init : 單詞翻譯過來是 初始化的意思, 並不是一個官方提供的api函數,一般來說,程序員習慣自己寫一個 init( ) 函數 來作為 自己寫的 類/activity/surfaceview 的 首次執行初始化的操作,比如載入資源,比如給一些變數初始賦值,
並不是都需要放在init中, 控制項 只要求在使用其之前 實例化就好,你要用了再來實例化取出也不晚, 只是 習慣上 把 要用的控制項 都在 oncreate中 統一實例化,方便,易看, 但是把代碼放在oncreate中很難看的感覺, 所以再創一個函數 init……之類的,把初始化代碼都放裡面,方便整改
⑤ 關於android的init.rc文件,請教各位大牛
直接把chmod寫到init.rc就可以了