第1章Android開發(fā)環(huán)境配置_第1頁
第1章Android開發(fā)環(huán)境配置_第2頁
第1章Android開發(fā)環(huán)境配置_第3頁
第1章Android開發(fā)環(huán)境配置_第4頁
第1章Android開發(fā)環(huán)境配置_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章:

Android開發(fā)環(huán)境配置本章學習目標:了解Android的起源掌握Android的優(yōu)點掌握Android的系統(tǒng)架構(gòu)掌握Android開發(fā)環(huán)境的安裝配置方法了解Android

SDK的目錄結(jié)構(gòu)和示例程序

1.1.1Android的起源

Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。Android本是一家公司的名稱,這家公司的創(chuàng)始人名叫AndyRubin。AndyRubin創(chuàng)立了兩個手機操作系統(tǒng)公司:Danger和Android。Danger以5億美元賣給微軟,成為了今天的Kin,Android以4千萬美元賣給Google。1.1.1Android的起源

Android手機就是使用Android操作系統(tǒng)或OMS操作系統(tǒng)的手機,2008年9月22日,美國運營商德國T-Mobile在紐約正式發(fā)布第一款Android手機——T-MobileG1,如圖1-1。2009年9月初,摩托羅拉坐鎮(zhèn)主場在舊金山舉辦的GigaOM2009大會上攜手T-Mobile正式發(fā)布了旗下首款搭載Android操作系統(tǒng)的智能手機——MOTOCLIQ,如圖1-2。2009年10月28日摩托羅拉正式發(fā)布了Android2.0智能手機操作系統(tǒng)。2010年1月索尼愛立信首款Android機型X10上市。2010年1月7日,Google在其美國總部正式向外界發(fā)布了旗下首款合作品牌手機NexusOne(HTCG5),并同時開始對外發(fā)售。2010年7月9日,美國NDP集團調(diào)查顯示,Android系統(tǒng)已占據(jù)了美國移動系統(tǒng)市場28%的份額。

圖1-1第一款Google手機--T-MobileG1圖1-2MOTOCLIQ1.1.2Android的優(yōu)點目前市場上的手機操作系統(tǒng)除了Android,還有Symbian、iPhone等,與這些手機系統(tǒng)相比,Android具有如下的優(yōu)點:第一:真正開放性。Android是一個真正意義上的開放性移動開發(fā)平臺,它同時包含底層操作系統(tǒng)以及上層的用戶界面和應(yīng)用程序------移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。

另一方面,Android平臺的開放性還體現(xiàn)在不同的廠商可以根據(jù)自己的需求對平臺進行定制和擴展,以及使用這個平臺無需任何授權(quán)許可費用等。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的收益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心意的手機。1.1.2Android的優(yōu)點第二:應(yīng)用程序相互平等。所有的Android應(yīng)用程序之間是完全平等的,所有的應(yīng)用程序都運行在一個核心引擎上面,這個核心引擎就是一個虛擬機,它提供了一系列用于應(yīng)用程序和硬件資源間通信的API。拋開這個核心引擎,Android的所有其他的東西,包括系統(tǒng)的核心應(yīng)用和第三方應(yīng)用都是完全平等的。第三:應(yīng)用程序之間溝通無界限。在Android平臺下開發(fā)應(yīng)用程序,可以方便實現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享,只需要經(jīng)過簡單的聲明或操作,應(yīng)用程序可以訪問或調(diào)用其他應(yīng)用程序的功能,或者將自己的部分數(shù)據(jù)和功能提供給其他應(yīng)用程序使用。第四:快速方便的應(yīng)用程序開發(fā)。Android平臺為開發(fā)人員提供了大量的實用庫和工具,開發(fā)人員可以快速創(chuàng)建自己的應(yīng)用程序。如今叱詫互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。1.1.3Android的系統(tǒng)架構(gòu)Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),采用了軟件堆層(SoftwareStack,又名軟件疊層)的架構(gòu),主要分為四部分,如圖1-3。第一層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供由操作系統(tǒng)內(nèi)核管理的底層基本功能;第二層為中間件層,包括函數(shù)庫Library和虛擬機VirtualMachine,由C++開發(fā);第三層為應(yīng)用程序框架層,提供了Android平臺基本的管理功能和組件重用機制;第四層為應(yīng)用程序?qū)?,提供了一系列核心?yīng)用程序,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。1.1.3Android的系統(tǒng)架構(gòu)圖1-3Android體系結(jié)構(gòu)圖1.1.3Android的系統(tǒng)架構(gòu)LinuxKernelAndroid基于Linux2.6提供核心系統(tǒng)服務(wù),例如:安全、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧、驅(qū)動模型。LinuxKernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務(wù)。

