日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式云IOT技術(shù)圈
[導(dǎo)讀][概述] 用于指導(dǎo)init進(jìn)程如何啟動(dòng)Android系統(tǒng),由若干個(gè)段(Sections)組成; init進(jìn)程解析/init.rc腳本 [功能] [1] 控制init進(jìn)程何時(shí)如何執(zhí)行某個(gè)動(dòng)作 [2] 控制init進(jìn)程何時(shí)如何啟動(dòng)某個(gè)服務(wù) [語(yǔ)法] init rc腳本包含導(dǎo)入(import)、動(dòng)作(Actions)、命令(Command

[概述]

用于指導(dǎo)init進(jìn)程如何啟動(dòng)Android系統(tǒng),由若干個(gè)段(Sections)組成;

init進(jìn)程解析/init.rc腳本


[功能]

[1] 控制init進(jìn)程何時(shí)如何執(zhí)行某個(gè)動(dòng)作

[2] 控制init進(jìn)程何時(shí)如何啟動(dòng)某個(gè)服務(wù)


[語(yǔ)法]

init rc腳本包含導(dǎo)入(import)、動(dòng)作(Actions)、命令(Commands)、服務(wù)(Service)和選項(xiàng)(Options)五種語(yǔ)句,語(yǔ)法如下:[1] 基本語(yǔ)法 1. 每個(gè)語(yǔ)句占一行,由若干個(gè)空格分隔的標(biāo)記組成,標(biāo)記之間用空格或TAB分割,若標(biāo)記中存在空格需要用'\'轉(zhuǎn)義(或使用"單詞 單詞"形式) 例:init.rc文件 export xxy /system/frame\ work export xxy /system/"frame work"  2. 語(yǔ)句太長(zhǎng),一行寫(xiě)不下,可以用'\'將多行連接成一行, '\'字符后不能有任何字符,包括空格 :  service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 \ -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin  3. 以'#'打頭的行為注釋行 : # setup the global environment  4. 一個(gè)導(dǎo)入(import)、動(dòng)作(Actions)或服務(wù)(Service)語(yǔ)句是一個(gè)段(Sections) 命令(Commands)屬于上面離它最近的動(dòng)作(Actions),單獨(dú)的命令將被忽略 選項(xiàng)(Options)屬于上面離它最近的服務(wù)(Service),單獨(dú)的選項(xiàng)將被忽略  [2] 語(yǔ)句 導(dǎo)入(import) ------------ 包含其他init.rc腳本文件, 組成: import <filename> 1. filename rc腳本文件  :  import init.sun5i.usb.rc  動(dòng)作(Actions) ------------- 動(dòng)作是給一個(gè)命令序列取一個(gè)名字(name)或提供一個(gè)促發(fā)表達(dá)式(trigger), 組成: on <name or trigger> <command> < ... > <command>  1. on 動(dòng)作的關(guān)鍵字  2. 名字(name)  也稱事件(event),在init rc腳本中必須唯一,如果存在相同名字(name)的動(dòng)作,只有第一個(gè)動(dòng)作有效, init進(jìn)程或其他動(dòng)作(Actions)的trigger命令可以通過(guò)名字促發(fā)動(dòng)作(Actions),init進(jìn)程可以促發(fā)如下動(dòng)作: (1) early-init init進(jìn)程啟動(dòng)后,掛載虛擬文件系統(tǒng)及/dev目錄之后促發(fā),通常用于完成冷啟動(dòng)設(shè)備文件建立  (2) init 完成默認(rèn)屬性(/default.prop)、logo顯示和設(shè)置硬件只讀屬性,冷啟動(dòng)設(shè)備文件建立完成之后,文件系統(tǒng)掛載之前,通常用于完成文件系統(tǒng)目錄結(jié)構(gòu)的建立  4.4版本以下支持: (3) early-fs、fs、post-fs和post-fs-data init動(dòng)作執(zhí)行完成之后促發(fā),用于掛載各種類型的文件系統(tǒng)  (4) early-boot和boot 完成post-fs-data動(dòng)作、系統(tǒng)屬性(/system/build.prop和/system/default.prop文件)加載和用戶屬性(/data/local.prop文件和data/property目錄下文件中)加載、信號(hào)初始化之后, 用于完成設(shè)備使能和shell環(huán)境初始化  5.0版本支持: (3) late-init 相當(dāng)于early-fs、fs、post-fs、post-fs-data、early-boot和boot動(dòng)作的合并  促發(fā)表達(dá)式(trigger)  (5) property:屬性名=屬性值 屬性被設(shè)置成"屬性值"時(shí)促發(fā)  : init.rc文件的306行 on property:prop.test=test_value mkdir /data/temp 0775 root system   3. command 命令,屬于上面離它最近的動(dòng)作(Actions),單獨(dú)的命令將被忽略  4. 執(zhí)行 當(dāng)動(dòng)作被促發(fā)時(shí),動(dòng)作將會(huì)被添加到動(dòng)作執(zhí)行隊(duì)列,當(dāng)動(dòng)作中的所有命令依次執(zhí)行完畢時(shí),動(dòng)作從執(zhí)行隊(duì)列中刪除; init程序還添加了一些內(nèi)部動(dòng)作,詳細(xì)見(jiàn)第二天《課堂筆記》  命令(Commands) ------------- 1. exec <path> [ argument ... ] fork + exec 執(zhí)行指定程序,init進(jìn)程會(huì)阻塞等待程序執(zhí)行完成 path 帶路徑的程序名 argument 程序參數(shù)  2. export <name> <value> 設(shè)置init進(jìn)程環(huán)境變量,完成后會(huì)被所有init啟動(dòng)的新進(jìn)程繼承 name 環(huán)境變量名 value 環(huán)境變量的值 :  export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin  3. ifup <interface> 使能網(wǎng)卡 interface 網(wǎng)卡設(shè)備名 :  ifup lo  4. hostname <name> 設(shè)置主機(jī)名 name 主機(jī)名 :  hostname localhost  5. chmod <octal-mode> <path> 修改文件或目錄的模式(通常指權(quán)限) octal-mode 8進(jìn)制的數(shù)表示的權(quán)限 path 帶路徑的文件或目錄 :  chmod 0664 /sys/module/lowmemorykiller/parameters/adj  6. chown <owner> <group> <path> 修改文件或目錄的所有者和組 owner 所有者 group  path 帶路徑的文件或目錄 :  chown root system /sys/module/lowmemorykiller/parameters/minfree  7. class_start <serviceclass> 啟動(dòng)某一類的服務(wù) serviceclass 服務(wù)類 :  class_start core  8. class_stop <serviceclass> 停止某一類的服務(wù) serviceclass 服務(wù)類  9.domainname <name> 設(shè)置域名(一組計(jì)算機(jī)的集合)  10.insmod <path> 加載內(nèi)核驅(qū)動(dòng)模塊 path 帶路徑的內(nèi)核驅(qū)動(dòng)模塊 : insmod /system/vendor/modules/gslX680.ko  11.mkdir <path> [mode owner group] 新建目錄 path 帶路徑的命令名 mode 文件模式(通常指權(quán)限) owner 文件所有者 group 文件組 mode owner group為選擇指定,不指定為0755 root root  :  mkdir /mnt 0775 root system   12.mount <type> <device> <dir> [ mountoption ... ] 掛載文件系統(tǒng) type 文件系統(tǒng)類型 device 文件系統(tǒng)所在設(shè)備 dir 掛載目錄 mountoption 參數(shù)和Linux的mount命令類似 :  mount cgroup none /acct cpuacct  13.setprop <name> <value> 設(shè)置屬性值 name 屬性名 value 屬性值 :  setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208  14.setrlimit <resource> <cur> <max> 設(shè)置系統(tǒng)資源限制 resource 資源編號(hào) cur 資源當(dāng)前(軟件)限制值 max 資源最大(硬件)限制值 :  setrlimit 13 40 40  15.start <service> 啟動(dòng)服務(wù) service 服務(wù)名 :  start ueventd  16.stop <service> 停止服務(wù) service 服務(wù)名 :  stop adbd  17.symlink <target> <path> 建立軟鏈接文件 target 軟鏈接文件 path 帶路徑的源文件 :  symlink /system/etc /etc  18.sysclktz <mins_west_of_gmt> 設(shè)置系統(tǒng)基準(zhǔn)時(shí)間 mins_west_of_gmt 設(shè)置格林尼治時(shí)間差幾分鐘,一般為0 :  sysclktz 0  19.trigger <event> 促發(fā)一個(gè)動(dòng)作 event 動(dòng)作 :  trigger post-fs-data  20.write <path> <string> [ string ... ] 寫(xiě)字符串到文件中 path 帶路徑的文件名 string 字符串,可以有多個(gè) :  write /proc/sys/kernel/panic_on_oops 1  21.chdir <path> 修改init進(jìn)程的當(dāng)前目錄  22.rm <path> 刪除文件 path 帶路徑的文件名  23.rmdir <path> 刪除目錄 path 帶路徑的目錄名  24.wait <path> 等待文件被創(chuàng)建 path 帶路徑的文件名   25.loglevel <level> 設(shè)置內(nèi)核的log級(jí)別 level 內(nèi)核級(jí)別(0-7) : init.rc文件中的7行 loglevel 6  以上是常用的命令,不同版本可能命令有區(qū)別,具體可以查看Android源代碼的以下文件確定: system/core/init/builtins.c 所有命令的執(zhí)行函數(shù) system/core/init/keywords.h 所有動(dòng)作、服務(wù)、命令和選項(xiàng)列表  服務(wù)(Service) ------------- 服務(wù)(Service)是由init進(jìn)程啟動(dòng)并且保證其一直運(yùn)行的程序,組成如下: service <name> <pathname> [argument ...] <option> < ... > <option>  1. name 服務(wù)的名字,在init rc腳本中必須唯一  2. pathname [argument ...] 帶路徑的服務(wù)程序名及參數(shù)  3. option 說(shuō)明服務(wù)的選項(xiàng)  選項(xiàng)(Options) ------------- 用于告訴init進(jìn)程什么時(shí)候如何啟動(dòng)服務(wù),存在如下選項(xiàng): 1. critical 4分鐘之內(nèi)重啟了4次該服務(wù),重啟Android系統(tǒng)進(jìn)入recovery模式  2. disabled 服務(wù)不能使用start_class命令啟動(dòng),必須通過(guò)服務(wù)名稱啟動(dòng)  3. setenv <name> <value> 設(shè)置環(huán)境變量,并且將其做為服務(wù)進(jìn)程的環(huán)境變量 name 環(huán)境變量名 value 設(shè)置的值  4. socket <name> <type> <perm> [user [group]] 創(chuàng)建unix域socket(即創(chuàng)建文件/dev/socket/<name>),并且打開(kāi),將文件描述符傳給服務(wù) 文件描述符存在ANDROID_SOCKET_<name>的環(huán)境變量中 name socket名 type socket類型,只能dgram、stream和seqpacket dgram 無(wú)序報(bào)文傳送,不保證可靠 seqpacket 順序報(bào)文傳送,不保證可靠 stream 流傳送,保證可靠 perm 指定權(quán)限(八進(jìn)制的數(shù)表示) user 指定所屬用戶, 默認(rèn)root用戶 group 指定所屬主,默認(rèn)root組  5. user <username> 指定服務(wù)進(jìn)程所屬用戶,默認(rèn)root username 用戶名  6. group <groupname> [groupname] [...] 指定服務(wù)進(jìn)程組, 默認(rèn)root groupname 組名  7. oneshot 服務(wù)進(jìn)程退出時(shí),不重啟  8. class <name> 指定服務(wù)所屬類,這樣可以使用class_start命令啟動(dòng)同一類的多個(gè)服務(wù) 如果沒(méi)有指定,服務(wù)屬于默認(rèn)(default)類 name 類名  9. onrestart <command> 服務(wù)重啟時(shí),運(yùn)行指定程序 command 命令及其參數(shù)  例:在init.rc和init.sun5i.rc中尋找  調(diào)試注意:默認(rèn)Android系統(tǒng)會(huì)將進(jìn)程的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤重定位到/dev/null(沒(méi)有設(shè)置console)或/dev/console(有設(shè)置console) 如果想看到進(jìn)程輸出,請(qǐng)使用logwrapper程序啟動(dòng)進(jìn)程,如: service akmd /system/bin/logwrapper /sbin/akmd  Properties ---------- init進(jìn)程的屬性值,使別的進(jìn)程可以看到init進(jìn)程當(dāng)前的運(yùn)行狀態(tài): 1. init.action init進(jìn)程當(dāng)前正在執(zhí)行的動(dòng)作的名稱  2. init.command init進(jìn)程當(dāng)前正在執(zhí)行的命令的名稱  3. init.svc.<name> 指定服務(wù)的狀態(tài)(stopped、running和restarting),name為服務(wù)名  :  getprop init.svc.zygote 返回running


韋東山嵌入式Android課程推薦

01









nitial;box-sizing: border-box;">
支持我請(qǐng)給我在看!
rc="https://img.21ic.com/weixin/2020/9/6vAFvy.gif">









免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