- Android 5從入門到精通
- 李波
- 2392字
- 2021-03-19 15:28:58
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ò)支持等。
- Unity 2020 By Example
- 深入理解Android(卷I)
- 復(fù)雜軟件設(shè)計(jì)之道:領(lǐng)域驅(qū)動設(shè)計(jì)全面解析與實(shí)戰(zhàn)
- VMware vSphere 6.7虛擬化架構(gòu)實(shí)戰(zhàn)指南
- 老“碼”識途
- Visual Basic程序設(shè)計(jì)與應(yīng)用實(shí)踐教程
- PhpStorm Cookbook
- JavaScript 程序設(shè)計(jì)案例教程
- AppInventor實(shí)踐教程:Android智能應(yīng)用開發(fā)前傳
- Learning Vaadin 7(Second Edition)
- Java程序設(shè)計(jì)入門
- Statistical Application Development with R and Python(Second Edition)
- Developing SSRS Reports for Dynamics AX
- Python 3 數(shù)據(jù)分析與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
- Data Science Algorithms in a Week