AndroidRuntimeAndroid包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應(yīng)用程序是Dalvik虛擬機中的實例,運行在他們自己的進程中。Dalvik虛擬機設(shè)計成,在一個設(shè)備可以高效地運行多個虛擬機。Dalvik虛擬機可執(zhí)行文件格式是.dex,dex格式是專為Dalvik設(shè)計的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。大多數(shù)虛擬機包括JVM都是基于棧的,而Dalvik虛擬機則是基于寄存器的。兩種架構(gòu)各有優(yōu)劣,一般而言,基于棧的機器需要更多指令,而基于寄存器的機器指令更大。dx是一套工具,可以將Java.class轉(zhuǎn)換成.dex格式。一個dex文件通常會有多個.class。由于dex有時必須進行最佳化,會使文件大小增加1-4倍,以O(shè)DEX結(jié)尾。Dalvik虛擬機依賴于Linux內(nèi)核提供基本功能,如線程和底層內(nèi)存管理。1.1.3Android的系統(tǒng)架構(gòu)LibrariesAndroid包含一個C/C++庫的集合,供Android系統(tǒng)的各個組件使用。這些功能通過Android的應(yīng)用程序框架(applicationframework)暴露給開發(fā)者。下面列出一些核心庫:系統(tǒng)C庫——標準C系統(tǒng)庫(libc)的BSD衍生,調(diào)整為基于嵌入式Linux設(shè)備。媒體庫——基于PacketVideo的OpenCORE。這些庫支持播放和錄制許多流行的音頻和視頻格式,以及靜態(tài)圖像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。界面管理——管理訪問顯示子系統(tǒng)和無縫組合多個應(yīng)用程序的二維和三維圖形層。LibWebCore——新式的Web瀏覽器引擎,驅(qū)動Android瀏覽器和內(nèi)嵌的web視圖。SGL——基本的2D圖形引擎。3D庫——基于OpenGLES1.0APIs的實現(xiàn)。庫使用硬件3D加速或包含高度優(yōu)化的3D軟件光柵1.1.3Android的系統(tǒng)架構(gòu)FreeType——位圖和矢量字體渲染。SQLite——所有應(yīng)用程序都可以使用的強大而輕量級的關(guān)系數(shù)據(jù)庫引擎。ApplicationFramework通過提供開放的開發(fā)平臺,Android使開發(fā)者能夠編制極其豐富和新穎的應(yīng)用程序。開發(fā)者可以自由地利用設(shè)備硬件優(yōu)勢、訪問位置信息、運行后臺服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等等,很多很多。開發(fā)者可以完全使用核心應(yīng)用程序所使用的框架APIs。應(yīng)用程序的體系結(jié)構(gòu)旨在簡化組件的重用,任何應(yīng)用程序都能發(fā)布他的功能且任何其他應(yīng)用程序可以使用這些功能(需要服從框架執(zhí)行的安全限制)。這一機制允許用戶替換組件。所有的應(yīng)用程序其實是一組服務(wù)和系統(tǒng),包括:視圖(View)——豐富的、可擴展的視圖集合,可用于構(gòu)建一個應(yīng)用程序。包括包括列表、網(wǎng)格、文本框、按鈕,甚至是內(nèi)嵌的網(wǎng)頁瀏覽器。1.1.3Android的系統(tǒng)架構(gòu)內(nèi)容提供者(ContentProviders)——使應(yīng)用程序能訪問其他應(yīng)用程序(如通訊錄)的數(shù)據(jù),或共享自己的數(shù)據(jù)。資源管理器(ResourceManager)——提供訪問非代碼資源,如本地化字符串、圖形和布局文件。通知管理器(NotificationManager)——使所有的應(yīng)用程序能夠在狀態(tài)欄顯示自定義警告?;顒庸芾砥鳎ˋctivityManager)——管理應(yīng)用程序生命周期,提供通用的導航回退功能。Applications

