官术网_书友最值得收藏!

2.3 Android SDK介紹

SDK(software development kit)軟件開發(fā)工具包,是軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。Android SDK就是Android專屬的軟件開發(fā)工具包。

2.3.1 Android SDK目錄結(jié)構(gòu)

Android SDK解壓即可完成安裝,其中包含的文件、文件夾如圖2.10所示。

圖2.10 Android SDK目錄結(jié)構(gòu)圖

(1)add-ons

該目錄中存放Android的擴(kuò)展庫,比如Google Maps,但是如果未選擇安裝Google API,則該目錄為空。

(2)docs

該目錄是developer.Android.com的開發(fā)文檔,包含SDK平臺、工具、ADT等的介紹,開發(fā)指南,API文檔,相關(guān)資源等。

(3)extras

該目錄用于存放Android附加支持文件,主要包含Android的support支持包、Google的幾個工具和驅(qū)動、Intel的IntelHaxm。

(4)platforms

該目錄用于存放Android SDK Platforms平臺相關(guān)文件,包括字體、res資源、模板等。

(5)platform-tools

該目錄包含各個平臺工具,其中主要包含以下幾部分。


●api目錄。api-versions.xml文件,用于指明所需類的屬性、方法、接口等。

●lib目錄。lib目錄中只有dx.jar文件,為平臺工具啟動dx.bat時加載并使用jar包里的。

●aapt.exe。主要作用是把開發(fā)的應(yīng)用打包成apk安裝文件,如果用eclipse開發(fā),就不用通過命令窗口輸入命令+參數(shù)實(shí)現(xiàn)打包。

●adb.exe。Adb即Android Debug Bridge調(diào)試橋,可以通過它連接Android手機(jī)(或模擬器)和與PC端,可以在PC端上控制手機(jī)的操作。如果用Eclipse開發(fā),一般情況下adb會自動啟動,之后我們可以通過DDMS來調(diào)試Android程序。

●aidl.exe。AIDL全稱Android Interface Definition Language,是Android內(nèi)部進(jìn)程通信接口的描述語言,用于生成可以在Android設(shè)備進(jìn)行進(jìn)程間通信(IPC)的代碼。

●dexdump.exe。使用dexdump可以反編譯.dex文件,例如dex文件里包含3個類,反編譯后也會出現(xiàn)3個.class文件,通過對這些文件可以大概了解原始的java代碼。

●dx.bat。其功能是將.class字節(jié)碼文件轉(zhuǎn)成Android字節(jié)碼.dex文件。

●fastboot.exe。通過fastboot可以重啟系統(tǒng)、重寫內(nèi)核、查看連接設(shè)備、寫分區(qū)、清空分區(qū)等操作。

●Android llvm-rs-cc.exe。Renderscript采用LLVM低階虛擬機(jī),llvm-rs-cc.exe主要作用是對Renderscript的處理。

●NOTICE.txt和source.properties。NOTICE.txt只是給出一些提示的信息;source.properties是資源屬性信息文件,主要是該資源生成時間、系統(tǒng)類型、資源URL地址等等。


(6)samples

samples是Android SDK自帶的默認(rèn)示例工程,里面的apidemos強(qiáng)烈推薦初學(xué)者進(jìn)行學(xué)習(xí),對于SQLite數(shù)據(jù)庫操作可以查看NotePad例子,對于游戲開發(fā)可以參考Snake和LunarLander,對于Android主題開發(fā)Home則是Android 5時代的主題設(shè)計(jì)原理。

(7)system-images

該目錄存放系統(tǒng)用到的所有圖片。

(8)temp

該目錄存放系統(tǒng)中的臨時文件。

(9)tools

作為SDK根目錄下的tools文件夾,這里包含了重要的工具,比如ddms用于啟動Android調(diào)試工具,logcat、屏幕截圖和文件管理器,而draw9patch則是繪制Android平臺的可縮放png圖片的工具,sqlite3可以在PC上操作SQLite數(shù)據(jù)庫,而monkeyrunner則是一個不錯的壓力測試應(yīng)用,模擬用戶隨機(jī)按鈕,mksdcard則是模擬器SD映像的創(chuàng)建工具,emulator是Android模擬器主程序,不過從Android 1.5開始,需要輸入合適的參數(shù)才能啟動模擬器,traceview作為Android平臺上重要的調(diào)試工具。

2.3.2 Android.jar

作為一個Java項(xiàng)目,通常情況下都會引入要用到的工具類,也就是Jar包,在Android開發(fā)中,絕大部分開發(fā)用的工具包都被封裝到一個名叫Android.jar的文件里了。在Eclipse中展開來看,可以看到j(luò)2se中的包,apache項(xiàng)目中的包,還有Android自身的包文件。Android的包文件主要包括以下內(nèi)容:


●Android.app:提供高層的程序模型和基本的運(yùn)行環(huán)境。

●Android.content:包含各種對設(shè)備上的數(shù)據(jù)進(jìn)行訪問和發(fā)布的類。

●Android.database:通過內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫。

●Android.graphics:底層的圖形庫。

●Android.location:定位和相關(guān)服務(wù)的類。

●Android.media:提供一些類管理多種音頻、視頻的媒體接口。

