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