Android裝配一個核心應(yīng)用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置。所有應(yīng)用程序都是用Java編程語言寫的。1.2Android開發(fā)環(huán)境配置Android開發(fā)環(huán)境的安裝和配置是開發(fā)Android應(yīng)用程序的第一步,也是深入Android平臺的一個非常好的機會。Eclipse是開發(fā)Android應(yīng)用程序的首選集成開發(fā)環(huán)境,因此我們這本書的案例都是在Eclipse工具中編寫和調(diào)試的。第一步:安裝JDK和Eclipse工具。這一步對于我們熟悉java開發(fā)的讀者來說,不是難事,只是告訴大家不要忘記了jdk環(huán)境變量的配置。第二步:下載AndroidSDK工具包。AndroidSDK是Android軟件開發(fā)工具包(AndroidSoftwareDevelopmentKit)的簡寫。是Google公司為了提高Android應(yīng)用程序開發(fā)效率、減少開發(fā)周期而提供的輔助開發(fā)工具、開發(fā)文檔和程序范例。AndroidSDK可以從Google的中文Android開發(fā)網(wǎng)站上下載,網(wǎng)站的地址是/sdk/index.html。打開Android開發(fā)網(wǎng)頁,會看到如表1-1所示的三種版本AndroidSDK壓縮文件。開發(fā)網(wǎng)站不僅能夠下載最新的AndroidSDK,還有許多有價值的學習內(nèi)容,如開發(fā)文檔、常見問題解答等等。1.2Android開發(fā)環(huán)境配置表1-1Android軟件開發(fā)包SDK表作業(yè)平臺Android-SDKMD5檢查碼Windowsandroid-sdk_r17-windows.zip3af1baeb39707e54df068e939aea5a79installer_r17-windows.exe

(Recommended)5afaf6511ebaa52bd6d1dba4afc61e41MacOSX(intel)android-sdk_r17-macosx.zip52639aae036b7c2e47cf291696b23236Linux(i386)android-sdk_r17-linux.tgz14e99dfa8eb1a8fadd2f3557322245c41.2Android開發(fā)環(huán)境配置第三步:ADT插件的安裝。ADT插件是Eclipse集成開發(fā)環(huán)境的定制插件,為開發(fā)Android應(yīng)用程序提供了一個強大的、完整的開發(fā)環(huán)境,可以快速建立Android工程,用戶界面和基于AndroidAPI的組件,還可以使用AndroidSDK提供的工具進行程序調(diào)試,對apk文件進行簽名等等。安裝ADT插件有兩種方法,一種是手動下載ADT插件的壓縮包,然后在Eclipse中進行安裝,這里對ADT插件的下載和配置就不累述了,比較簡單,讀者也可以通過網(wǎng)絡(luò)進行學習;第二種是在Eclipse中輸入插件的下載地址,由Eclipse自動完成下載和安裝工作。第二種方法比較簡單方便,但出錯的幾率較第一種大,我們這里用第二種方法。啟動Eclipse,選擇Help—>InstallNewSoftware,打開Eclipse的插件安裝界面,如Eclipse插件安裝界面圖1-4所示,點擊Add按鈕,進入AddSite界面,圖1-5,在AddSite界面的Name文本框中輸入插件名稱如android,在Location文本框中輸入ADT插件的下載網(wǎng)絡(luò)路徑/android/eclipse/。