●Android.net:提供幫助網(wǎng)絡(luò)訪問的類,超過通常的java.net.*接口。

●Android.os:提供了系統(tǒng)服務(wù)、消息傳輸、IPC機(jī)制。

●Android.openg:提供OpenGL的工具。

●Android.provider:提供類,訪問Android的內(nèi)容提供者。

●Android.telephony:提供與撥打電話相關(guān)的API交互。

●Android.view:提供基礎(chǔ)的用戶界面接口框架。

●Android.util:涉及工具性的方法,例如時間日期的操作。

●Android.webkit:默認(rèn)瀏覽器操作接口。

●Android.widget:包含各種UI元素(大部分是可見的)在應(yīng)用程序的屏幕中使用。

2.3.3 Android API核心包

SDK中集成了很多開發(fā)應(yīng)用的API,它們是通過Android SDK來編寫應(yīng)用程序的基礎(chǔ),這里我們從最底層到最高層列出核心包并加以說明。


●Android.util:包含一些底層輔助類,例如:特定的容器類,XML輔助工具類等。

●Android.os:提供基本的操作服務(wù),消息傳遞和進(jìn)程間通信IPC。

●Android.graphics:作為圖形渲染包,提供圖形渲染功能。

●Android.text Android.text.method Android.text.style Android.text.util:提供一套豐富的文本處理工具,支持富文本,輸入模式等。

●Android.database:包含底層API處理數(shù)據(jù)庫,方便操作數(shù)據(jù)庫表和數(shù)據(jù)。

●Android.content:提供各種服務(wù)訪問數(shù)據(jù)在手機(jī)設(shè)備上,程序安裝到手機(jī)設(shè)備和其他相關(guān)資料。

●Android.view:核心用戶界面框架。

●Android.widget:提供標(biāo)準(zhǔn)用戶界面元素,List(列表),Buttons(按鈕),Layout manager(布局管理器)等,是組成我們界面的基本元素。

●Android.app:提供高層應(yīng)用程序模型,實(shí)現(xiàn)使用Activity。

●Android.provider:提供方便調(diào)用系統(tǒng)提供的content providers的接口。

●Android.telephony:提供API和手機(jī)設(shè)備的通話接口。

●Android.webikit:包含一系列工作在基于Web內(nèi)容的API。

2.3.4 Android API擴(kuò)展包

核心的Android API在每部手機(jī)上都可使用,但仍然有一些API接口有各自特別的適用范圍:這就是所謂的“可選API”。這些API之所以是“可選的”,主要是因?yàn)橐粋€手持設(shè)備并不一定要完全支持這類API,甚至于完全不支持。


●Location-Based Services定位服務(wù)。Android操作系統(tǒng)支持GPS API-LBS,可以通過集成GPS芯片來接收衛(wèi)星信號通過GPS全球定位系統(tǒng)中至少3顆衛(wèi)星和原子鐘來獲取當(dāng)前手機(jī)的坐標(biāo)數(shù)據(jù),通過轉(zhuǎn)換就可以成為地圖上的具體位置了,這一誤差在手機(jī)上可以縮小到10米。在谷歌開發(fā)手機(jī)聯(lián)盟中可以看到著名的SiRF star。所以未來gPhone手機(jī)上市時集成GPS后的價格不會很貴。同時谷歌正在研制基于基站式的定位技術(shù)-MyLocation可以更快速地定位與前者GPS定位需要花費(fèi)大約1分鐘相比基站定位更快。

●Media APIs多媒體接口。Android平臺上集成了很多影音解碼器以及相關(guān)的多媒體API,通過這些可選API,廠商可以讓手機(jī)支持MP3、MP4、高清晰視頻播放處理等。

●3D Graphics with OpenGL 3D圖形處理OpenGL可選API。Android平臺上的游戲娛樂功能如支持3D游戲或應(yīng)用場景就需要用到3D技術(shù),手機(jī)生產(chǎn)廠商根據(jù)手機(jī)的屏幕以及定位集成不同等級的3D加速圖形芯片來加強(qiáng)GPhone手機(jī)的娛樂性,有來自高通的消息稱最新的顯示芯片在GPhone上將會輕松超過索尼PS3。

●Low-Level Hardware Access低級硬件訪問。這個功能主要用于控制手機(jī)的底層方面操作,由于設(shè)計(jì)底層硬件操作,將主要由各個手機(jī)硬件生產(chǎn)廠商來定制,支持不同設(shè)備的操作管理等,如藍(lán)牙Bluetooth以及WIFI無線網(wǎng)絡(luò)支持等。


主站蜘蛛池模板: 保山市| 荔波县| 岐山县| 乌拉特后旗| 东乡族自治县| 永吉县| 介休市| 二手房| 齐河县| 黄山市| 云霄县| 永春县| 淳安县| 枣强县| 宁城县| 六枝特区| 棋牌| 南昌县| 车险| 永泰县| 连云港市| 宣化县| 漠河县| 资源县| 巴林右旗| 凤凰县| 济源市| 韶山市| 轮台县| 石泉县| 清徐县| 巴林左旗| 恩施市| 文安县| 五常市| 凤凰县| 蓬安县| 梅州市| 宝清县| 共和县| 曲阜市|