資源描述:
《Android的系統(tǒng)架構(gòu)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Android的系統(tǒng)架構(gòu) Android的系統(tǒng)架構(gòu)和其它操作系統(tǒng)一樣,采用了分層的架構(gòu)。android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和linux核心層?! ndroid是以Linux為核心的手機(jī)操作平臺(tái),作為一款開(kāi)放式的操作系統(tǒng),隨著Android的快速發(fā)展,如今已允許開(kāi)發(fā)者使用多種編程語(yǔ)言來(lái)開(kāi)發(fā)Android應(yīng)用程序,而不再是以前只能使用Java開(kāi)發(fā)Android應(yīng)用程序的單一局面,因而受到眾多開(kāi)發(fā)者的歡迎,成為真正意義上的開(kāi)放式操作系統(tǒng)?! ≡贏ndroid中,開(kāi)發(fā)者可以使用Java作為編程語(yǔ)言來(lái)開(kāi)發(fā)
2、應(yīng)用程序,也可以通過(guò)NDK使用C/C++作為編程語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序,也可使用SL4A來(lái)使用其他各種腳本語(yǔ)言進(jìn)行編程(如:python、lua、tcl、php等等),還有其他諸如:Qt(qtforandroid)、Mono(monoforandroid)等一些著名編程框架也開(kāi)始支持Android編程,甚至通過(guò)MonoDroid,開(kāi)發(fā)者還可以使用C#作為編程語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序。另外,谷歌還在2009年特別發(fā)布了針對(duì)初學(xué)者的Android?Simple語(yǔ)言,該語(yǔ)言類似Basic語(yǔ)言。而在網(wǎng)頁(yè)編程語(yǔ)言方面,JavaScript,ajax,HTML5,jqu
3、ery、sencha、dojo、mobl、PhoneGap等等都已經(jīng)支持Android開(kāi)發(fā)?! 《贏ndroid系統(tǒng)底層方面,Android使用C/C++作為開(kāi)發(fā)語(yǔ)言。應(yīng)用程序(部分) 早期的Android應(yīng)用程序開(kāi)發(fā),通常通過(guò)AndroidSDK(Android軟件開(kāi)發(fā)包)下使用Java作為編程語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序,但通過(guò)不同的軟件開(kāi)發(fā)包,則使用的編程語(yǔ)言也不同?! ±玳_(kāi)發(fā)者可以通過(guò)AndroidNDK(AndroidNative開(kāi)發(fā)包)使用C語(yǔ)言或者C++語(yǔ)言來(lái)作為編程語(yǔ)言開(kāi)發(fā)應(yīng)用程序。同時(shí)谷歌還推出了適合初學(xué)者編程使用的Simple語(yǔ)言,
4、該語(yǔ)言類似微軟公司的VisualBasic語(yǔ)言。此外,谷歌公司還推出了GoogleAppInventor開(kāi)發(fā)工具,該開(kāi)發(fā)工具可以快速地構(gòu)建應(yīng)用程序,方便新手開(kāi)發(fā)者?! ava開(kāi)發(fā)方面 Android支持使用Java作為編程語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序,而Android的Java開(kāi)發(fā)方面從接口到功能,都有層出不窮的變化??紤]到Java虛擬機(jī)的效率和資源占用,谷歌重新設(shè)計(jì)了Android的Java,以便能提高效率和減少資源占用,因而與J2ME等不同。??Android結(jié)構(gòu)其中Activity等同于J2ME的MIDlet,一個(gè)Activity類(Class)負(fù)
5、責(zé)創(chuàng)建視窗(Windows),一個(gè)活動(dòng)中的Activity就是在foreground(前景)模式,背景運(yùn)行的程序叫做Service。兩者之間通過(guò)由ServiceConnection和AIDL連結(jié),達(dá)到復(fù)數(shù)程序同時(shí)運(yùn)行效果。如果運(yùn)行中的Activity全部畫面被其他Activity取代時(shí),該Activity便被停止(Stopped),甚至被系統(tǒng)清除(Kill)。 View等同于J2ME的Displayable,程序人員可以通過(guò)View類與“XMLlayout”檔將UI放置在視窗上,Android1.5的版本可以利用View打造出所謂的Widgets
6、,其實(shí)Widget只是View的一種,所以可以使用xml來(lái)設(shè)計(jì)layout,HTC的AndroidHero手機(jī)即含有大量的widget。至于ViewGroup是各種layout的基礎(chǔ)抽象類(abstractclass),ViewGroup之內(nèi)還可以有ViewGroup。View的構(gòu)造函數(shù)不需要再Activity中調(diào)用,但是Displayable的是必須的,在Activity中,要通過(guò)findViewById()來(lái)從XML中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View與事件(event)息息相關(guān),兩者之間通過(guò)L
7、istener結(jié)合在一起,每一個(gè)View都可以注冊(cè)一個(gè)eventlistener,例如:當(dāng)View要處理用戶觸碰(touch)的事件時(shí),就要向Android框架注冊(cè)View.OnClickListener。另外還有BitMap等同于J2ME的Image?! /C++開(kāi)發(fā)方面 早期的Android開(kāi)發(fā)只支持Java作為編程語(yǔ)言開(kāi)發(fā)應(yīng)用程序,因而使得其他語(yǔ)言開(kāi)發(fā)者只能望而卻步。2010年4月,谷歌正式對(duì)開(kāi)發(fā)者發(fā)布了AndroidNDK,NDK允許開(kāi)發(fā)者使用C/C++作為編程語(yǔ)言來(lái)為Android開(kāi)發(fā)應(yīng)用程序,初版的NDK使得開(kāi)發(fā)者看到了C/C++在
8、Android開(kāi)發(fā)中的希望?! 〉?,當(dāng)前版本的NDK在功能上還有很多局限性:NDK并沒(méi)有提供對(duì)應(yīng)用程序生命周期的維護(hù);N