1.2Android開發(fā)環(huán)境配置圖1-4Eclipse插件安裝界面圖1.2Android開發(fā)環(huán)境配置正確填寫ADT插件壓縮包的下載路徑后,在Eclipse的插件安裝界面上會出現(xiàn)ADT插件的安裝選項圖,如圖1-6,選中AndroidDDMS復選框和AndroidDevelopmentTools復選框,然后單擊Next按鈕進入ADT插件許可界面,如圖1-7。在ADT插件許可界面中,選擇Iacceptthetermsofthelicenseagreements單選項即可,待安裝結(jié)束,重新啟動Eclipse。使ADT插件生效。第四步:配置Android開發(fā)環(huán)境。在ADT插件安裝之后,開始設(shè)置AndroidSDK的保存路徑。首先選擇Windows

Preferences命令,打開Android配置界面,如圖1-8,單擊Browse按鈕,在SDKLocation文本框中輸入AndroidSDK的保存路徑,最后單擊Apply按鈕使配置生效。1.2Android開發(fā)環(huán)境配置圖1-5AddSite界面圖圖1-6ADT插件的安裝選項圖1.2Android開發(fā)環(huán)境配置圖1-7ADT插件許可界面1.2Android開發(fā)環(huán)境配置圖1-8Android配置界面圖1.2Android開發(fā)環(huán)境配置第五步:虛擬設(shè)備AVD的創(chuàng)建。使用AndroidSDK開發(fā)的Android應(yīng)用程序需要進行測試,Android為開發(fā)人員提供了可以在電腦上直接測試應(yīng)用程序的虛擬設(shè)備AVD(AndroidVirtualDevice),或稱做模擬器。AVD的創(chuàng)建,首先啟動Eclipse,選擇Windows-

AndroidSDKandAVDManager,進入AndroidSDKandAVDManager界面如圖1-9,單擊圖1-9中的New按鈕,彈出AVD創(chuàng)建的對話框,如圖1-10。在對話框中設(shè)置所要創(chuàng)建的AVD名稱、API版本、SD卡大小以及AVD顯示皮膚,單擊CreateAVD按鈕,就完成了一個AVD的創(chuàng)建,依此類推,可以創(chuàng)建多個不同API版本的模擬器。創(chuàng)建成功AVD以后,可以啟動模擬器,調(diào)試我們自己開發(fā)的Android應(yīng)用程序了。1.2Android開發(fā)環(huán)境配置圖1-9AndroidSDKandAVDManager界面圖1.2Android開發(fā)環(huán)境配置圖1-10創(chuàng)建AVD對話框1.3第一個Android應(yīng)用程序Android應(yīng)用程序開發(fā)步驟如下:第一步:啟動Eclipse,創(chuàng)建HelloAndroid項目。打開Android工程向?qū)В篎ile→New→Project…︱Android→AndroidProject或File→New→Other…︱Android→AndroidProject進入Android工程向?qū)υ捒?,如圖1-11。在對話框的Projectname文本框中填入項目名稱HelloAndroid,依次在項目界面中填入必要的信息,單擊finish按鈕,則完成了我們的第一個項目創(chuàng)建。注意:工程名稱必須唯一,不能與已有的工程重名,應(yīng)用程序名稱,即Android程序在手機中顯示的名稱,顯示在手機的頂部;包名稱是包的命名空間,需遵循Java包的命名方法,由兩個或多個標識符組成,中間用點隔開,為了包名稱的唯一性,可以采用反寫電子郵件地址的方式;創(chuàng)建Activity是個可選項,如需要自動生成一個Activity的代碼文件,則選擇該項。Activity的名稱與應(yīng)用程序的名稱不同,但為了簡潔,可以讓他們相同,表示這個Activity是Android程序運行時首先顯示給用戶的界面。應(yīng)用程序版本號是可選項,可以填所選擇API版本的版本號。1.3第一個Android應(yīng)用程序圖1-11Android工程向?qū)υ捒驁D項目名稱應(yīng)用程序的Activity名稱應(yīng)用程序包名應(yīng)用程序名稱選擇API版本應(yīng)用程序版本號1.3第一個Android應(yīng)用程序第二步:調(diào)試項目。在HelloAndroid項目上,鼠標右鍵單擊,則出現(xiàn)運行項目菜單選項,選擇RunAs-

AndroidApplication,如圖1-12。系統(tǒng)將自動啟動虛擬設(shè)備,并將應(yīng)用程序在虛擬設(shè)備中運行。觀察虛擬設(shè)備屏幕,將顯示我們開發(fā)的第一個Android應(yīng)用程序項目界面,如圖1-13。注意,第一次啟動模擬器所用時間較長,一般3到5分鐘。1.3第一個Android應(yīng)用程序圖1-12運行項目菜單選項圖

圖1-13HelloAndroid運行示意圖1.3第一個Android應(yīng)用程序圖1-14HelloAndroid項目的目錄結(jié)構(gòu)圖1.3第一個Android應(yīng)用程序src目錄中存放的是該項目的源文件,所有允許用戶修改的java文件和用戶自己添加的java文件,都保存在這個目錄中。gen目錄下的文件是ADT自動生成的,并不需要人為地去修改,實際上該目錄下只定義了一個R.java文件,該文件相當于項目的字典,項目中所涉及到得用戶界面、字符串、圖片、聲音等資源都會在該類中創(chuàng)建其唯一的ID編號,這些編號為整形,以十六進制自動生成。當項目中使用這些資源時,會通過該類得到資源的引用。Android1.6目錄中存放的是支持該項目的JAR包,同時還包含項目打包是需要的META—INF目錄。assets目錄用于存放項目相關(guān)的資源文件,例如文本文件等。此目錄中的資源不能夠被R.java文件索引,因此只能以字節(jié)流形式進行讀取,一般情況下為空。1.3第一個Android應(yīng)用程序res目錄用于存放應(yīng)用程序中經(jīng)常使用的資源文件,包括圖片、聲音、布局文件及參數(shù)描述文件等,包括多個目錄,其中以drawable開頭的三個文件夾用于存儲.png、.9.png、.jpg等圖片資源,layout文件夾存放的是應(yīng)用程序的布局文件,raw用于存放應(yīng)用程序所用到得聲音文件,values存放的則是所有XML格式的資源描述文件,例如字符串資源的描述文件strings.xml、樣式的描述文件styles.xml、顏色描述文件colors.xml、尺寸描述文件dimens.xml以及數(shù)組描述文件arrays.xml等。perties文件為項目配置文件,不需要人為改動,系統(tǒng)會自動對其進行管理。文件里面記錄了Android工程的相關(guān)設(shè)置,例如編譯目標和apk設(shè)置等。如果需要更改其中的設(shè)置,必須通過右鍵單擊工程名稱,在彈出的快捷菜單中選擇Properties選項修改。1.3第一個Android應(yīng)用程序AndroidManifest.xml文件為應(yīng)用程序的系統(tǒng)配置文件也叫清單文件。該文件中包含了Android系統(tǒng)運行Android程序前所必須掌握的重要信息,這些信息包括應(yīng)用程序名稱、圖標、包名稱、模塊組成、授權(quán)和SDK最低版本等。而且每個Android程序必須在根目錄下包含一個AndroidManifest.xml文件。下面我們看一個AndroidManifest.xml文件的基本格式:1.3第一個Android應(yīng)用程序<?xmlversion="1.0"encoding="utf-8"?><!—在根元素里面定義命名空間--><manifestxmlns:android="/apk/res/android"package="xsc.text"<!—定義應(yīng)用程序包名-->android:versionCode="1"<!—定義應(yīng)用程序版本號-->android:versionName="1.0"><!—定義應(yīng)用程序版本名稱--><!—定義應(yīng)用程序的圖標和標簽名稱--><applicationandroid:icon="@drawable/icon"android:label="@string/app_name"><!—聲明需要顯示的Activity類名和標簽名稱--><activityandroid:name=".HelloAndroidActivity"android:label="@string/app_name"><intent-filter><!—定義過濾器--><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity></application><uses-sdkandroid:minSdkVersion="4"/><!—定義版本號--></manifest>第一個Android應(yīng)用程序在Andr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論