android是什么意思?
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的恒山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
在英文字典中,我們通常找不到“Android”一詞,它是當(dāng)前使用最為廣泛的手機(jī)操作系統(tǒng),由谷歌開(kāi)發(fā),運(yùn)用到包括手機(jī)、平板電腦等多個(gè)領(lǐng)域。如果要問(wèn)Android是什么意思,那么最佳答案只有安卓。
android是什么意思?定義是什么?
android是一種以Linux為基礎(chǔ)的.開(kāi)放源代碼操作系統(tǒng),主要使用于便攜設(shè)備。當(dāng)前也尚未有統(tǒng)一中文名稱(chēng),在國(guó)內(nèi)我們已經(jīng)習(xí)慣的稱(chēng)之為安卓系統(tǒng)。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),最初主要支持手機(jī)。2005年由Google收購(gòu)注資,并組建開(kāi)放手機(jī)聯(lián)盟開(kāi)發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。
android是什么意思?系統(tǒng)架構(gòu)是怎樣?
android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。
從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。
Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶(hù)端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫(xiě)的。
Android系統(tǒng)構(gòu)架是安卓系統(tǒng)的體系結(jié)構(gòu),android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu),共分為四層,從高到低分別是Android應(yīng)用層,Android應(yīng)用框架層,Android系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。
Android系統(tǒng)構(gòu)架主要應(yīng)用于ARM平臺(tái),但不僅限于ARM,通過(guò)編譯控制,在X86、MAC等體系結(jié)構(gòu)的機(jī)器上同樣可以運(yùn)行。
中文名
安卓系統(tǒng)構(gòu)架
外文名
Android systematic framework
Android系統(tǒng)架構(gòu)分為四層架構(gòu),從高到低分別是應(yīng)用層,應(yīng)用框架層,系統(tǒng)運(yùn)行層和Linux內(nèi)核層。
Android系統(tǒng)體系結(jié)構(gòu)
1.應(yīng)用層
Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶(hù)端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。它們一般都是使用Java進(jìn)行編寫(xiě)。
2.應(yīng)用框架層
開(kāi)發(fā)人員也可以完全訪問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過(guò)得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶(hù)可以方便的替換程序組件。
Android一共有四種常用的組件:Activity、Service、ContentProvider、BroadcastReceiver
當(dāng)運(yùn)行我們的Android應(yīng)用程序時(shí),Android操作系統(tǒng)首先會(huì)去找我們的AndroidManifest.xml這個(gè)文件,這個(gè)文件是我們應(yīng)用程序的主配置文件,因?yàn)槲覀円粋€(gè)應(yīng)用可能有多個(gè)Activity,那么首先展示那個(gè)Activity呢?這個(gè)主配置文件就定義了當(dāng)前這個(gè)應(yīng)用的默認(rèn)所加載的Activity對(duì)象,找到Activity對(duì)象后,就會(huì)調(diào)用其onCreate()方法,這個(gè)方法主要就是用來(lái)加載我們的布局文件,通過(guò)setContentView()方法可以來(lái)加載我們指定的布局文件,最后根據(jù)布局文件中的各個(gè)控件顯示在我們的屏幕上。這個(gè)就是我們的Activity的啟動(dòng)流程。
Android開(kāi)發(fā)中,在打包發(fā)布應(yīng)用時(shí)會(huì)選擇應(yīng)用適配的cpu架構(gòu)平臺(tái),在引用第三方庫(kù)時(shí)也遇到根據(jù)不同cpu架構(gòu)引入相應(yīng)的so包。Android主要包括一下cpu架構(gòu):
在Android系統(tǒng)上,每一個(gè)CPU架構(gòu)對(duì)應(yīng)一個(gè)ABI:
ABI是Application Binary Interface的縮寫(xiě),常表示兩個(gè)程序模塊之間的接口,且其中一個(gè)模塊常為機(jī)器碼級(jí)別的library或操作系統(tǒng)。它定義了函數(shù)庫(kù)的調(diào)用、應(yīng)用的二進(jìn)制文件(尤其是.so)如何運(yùn)行在相應(yīng)的系統(tǒng)平臺(tái)上等細(xì)節(jié)。其中mips及mips64極少用于手機(jī),出發(fā)點(diǎn)是高性能,主要用于路由器、貓。
從CPU發(fā)明到現(xiàn)在,有非常多種架構(gòu),從我們熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來(lái)分類(lèi)的話,它們可以被分為兩大類(lèi),即所謂的“復(fù)雜指令集(CISC)”與“精簡(jiǎn)指令集(RISC)”系統(tǒng)。
Intel和ARM處理器的第一個(gè)區(qū)別是,前者使用復(fù)雜指令集(CISC),后者使用精簡(jiǎn)指令集(RISC)。屬于這兩種類(lèi)中的各種架構(gòu)之間最大的區(qū)別,在于它們的設(shè)計(jì)者考慮問(wèn)題方式的不同。
ARM架構(gòu)是一個(gè)32位精簡(jiǎn)指令集RISC(Reduced Instruction Set Computing)處理器架構(gòu),其廣泛地使用在許多嵌入式系統(tǒng)設(shè)計(jì)。但在其他領(lǐng)域上也有很多作為,由于節(jié)能的特點(diǎn),ARM處理器非常適用于移動(dòng)通信領(lǐng)域,匹配其主要設(shè)計(jì)目標(biāo)為低成本、高性能、低耗電的特性。
ARM的優(yōu)勢(shì)不在于性能強(qiáng)大而在于效率,ARM采用RISC流水線指令集,在完成綜合性工作方面根本就處于劣勢(shì),而在一些任務(wù)相對(duì)固定的應(yīng)用場(chǎng)合其優(yōu)勢(shì)就能發(fā)揮得淋漓盡致。ARM結(jié)構(gòu)的電腦是通過(guò)專(zhuān)用的數(shù)據(jù)接口使CPU與數(shù)據(jù)存儲(chǔ)設(shè)備進(jìn)行連接,所以ARM的存儲(chǔ)、內(nèi)存等性能擴(kuò)展難以進(jìn)行(一般在產(chǎn)品設(shè)計(jì)時(shí)已經(jīng)定好其內(nèi)存及數(shù)據(jù)存儲(chǔ)的容量),所以采用ARM結(jié)構(gòu)的系統(tǒng),一般不考慮擴(kuò)展?;痉钚小皦蛴镁秃谩钡脑瓌t。
x86 架構(gòu)是一個(gè)復(fù)雜指令集CISC(Complex Instruction Set Computer)處理器架構(gòu)。X86結(jié)構(gòu)的電腦無(wú)論如何都比ARM結(jié)構(gòu)的系統(tǒng)在性能方面要快得多、強(qiáng)得多。X86的CPU隨便就是1G以上、雙核、四核。X86結(jié)構(gòu)的電腦采用“橋”的方式與擴(kuò)展設(shè)備(如:硬盤(pán)、內(nèi)存等)進(jìn)行連接,而且x86結(jié)構(gòu)的電腦出現(xiàn)了近30年,其配套擴(kuò)展的設(shè)備種類(lèi)多、價(jià)格也比較便宜,所以x86結(jié)構(gòu)的電腦能很容易進(jìn)行性能擴(kuò)展,如增加內(nèi)存、硬盤(pán)等。
android系統(tǒng)架構(gòu)分從下往上為linux 內(nèi)核層、運(yùn)行庫(kù)、應(yīng)用程序框架層、和應(yīng)用程序?qū)?/p>
linuxkernel:負(fù)責(zé)硬件的驅(qū)動(dòng)程序、網(wǎng)絡(luò)、電源、系統(tǒng)安全以及內(nèi)存管理等功能。
libraries和 androidruntime:libraries:即c/c++函數(shù)庫(kù)部分,大多數(shù)都是開(kāi)放源代碼的函數(shù)庫(kù),例如webkit,該函數(shù)庫(kù)負(fù)責(zé) android網(wǎng)頁(yè)瀏覽器的運(yùn)行,例如標(biāo)準(zhǔn)的c函數(shù)庫(kù)libc、openssl、sqlite等,當(dāng)然也包括支持游戲開(kāi)發(fā)2dsgl和 3dopengles,在多媒體方面有mediaframework框架來(lái)支持各種影音和圖形文件的播放與顯示,例如mpeg4、h.264、mp3、 aac、amr、jpg和png等眾多的多媒體文件格式。android的runtime負(fù)責(zé)解釋和執(zhí)行生成的dalvik格式的字節(jié)碼。
applicationframework(應(yīng)用軟件架構(gòu)),java應(yīng)用程序開(kāi)發(fā)人員主要是使用該層封裝好的api進(jìn)行快速開(kāi)發(fā)。
applications:該層是java的應(yīng)用程序?qū)?,android內(nèi)置的googlemaps、e-mail、即時(shí)通信工具、瀏覽器、mp3播放 器等處于該層,java開(kāi)發(fā)人員開(kāi)發(fā)的程序也處于該層,而且和內(nèi)置的應(yīng)用程序具有平等的位置,可以調(diào)用內(nèi)置的應(yīng)用程序,也可以替換內(nèi)置的應(yīng)用程序。
上面的四個(gè)層次,下層為上層服務(wù),上層需要下層的支持,調(diào)用下層的服務(wù),這種嚴(yán)格分層的方式帶來(lái)的極大的穩(wěn)定性、靈活性和可擴(kuò)展性,使得不同層的開(kāi)發(fā)人員可以按照規(guī)范專(zhuān)心特定層的開(kāi)發(fā)。
android應(yīng)用程序使用框架的api并在框架下運(yùn)行,這就帶來(lái)了程序開(kāi)發(fā)的高度一致性,另一方面也告訴我們,要想寫(xiě)出優(yōu)質(zhì)高效的程序就必須對(duì)整個(gè) applicationframework進(jìn)行非常深入的理解。精通applicationframework,你就可以真正的理解android的設(shè)計(jì) 和運(yùn)行機(jī)制,也就更能夠駕馭整個(gè)應(yīng)用層的開(kāi)發(fā)。