一缴淋、簡介
Android是基于Linux平臺的開源智能手機(jī)操作系統(tǒng)(Google為什么不另立門戶請看這里)洽蛀,具有強(qiáng)大的靈活性心例,可以被移植到不同的硬件平臺上(比如:手機(jī)、電視供搀、機(jī)頂盒隅居、嵌入式設(shè)備等),完全開放葛虐,上層的應(yīng)用程序開發(fā)完全開放給第三方(應(yīng)用開發(fā)以Java語言為主胎源,C/C++語言只在特定情況下使用,比如:游戲的Cocos2D-X系列屿脐、加密算法涕蚤、地圖渲染引擎,視頻播放器等)的诵。Android系統(tǒng)層次結(jié)構(gòu)如下圖所示:
從上圖可以看出万栅,Andriod系統(tǒng)自底向上分4層:
(1)內(nèi)核層
Linux內(nèi)核和設(shè)備驅(qū)動,該層與設(shè)備相關(guān)西疤,對開發(fā)者不開放烦粒。
(2)模塊層
Linux庫和Dalvid虛擬機(jī),從Linux操作系統(tǒng)的角度來看代赁,第2層是內(nèi)核空間與用戶空間的分界線扰她,第1層運(yùn)行于內(nèi)核空間兽掰,第2、3徒役、4層次運(yùn)行于用戶空間孽尽。
(3)應(yīng)用框架層
Andriod應(yīng)用管理框架和服務(wù),管理每個Android應(yīng)用的整個生命周期廉涕,從安裝到運(yùn)行到卸載泻云。
(4)應(yīng)用層
Android自帶以及三方的應(yīng)用程序,這里是碼農(nóng)們的角斗場狐蜕,也即將是你的歸宿。
簡單點(diǎn)說就是:Android的應(yīng)用運(yùn)行在Java虛擬機(jī)Dalvik之上卸夕,即java code->class->dex(Dalvik executable)层释。
當(dāng)然Dalvik與Java虛擬機(jī)還是有區(qū)別的:
(1)Dalvik基于寄存器,而JVM基于棧快集。
(2)Dalvik虛擬機(jī)運(yùn)行的是其專有的文件格式Dex贡羔,而Java虛擬機(jī)運(yùn)行java字節(jié)碼。
(3)Dex文件格式可以減少整體文件尺寸个初,提高I/O操作的類查找速度乖寒。
(4)每個APP對應(yīng)一個獨(dú)立的虛擬機(jī)實(shí)例,APP的每個線程對應(yīng)一個Linux線程院溺。
(5)有一個特殊的虛擬機(jī)進(jìn)程Zygote楣嘁,其是虛擬機(jī)實(shí)例的孵化器。它在系統(tǒng)啟動的時候就會產(chǎn)生珍逸,如果系統(tǒng)需要一個新的虛擬機(jī)實(shí)例逐虚,它會迅速復(fù)制自身,以最快的數(shù)據(jù)提供給系統(tǒng)谆膳。對于一些只讀的系統(tǒng)庫叭爱,所有虛擬機(jī)實(shí)例都和Zygote共享一塊內(nèi)存區(qū)域。
二****漱病、安裝
1买雾、開發(fā)環(huán)境
Android開發(fā)環(huán)境涉及的工具和開發(fā)包比較多,包括如下幾個部分:
(1)JDK
點(diǎn)擊這里下載JDK杨帽,JDK提供Java編譯環(huán)境漓穿,新版本的JDK自動包含了JRE,所以不用單獨(dú)下載JRE了睦尽,JRE提供Java運(yùn)行環(huán)境器净。
(2)Eclipse
點(diǎn)擊這里下載Eclipse,Eclipse是Java的IDE開發(fā)工具当凡。
(3)Android SDK
點(diǎn)擊這里下載Android SDK山害,Android SDK提供Android應(yīng)用開發(fā)環(huán)境和工具纠俭。
(4)ADT
點(diǎn)擊這里下載ADT,ADT是Eclipse的一個Android開發(fā)工具插件浪慌,Android的SDK需要配合ADT使用冤荆。在線更新ADT的地址是:https://dl-ssl.google.com/android/eclipse/。
(5)Android NDK
點(diǎn)擊這里下載Android NDK权纤,Android NDK提供Android本地C/C++開發(fā)環(huán)境和工具钓简。
實(shí)際上,Andriod環(huán)境安裝并不需要一一下載上面介紹的那些個工具包汹想。Google是個好同學(xué)外邓,它為我們打包了一個開發(fā)工具集合——ADT-BUNDLE集成包,里面包含了Eclipse古掏、Android SDK损话、Android ADT,點(diǎn)擊這里下載ADT-BUNDLE槽唾。
2丧枪、安裝JDK
(1)安裝JDK和JRE
點(diǎn)擊這里下載JDK,安裝JDK(jdk-7u45-windows-x64.exe)庞萍,JDK安裝完成之后會自動啟動JRE的安裝拧烦。
(2)JDK環(huán)境變量設(shè)置
選擇我的電腦->右鍵->屬性->高級系統(tǒng)設(shè)置->高級->環(huán)境變量->系統(tǒng)變量->新建,變量名是JAVA_HOME钝计,變量值是jdk的安裝路徑(比如:C:\Program Files\Java\jdk1.7.0_45)恋博。
(3)Path路徑設(shè)置
設(shè)置Path路徑,添加JDK和JRE的bin路徑葵蒂。需要注意的是:JRE存在兩個交播,一個是JDK下面的,一個是單獨(dú)安裝的践付,這兩個都可以使用秦士,這里使用前者。設(shè)置Path路徑時永高,可以引用前面設(shè)置的JAVA_HOME變量隧土,引用方法是在JAVA_HOME變量名的前后添加%(比如:%JAVA_HOME%/bin;%JAVA_HOME%jre/bin)。選擇我的電腦->右鍵->屬性->高級系統(tǒng)設(shè)置->高級->環(huán)境變量->系統(tǒng)變量->Path->編輯命爬,在變量值的最后面追加JDK和JRE的bin路徑曹傀,路徑之間用;分隔,即%JAVA_HOME%/bin;%JAVA_HOME%jre/bin饲宛。
(4)測試Java環(huán)境是否安裝成功
打開cmd窗口皆愉,輸入java -version,如果顯示JDK版本信息,則表示安裝成功幕庐。
3久锥、安裝ADT-BUNDLE
(1)下載及安裝
點(diǎn)擊這里下載ADT-BUNDLE,直接解壓ADT-BUNDLE(adt-bundle-windows-x86_64-20131030.zip)即可异剥。 解壓完成之后包含包含兩個文件夾eclipse(Eclipse+ADT插件)瑟由、sdk(Android SDK)和一個程序SDK Manager.exe。
(2)設(shè)置環(huán)境變量
設(shè)置Android SDK的Path環(huán)境變量冤寿,方便一些工具命令的調(diào)用歹苦,設(shè)置步驟同JDK。添加sdk路徑下的兩個文件夾tools和platform-tools到Path環(huán)境變量(例如:D:\adt-bundle-windows-x86_64-20131030\sdk\tools;D:\adt-bundle-windows-x86_64-20131030\sdk\platform-tools)督怜。
(3)啟動開發(fā)工具
找到adt-bundle解壓目錄殴瘦,雙擊\eclipse\eclipse.exe,啟動開發(fā)工具号杠。
Android SDK Manager負(fù)責(zé)SDK包的更新痴施,adt-bundle自帶的Android SDK都是最新的,當(dāng)前是4.4究流,如果想使用4.4以前的版本呢,需要使用這個工具進(jìn)行更新动遭。在Eclipse中芬探,通過選擇Window->Android SDK Manager來打開。
AVD(Android Virtual Device)即Android運(yùn)行的虛擬設(shè)備管理厘惦,可以通過AVD創(chuàng)建一個Android虛擬機(jī)進(jìn)行程序調(diào)試偷仿。在Eclipse中,通過選擇Window->Android Virtual Device Manager來打開宵蕉,點(diǎn)擊New按鈕創(chuàng)建虛擬機(jī)(Name:虛擬機(jī)名酝静、Device:選擇模擬的設(shè)備機(jī)器分辨率、Target:選擇虛擬機(jī)的SDK版本)羡玛。創(chuàng)建完虛擬機(jī)后别智,點(diǎn)擊Start按鈕啟動虛擬機(jī),虛擬機(jī)界面如下圖所示: