

Android內核分析
- 期刊名字:現代計算機(專(zhuān)業(yè)版)
- 文件大?。?30kb
- 論文作者:陳璟,陳平華,李文亮
- 作者單位:廣東工業(yè)大學(xué)計算機學(xué)院
- 更新時(shí)間:2020-09-25
- 下載次數:次
實(shí)踐與經(jīng)驗Android內核分析陳環(huán),陳平華,李文亮(廣東工業(yè)大學(xué)計算機學(xué)院,廣州510006)摘要:介紹Andoid移動(dòng)平臺系統架構,通過(guò)對Adroid源代碼的分析,將其與標準Linux內被(2.6.27)源代碼相比較,詳細解析Android內核的功能更斷,分析討論Android內榷與標準Linux內核之間的不同以及Android 在移動(dòng)平臺上的優(yōu)勢,并對Android在各種內核.之間做出一個(gè)定位。介紹Ubuntu環(huán)境下Android內核的獲得與編譯。關(guān)鍵詞: Android;內核;鳊譯引言Dalvik,它包含J2SE所提供的絕大部分功能。每個(gè)隨著(zhù)嵌人式技術(shù)的發(fā)展,智能手機的運行速度和Android應用都運行在自己的進(jìn)程上, Dalvik 虛擬機所集成的功能獲得了極大提升。借著(zhù)這股東風(fēng),Coogle為它分配自有的實(shí)例。Dalvik 使一臺設備能運行多個(gè)主導的開(kāi)放手機聯(lián)盟OHA (Open Handset Aliance)順虛擬機程序但消耗較少的資源。在A(yíng)ndroid中,編譯勢在2008年推出了Android移動(dòng)終端平臺。Android器將Java源文件轉為class文件,內置的dx工具又將是一個(gè)開(kāi)放、自由的移動(dòng)終端平邰,它的發(fā)布,打破了class 文件轉化為Dex文件,Dex文件是在Dalvik虛擬諾基亞Symbian操作系統和微軟Windows Mobile操作機上運行程序的標準格式。系統在智能手機平臺上的壟斷地位,同時(shí),其平臺化各種程序庫肉:包含-套C/C+庫,Android的各的優(yōu)勢也大大豐富各種手持式設備軟件的功能。式組件都可使用。這些功能通過(guò)組件間接提供給開(kāi)發(fā)者。這些庫包括圖形框架、媒體功能庫,Webkit、及1 Android 系統架構SQLite數據庫,等等。Android是Google 開(kāi)發(fā)的基于Linux 平臺的開(kāi)源(3)應用程序框架:提供應用程序開(kāi)發(fā)所需要的手機操作系統,它是一個(gè)移動(dòng)終端平臺,包括了移動(dòng)電各種API。在開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員通過(guò)充分使用應話(huà)工作所需的全部軟件.由操作系統.中間件.U(User用框架提供的API,對各種組件、服務(wù)進(jìn)行重用,從而Interface)及應用程序組成。開(kāi)發(fā)人員使用Java語(yǔ)言,開(kāi)發(fā)出精簡(jiǎn)高效的應用程序。主要包括以下幾種核開(kāi)發(fā)運行于Dalvik虛擬機上的應用程序,其運行效率心組件:比一般嵌入式Linux操作系統上的J2ME程序高。UI組件:包括List,Layout .Textbox .Uton .Check-Android 系統架構自底向上由以下4個(gè)層次組box等,用以構建應用程序與用戶(hù)的交互界面。成閃:基于Linux的內核模塊、運行時(shí)庫與其他庫、應內容提供器(Content Provider):實(shí)現標準的方法用程序框架、應用程序。接口,讓其他應用保存或讀取其提供的數據,例如外(1)基于Linux 的內核模塊部程序通過(guò)Content Provider訪(fǎng)問(wèn)聯(lián)系人數據。Android內核基于Linux 2.6,提供安全、內存管資源管理器(ResourceManager):管理對非代碼理進(jìn)程管理、網(wǎng)絡(luò )組、驅動(dòng)模型等核心服務(wù)。同所有的訪(fǎng)問(wèn),例如本地圖像、布局文件本地化字符串等。Linux內核一樣,Android內核是介于硬件層和軟件組消息管理器Noifcaion Manager):讓程序將警示之間的-一個(gè)抽象層次。信息顯示在狀態(tài)欄上,例如平臺接收到矩信息.電子(2)運行時(shí)庫與各種程序庫郵件、未接電話(huà)時(shí)在狀態(tài)欄上的提示。運行時(shí)庫實(shí)質(zhì)是一款Java重新設計的虛擬機Activity 管理器(Activity Manager): 用來(lái)管理應用牧稿日期:2009-10-09修稿日期 2009-11-01中國煤化工作者簡(jiǎn)介:陳綠(1984-),男項士研究生研究方向為嵌入式系統YHCNMHGMODERN COMPUTER 209.1112實(shí)踐與經(jīng)驗程序生命周期并提供常用的導航回退功能口。以發(fā)現,Android內核與標準Linux內核在文件系統、(4)應用程序:Android預裝了一系列由Java語(yǔ)言進(jìn)程間通信機制、內存管理等方面存在不同。編寫(xiě)成的核心應用程序,包括短信服務(wù).電話(huà)、Email①文件系統客戶(hù)端、瀏覽器.Google地圖等。不同于桌面系統與服務(wù)器,移動(dòng)設備大多采用的不是硬盤(pán)而是采用Flash作為存儲介質(zhì),因此,Android2 Android 內核分析內核中增加了標準Linux內核中沒(méi)有采納的YAFFS22.1內核在操作系統中的地位文件系統。YAFFS2 (Yet Another Flash File Sy stem,Android基于Linux 操作系統,由硬件、系統內2nd edition)專(zhuān)用于Flash的文件系統,對NAND-核、系統服務(wù)和應用程序等四大部分組成。其中,內Flash芯片有著(zhù)良好的支持。YAFFS2 是日志結構的文核(Kemel)是最核心的部分,其主要作用在于與計算件系統,提供了損耗平衡和掉電保護,可以有效地避免機硬件進(jìn)行交互,實(shí)現對硬件的編程控制和接口操意外斷電對文件系統-致性和完整性的影響。YAFFS2作,調度訪(fǎng)問(wèn)硬件資源,同時(shí)向應用程序提供- -個(gè)高按層次結構設計,分為文件管理接口、內部實(shí)現層和級的執行環(huán)境和對硬件的虐擬接口。主要功能包括:NAND,簡(jiǎn)化了其本身與系統的接口設計,能更方便地中斷服務(wù)程序、進(jìn)程調度程序、進(jìn)程地址空間的內存集成到系統當中。經(jīng)過(guò)測試證明, YAFFS2性能比支持管理、進(jìn)程間通信9。NOR型閃存的JFPS2文件系統優(yōu)秀。內核與普通應用程序不同,其擁有所有硬件設備②進(jìn)程間通信機制的訪(fǎng)問(wèn)權限以及啟動(dòng)時(shí)即劃分的受保護的內存空間網(wǎng)。Android增加了一種進(jìn)程間的通信機制IPCBin-2.2 Android 內核der, 在內核源代碼中,驅動(dòng)程序文件為coredroid和標準的Linux內核一樣,Android內核主要實(shí)includelinuxbinderth 和coredroidrvrs/androidbinder.現內存管理、進(jìn)程調度、進(jìn)程間通信等功能。Co Binder通過(guò)守護進(jìn)程Srvice Manager 管理系統中的Android內核是在標準L.inux內核的基礎上修改服務(wù),負責進(jìn)程間的數據交換。各進(jìn)程通過(guò)Binder訪(fǎng)而成。為了適應嵌人式硬件環(huán)境和移動(dòng)應用程序的開(kāi)向同一塊共享內存,以達到數據通信的機制。從應用層發(fā),Android對標準Linux內核進(jìn)行了- -定的修改。為的角度看,進(jìn)程通過(guò)訪(fǎng)問(wèn)數據守護進(jìn)程獲取用于數據了對比分析Android內核,在Ubuntu操作系統上搭建交換的程序框架接口,調用并通過(guò)接口共享數據,而其.了Android內核的編譯開(kāi)發(fā)平臺,通過(guò)repo,下載最他進(jìn)程嬰訪(fǎng)問(wèn)數據,也只需與程序框架接口進(jìn)行交互,新的Android內核代碼版本cupeake(其中Linux內核方便了程序員開(kāi)發(fā)需要交互數據的應用程序。版本為2.6.27)。從獲得的內核源碼樹(shù)的根目錄結構③內存管理看,Android內核源碼與標準Linux內核并無(wú)不同。在內存管理模塊,Android內核采用了-種不用Android內核源碼樹(shù)根目錄結構如表1所示。于標準Linux內核的低內存管理策略。在標準Linux內核當中,使用一種叫做00M(Out of Memory)的低內表1內核源碼樹(shù)目柬結構存管理策略;當內存不足時(shí).系統檢查所有的進(jìn)程,并.對進(jìn)程進(jìn)行限制評分,獲得最高分的進(jìn)程將被關(guān)閉arch特定體系結構的源碼(內核進(jìn)程除外)。Android 系統采用的則是- - 種叫作CryptoCrypto APIdocuaootation內核源碼文檔LMK(Low Memory Killer)的機制,這種機制將進(jìn)程按設備驅動(dòng)程序s和各種文件系統照重要性進(jìn)行分級、分組。內存不足時(shí),將處于最低級ioelode內核頭文件別組的進(jìn)程關(guān)閉。例如,在移動(dòng)設備當中, u界面處init內核引導和初始化于最高級別,所以該進(jìn)程永遠不會(huì )被中止,這樣.在終代進(jìn)程間通信代碼端用戶(hù)看來(lái),系統是穩定運行的。在A(yíng)ndorid內核源碼中,LMK的位置是coredroid/drivers/misclowme-morykiller.c。eripts編譯內核所用的腳本與此同時(shí),Android新增加了一種內存共享的處理。ocurity安全模塊1ound聲音模塊方式Ashmem(Anonymous Shared Memory,匿名共享內user早期用戶(hù)空間代碼存)中國煤化工多自由共享具名的內存塊,當中不被支持。經(jīng)過(guò)與標準Linux內核源代碼進(jìn)行詳細對比,可fYHCNMH Gm,九MODERN COMPUTER 20911113實(shí)踐與經(jīng)驗fd = ashmem. create. region("my. shm_ region", size);版本cupcake 1.5。iffd<0)在Ubuntu上搭建Android內核編譯環(huán)境,具體return -1;步驟如下:data = mmap(NULL, size, PROT READ | PROT_ WRITE,①準備系統環(huán)境,需要的軟件包列表flex, bison,MAP_ _SHARED, fd, 0);gper(, libedl- -dev, libesd0-dev, libwxgtk2.6- dev(option-f(data = MAP_ FAILED)al), build- esential, zip, curl;goto out; .②安裝JDK的1.5 版本;但出于安全原因,其他進(jìn)程無(wú)法訪(fǎng)問(wèn)此名稱(chēng)③安裝repo;(my_ shm, region)區域。文件描述符指向該共享內存④在主文件目錄建立一個(gè)bin文件夾并加入到區域,實(shí)際上是通過(guò)IPC綁定接口。在A(yíng)ndor'd內核源碼中,Ashmem的位置是環(huán)境變量當中;⑤下載repo腳本,并將它的屬性改為可執行eurlcoredroid/mm/ashmem.c。htp://android.git.kemel.org/repo > ~bin/repo chmod④電源管理a+x ~/bin/repo;由于A(yíng)ndroid主要用于移動(dòng)設備,電源管理就顯⑥創(chuàng )建-一個(gè)保存源碼的目錄得尤為重要,因此,在A(yíng)ndroid內核當中,增加了一種mkdir coredroid新的電源管理策略。目前,Android采用的是一種較為cd coredroid簡(jiǎn)單的電源管理策略,通過(guò)開(kāi)關(guān)屏幕開(kāi)關(guān)屏幕背光、⑦獲取Android內核代碼:開(kāi)關(guān)鍵盤(pán)背光、開(kāi)關(guān)按鈕背光和調整屏幕亮度來(lái)實(shí)現git clone git//android.git.kemel.org/keme/common.git電源管理,并沒(méi)有實(shí)現休眠和待機功能。有三種途徑經(jīng)過(guò)以上步驟,最新版本Android內核就被下載判斷調整電源管理策略:RPC調用、電池狀態(tài)改變和到文件夾coredroid當中。電源設置。它通過(guò)廣播Intent或直接調用API的方式cd cordroid來(lái)與其他模塊進(jìn)行聯(lián)系。電源管理策略同時(shí)還有自動(dòng)make xconfig(配置可按doucument文件夾下的android.關(guān)機機制,當電力低于最低可接受程度時(shí),系統將自.bxt說(shuō)明配置)動(dòng)關(guān)機。Android的電源管理模塊還會(huì )根據用戶(hù)行為,make自動(dòng)調整屏幕亮度,其響應機制如圖1所示。編譯完成后生成zlmage文件,可用模擬器測試⑤驅動(dòng)及其他運行相對于標準內核,Android內核還添加了字符輸cd mydroid/out/cupcake/outargetproductgeneric出設備、圖像顯示設備、鍵盤(pán)輸人設備、RTC設備USBemulator -image system.img. -data userdata.img -ramdiskDevice設備等相關(guān)設備驅動(dòng),增加了日志(Logger)系randisk.img -kemel ~/coredroid/common /arch/arm/bootzIma統,使應用程序可以訪(fǎng)問(wèn)日志消息。g用戶(hù)操作4結語(yǔ)經(jīng)過(guò)分析,Android內核由標準Linux內核修改屏幕亮而來(lái),因此繼承了Linux 內核的各種優(yōu)點(diǎn),保留了標按鈕背光延遲準Linux內核的主體架構。同時(shí),Android按照移動(dòng)設備的需求,在文件系統、內存管理、進(jìn)程間通信機制、電源管理等方面進(jìn)行了修改,添加相關(guān)的驅動(dòng)程序和.(屏幕關(guān)閉)暗延遲屏幕暗.一些必要的新功能,但是與大多數精簡(jiǎn)的嵌人式Lin-u收操作系統(例如uCLinux)相比,Android很大程度上保留了標準Linux的基本架構,因此,Android系統圖1屏幕背光響應機制應用范圍更加廣泛,拓展性更強。3 Android內核獲取與編譯參考文獻下面以Ubuntu 9.04操作系統為例,說(shuō)明在中國煤化工l應用[].程序員,2008,Ubuntu9.04操作系統如何搭建Android內核編譯開(kāi)發(fā)平臺,如何通過(guò)repo下載最新的Android 內核代碼HCNMHGMODERN COMPUTER 200911114實(shí)踐與經(jīng)驗[2)Code Home.Android -An Open Handset Alliance Projeet.[6]Daniel P. Bovet & Marco Cesati.深人理解Linux內核(影[EB/OL] htp:/oe.google.com/android/what -is -andrnid.印版)[M].東南大學(xué)出版杜,2006html,2008-01-01[7]吳軍,周轉運.嵌入式Linux系統應用基礎與開(kāi)發(fā)范例[3]公磊,周聰.基于A(yíng)ndroid的移動(dòng)終端應用程序開(kāi)發(fā)與研[M].人民郵電出版社,2007究[J].計算機與現代化, 2008: 86~89[8]Android Platfom Google Groups. [EB/0LJ. htp://cs736 -[4]趙炯.Linux內核完全注釋[M].機械工業(yè)出版杜.2004android.pbworks.com/ASHMEM[5]陳莉君.Linux內核的分析及應肌西安郵電學(xué)院學(xué)報.201.,(3):17-20Analysis. of Android KernelCHEN Jing,CHEN Ping- -hua,LI Wen- -liang(Faculty of Computer,Guangdong University of Technology , Guangzhou 510006)Abstract: Describes the architecture of Android platform, by analyzing the codes of Android kermeland comparing to the standardize Linux kemel(2.6.27), analyzes and discusses the differencebetween Android kemnel and standard kernel and the advantage of Android. Points out theposition of Android in the Linux kernel system, recompiles a customize kemel on the Ubun-tu system.Keywords: Android; Kemel; Compilation(上接第94頁(yè))Research on Business Process ManagementBased on jBPMSHI Yuan- xia,XU Qing- -lin(School of Information Engineering, Guangdong University of Technology, Guangzhou 510000)Abstract: Business process management is the latet development of the process automation and 8y8-tem design, which can help enterprises optimize their business processes and improve ef-ciency. The core of business process managemen is business process management engine.Taking the case of an open source engine- -JBoss jBPM, studies the implementation ofbusiness process management.中國煤化工Keywords: Busines Proces Mangenent (BPM); jBPM; jPDI"TYHCNMHGMODERN COMPUTER 200911115
-
C4烯烴制丙烯催化劑 2020-09-25
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-09-25
-
生物質(zhì)能的應用工程 2020-09-25
-
我國甲醇工業(yè)現狀 2020-09-25
-
JB/T 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規程 2020-09-25
-
石油化工設備腐蝕與防護參考書(shū)十本免費下載,絕版珍藏 2020-09-25
-
四噴嘴水煤漿氣化爐工業(yè)應用情況簡(jiǎn)介 2020-09-25
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-09-25
-
甲醇制芳烴研究進(jìn)展 2020-09-25
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-09-25