日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 初始化语言,Android Init Language(安卓初始化语言)

發布時間:2023/12/20 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 初始化语言,Android Init Language(安卓初始化语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

android源碼學習目錄

了解Android init進程的都知道,啟動 init進程之前會解析init.rc文件,init.rc是Android的配置文件腳本,它由一種被稱為"Android初始化語言"--Android init Language 編寫。

1. android init language(簡稱 AIL)組成

動作--(Actions)

命令--(Commands)

服務--(Services)

選項--(Options)

2. 語法特性

AIL是面向行的代碼,也就是每一行是一條語句,回車就是分隔符,一個語句包含若干個tokens, token之間需要有空格分割符,如果token中有空格需要通過c語言風格的反斜杠('\')來轉義,或者使用雙引號將整個token包裹起來。反斜杠出現在末尾表示下一行任屬于當前語句。

以#開始的行為注釋,

AIL編寫分成多個(Section), 每個部分的開頭需要指定Actions或Services,也就是每個Actions和Services都是一個Section,所有的Commands和Options只能屬于定義的這個Section,

Actions和Services的名稱必須唯一,如果多個一樣的名字,后面聲明的將被忽略為一個錯誤。

3. Actions

Actions是被命名的命令(command)序列,由觸發器來決定這個actions什么時候發生,當一個時間觸發了一個符合的action觸發器,這個action就會被添加到處理隊列尾部(它已經存在在對列除外)。

在處理隊列中沒一個action都按照排序出列,action中的command也按照順序執行,

Actions的結構

on

?

?

?

如上:Actions以關鍵字 on 開頭,然后跟一個觸發器,接下來是若干命令。

觸發器

觸發器是一個字符串,用于匹配特定的事件,

#這個是boot觸發器, 下面三行是command

on boot

ifup lo

hostname localhost

domainname localdomain

4.Services

服務是初始化程序init需要啟動的一些程序,初始化程序可能在這些程序退出后重啟他們

Services的形式

service [ ] *

?

?

5.Options

選項屬于服務,它將影響初始化程序運行服務的時機和方法。可能的選項如下

選項

說明

disabled

此服務不會自動從其類啟動。它必須按名稱顯式啟動。

socket [ [ ] ]

創建一個名為/dev/socket/的unix域套接字,并將其fd傳遞給啟動的進程。有效的值包括dgram和stream。用戶和組默認為0。

user

在執行此服務之前更改為用戶名。當前默認為root

group [ ]*

在執行此服務之前更改為groupname。第一個組之外的其他組名(這是必需的)用于設置進程的其他組(使用set groups())。當前默認為root

capability [ ]+

在執行此服務之前設置linux功能

class

指定服務的類名。命名類中的所有服務必須一起啟動和停止。如果服務不是通過類選項指定的,則將其視為類“默認”。

oneshot

退出時不要重新啟動服務。

6.觸發器

上文中介紹過觸發器,這里列舉init.rc有的幾個

觸發器

功能

boot

這是init啟動時(加載/init.conf之后)發生的第一個觸發器。

=

當屬性設置為特定值時,會觸發此觸發器

device-added-device-removed-

當添加或刪除設備節點時,會觸發這些觸發器。

service-exited-

當指定服務退出時,將觸發這些觸發器。

7.指令--Commands

command是Actions的一部分,用于執行一條命名

command

說明

exec [ ]*

創建并執行程序()。這將阻塞直到程序完成執行。盡量避免執行。與內置命令不同的是,它會冒著讓init“卡住”的風險。

export

將全局環境中的環境變量設置為(執行此命令后啟動的所有進程都將繼承該變量)。

ifup

使網絡接口在線。

import

解析init配置文件,擴展當前配置。導入文件

hostname

Set the host name.

class_start

如果指定類的所有服務尚未運行,請啟動它們。

class_stop

如果指定類的所有服務當前正在運行,請停止這些服務。

domainname

設置域名。

insmod

下載模塊到path

mkdir

Make a directory at .

mount [ ]*

嘗試在目錄中掛載已命名設備。它的格式可以是mtd@name,以便按名稱指定mtd塊設備。

setkey

-當前未定義-

setprop

將系統屬性設置為。

setrlimit

為資源設置一個限制。

start

Start a service running if it is not already running.

symlink

用在處創建link。

write [ ]*

打開path處文件,并使用write(2)向文件寫入一個或多個字符

8.配置屬性

初始化程序(Init)可以根據需要修改一些系統的屬性。

屬性

說明

init.action

等于當前正在執行的操作的名稱,如果沒有,則為“”

init.command

等于正在執行的命令,如果沒有,則為“”

init.svc.

服務的狀態("stopped", "running", or "restarting").

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android 初始化语言,Android Init Language(安卓初始化语言)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。