《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門_第1頁(yè)
《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門_第2頁(yè)
《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門_第3頁(yè)
《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門_第4頁(yè)
《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門《Android項(xiàng)目驅(qū)動(dòng)式開(kāi)發(fā)教程》第一章開(kāi)發(fā)入門1項(xiàng)目任務(wù):通過(guò)學(xué)習(xí)Android相關(guān)歷史及開(kāi)發(fā)環(huán)境的搭建,完成第一個(gè)簡(jiǎn)單應(yīng)用程序的設(shè)計(jì)與開(kāi)發(fā),并理解Android項(xiàng)目中各個(gè)文件及目錄的功能。

2項(xiàng)目要求:掌握Android開(kāi)發(fā)環(huán)境的搭建方法。在Eclipse軟件上設(shè)計(jì)并運(yùn)行自己的第一個(gè)程序。了解Android項(xiàng)目的結(jié)構(gòu)及各個(gè)文件的功能。掌握Android系統(tǒng)四大組件的基本功能。1.1Android的發(fā)展及歷史1.1.1Android系統(tǒng)簡(jiǎn)介Android是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),它主要應(yīng)用于便攜設(shè)備。Android股份有限公司于2003年在美國(guó)加州成立,在2005年被Google收購(gòu)。2012年的數(shù)據(jù)顯示,僅正式推出四年操作系統(tǒng)的Android已經(jīng)超越稱霸十年的諾基亞Symbian系統(tǒng),2011年后已經(jīng)和蘋果IOS系統(tǒng)一起,躍居成為全球最受歡迎的智能手機(jī)平臺(tái)之一。Android一詞最早出現(xiàn)于法國(guó)作家利爾亞當(dāng)(AugusteVilliersdel"Isle-Adam)在1886年發(fā)表的科幻小說(shuō)《未來(lái)夏娃》(L"èvefuture)中。他將外表像人的機(jī)器起名為Android,于是就有了這個(gè)可愛(ài)的小機(jī)器人。

1.1Android的發(fā)展及歷史Android1.1

是在2008年9月發(fā)布的第一款A(yù)ndroid系統(tǒng),2008年9月22日,美國(guó)運(yùn)營(yíng)商德國(guó)T-Mobile在紐約正式發(fā)布第一款A(yù)ndroid手機(jī)——T-MobileG1。該款手機(jī)為臺(tái)灣宏達(dá)電(HTC)代工制造,是世界上第一部使用Android操作系統(tǒng)的手機(jī),支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbit/s,并支持Wi-Fi。Android1.5操作系統(tǒng)代號(hào)Cupcake(紙杯蛋糕),發(fā)布時(shí)間為2009年4月30日,以甜品命名的系統(tǒng)是從Android1.5開(kāi)始,該系統(tǒng)主要的更新在于采用了WebKit技術(shù)的瀏覽器,它支持在頁(yè)面中進(jìn)行復(fù)制/粘貼以及搜索等功能;系統(tǒng)還支持立體藍(lán)牙耳機(jī)連接,改善了自動(dòng)配備的性能,使其更加穩(wěn)定。

1.1Android的發(fā)展及歷史Android1.6操作系統(tǒng)發(fā)布時(shí)間為2009年9月15日,該系統(tǒng)代號(hào)Donut(甜甜圈),主要更新是支持更高的屏幕分辨率,支持OpenCore2引擎;支持CDMA網(wǎng)絡(luò)以及優(yōu)化拍照程序。Android2.0系統(tǒng)發(fā)布時(shí)間為2009年10月26日,隨后的升級(jí)版、Android2.1均稱為Eclair(松餅),該系統(tǒng)優(yōu)化了硬件支持,支持更高的屏幕分辨率;系統(tǒng)界面也發(fā)生了變化,運(yùn)行更流暢;支持HTML5。

1.1Android的發(fā)展及歷史Android2.2操作系統(tǒng)發(fā)布時(shí)間為2010年5月20日,與隨后的升級(jí)版統(tǒng)稱為Froyo(凍酸奶)。該系統(tǒng)主要是對(duì)系統(tǒng)進(jìn)行優(yōu)化,增加了App2Sd功能。

Android2.3操作系統(tǒng)發(fā)布時(shí)間為2010年12月7日,該系統(tǒng)代號(hào)為Gingerbread(姜餅),這也是目前國(guó)內(nèi)市場(chǎng)占有率最高的系統(tǒng)。該系統(tǒng)優(yōu)化了系統(tǒng)界面,使其操作更加流暢;加入復(fù)制/粘貼功能;支持前置攝像頭以及NFC技術(shù)。

1.1Android的發(fā)展及歷史Android3.0/3.1/3.2操作系統(tǒng)是谷歌在2011年中發(fā)布的,3.X系列的版本統(tǒng)稱為Honeycomb(蜂巢)。這一系列的更新主要是針對(duì)平板設(shè)備,讓Android系統(tǒng)可以更好的支持平板。在2011年10月19日,Google發(fā)布了全新的Android4.0操作系統(tǒng),系統(tǒng)代號(hào)為IceCreamSandwich(冰激凌三明治),該系統(tǒng)將手機(jī)與平板設(shè)備進(jìn)行整合,擁有全新的UI界面以及Linus內(nèi)核,支持虛擬按鍵。Android4.1操作系統(tǒng)發(fā)布時(shí)間為2012年6月28日,系統(tǒng)代號(hào)為JellyBean(果凍豆),Android4.1操作系統(tǒng)引入了三重緩沖顯示技術(shù),讓界面更加流暢,功能方面也有增加。1.1Android的發(fā)展及歷史1.1.3Android系統(tǒng)框架架構(gòu)1.Linux內(nèi)核(Kernel) Android的核心系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。1.1Android的發(fā)展及歷史2.系統(tǒng)運(yùn)行庫(kù)(Libraries)程序庫(kù)Android包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過(guò)Android應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù)。以下是一些核心庫(kù):媒體庫(kù)、SurfaceManager、LibWebCore、SGL、3Dlibraries、FreeType、SQLite1.1Android的發(fā)展及歷史

Android運(yùn)行庫(kù) Android包括了一個(gè)核心庫(kù),該核心庫(kù)提供了Java編程語(yǔ)言核心庫(kù)的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。Dalvik虛擬機(jī)執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由Java編譯器編譯,然后通過(guò)SDK中的“dx”工具轉(zhuǎn)化成.dex格式,并由虛擬機(jī)執(zhí)行。Dalvik虛擬機(jī)依賴于Linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。1.1Android的發(fā)展及歷史

3.應(yīng)用程序框架(ApplicationFramework)開(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ī)制也使用戶可以方便的替換程序組件。1.1Android的發(fā)展及歷史隱藏在每個(gè)應(yīng)用程序后面的是一系列的服務(wù)和系統(tǒng),其中包括:視圖(Views)內(nèi)容提供器(ContentProviders)資源管理器(ResourceManager)通知管理器(NotificationManager)活動(dòng)管理器(ActivityManager)1.1Android的發(fā)展及歷史4.應(yīng)用程序(Applications)Android系統(tǒng)會(huì)和一個(gè)核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括Email客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯(lián)系人管理程序等。所有的應(yīng)用程序都是用Java編寫的,另外我們從網(wǎng)絡(luò)下載的,或者我們自己開(kāi)發(fā)的應(yīng)用程序也都屬于這一部分。1.1Android的發(fā)展及歷史1.2.1Android開(kāi)發(fā)簡(jiǎn)介Android(安卓)是Google開(kāi)發(fā)的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)。Android的應(yīng)用程序一般使用Java語(yǔ)言編寫,當(dāng)然也有NDK的開(kāi)發(fā)方式,會(huì)涉及C/C++。在開(kāi)發(fā)過(guò)程中,有眾多的樣本應(yīng)用和開(kāi)源應(yīng)用提供下載,并且IDE(集成開(kāi)發(fā)環(huán)境)使用Eclipse,這種集成開(kāi)發(fā)環(huán)境有豐富的源代碼模板,用戶可以在源碼的基礎(chǔ)上進(jìn)行程序的編寫,這使得程序開(kāi)發(fā)的難度大為降低。1.2Android開(kāi)發(fā)環(huán)境搭建1.2.2安裝JDK

進(jìn)入網(wǎng)址,如圖所示:1.2Android開(kāi)發(fā)環(huán)境搭建作為開(kāi)發(fā)人員,這里選擇JDK而不是JRE,因此當(dāng)單擊JDK的圖標(biāo)并選擇相應(yīng)版本后,JDK就開(kāi)始下載了。32位的Windows系統(tǒng)用戶點(diǎn)擊jdk-7u7-windows-i586.exe,64位的Windows系統(tǒng)用戶點(diǎn)擊jdk-7u7-windows-x64.exe。下載后可以得到.exe的可執(zhí)行程序,這是一個(gè)安裝程序,用戶只需要運(yùn)行該程序就可以完成JDK的安裝。當(dāng)然用戶在安裝過(guò)程中可以指定安裝的路徑,但是一般推薦使用默認(rèn)路徑(一直單擊下一步)安裝即可,最后檢查是否安裝成功。1.2Android開(kāi)發(fā)環(huán)境搭建單擊計(jì)算機(jī)的“開(kāi)始”,選擇“運(yùn)行”,在出現(xiàn)的對(duì)話框中輸入“CMD”命令,打開(kāi)CMD窗口,在CMD窗口中輸入“java–version”,如圖所示,如果屏幕出現(xiàn)下面的代碼信息,說(shuō)明JDK已經(jīng)安裝成功了。如果不成功,通常是環(huán)境變量設(shè)置不正確,現(xiàn)在Windows平臺(tái)的JDK都是做好的安裝包,一般正常安裝后都沒(méi)有問(wèn)題。1.2Android開(kāi)發(fā)環(huán)境搭建1.2.3安裝Eclipse

第一次安裝Android開(kāi)發(fā)平臺(tái),現(xiàn)有一個(gè)非常方便的方法,在android開(kāi)發(fā)網(wǎng)站()上直接下載一個(gè)ADT綜合包文件(adt-bundle-windows-x86-20130219.zip),這個(gè)包文件內(nèi)有必要的AndroidSDK的組件和一個(gè)內(nèi)置了ADT(AndroidDevelopmentTools)插件的新版本Eclipse。下載完成后,解壓縮到一個(gè)目錄下,打開(kāi)其中的Eclipse目錄,找到eclipse.exe這個(gè)文件發(fā)送到桌面后,就可以直接開(kāi)發(fā)程序了(可以省略下面的Eclipse安裝、SDK下載和配置以及ADT安裝三個(gè)步驟)。

1.2Android開(kāi)發(fā)環(huán)境搭建如果你已經(jīng)安裝了部分開(kāi)發(fā)工具,或者你想一步一步的進(jìn)行安裝配置,具體的方法如下面所述。Eclipse下載的主頁(yè)面為::///downloads/,如圖所示,Eclipse的頁(yè)面默認(rèn)版本為Windows平臺(tái),如果想選擇其他平臺(tái)例如Linux平臺(tái),鼠標(biāo)點(diǎn)擊右上角的下拉框進(jìn)行選擇(共三種平臺(tái)Windows、Linux和MacOSX)。默認(rèn)版本為當(dāng)前正式最新發(fā)布的正式版本3.7.2,代號(hào)Indigo。如果想下載以前的老版本,可以鼠標(biāo)點(diǎn)擊左上方的OlderVersions鏈接去下載老版本。這里列表列出了多個(gè)版本,是因?yàn)镋clipse具有良好的擴(kuò)展性,因此很多可用于Eclipse的應(yīng)用插件被開(kāi)發(fā)出來(lái),為了節(jié)省用戶下載相關(guān)插件的工作量,所以對(duì)目前常用的幾類開(kāi)發(fā)插件進(jìn)行了打包處理。1.2Android開(kāi)發(fā)環(huán)境搭建這里稍微介紹一下:EclipseClassic是標(biāo)準(zhǔn)的Eclipse版本,只包括基本的插件,不包括相關(guān)的特殊插件,通常稱之為最干凈的Eclipse版本,一般建議下載并安裝此版本。下載時(shí),仍需注意Windows的版本問(wèn)題,建議和JDK版本相匹配。下載后的文件是zip壓縮格式,解壓縮后就可以直接運(yùn)行eclipse.exe這個(gè)可執(zhí)行文件,因?yàn)樗?jīng)常使用,所以建議在桌面上建立一個(gè)Eclipse快捷方式。1.2Android開(kāi)發(fā)環(huán)境搭建1.2.4配置Android開(kāi)發(fā)環(huán)境在Eclipse中配置Android開(kāi)發(fā)環(huán)境主要包括ADT(AndroidDevelopmentTools)和AndroidSDK(AndroidDevelopmentKit)兩部分。首先進(jìn)行AndroidSDK的下載,下載網(wǎng)址是。如圖所示,進(jìn)行下載的設(shè)置。1.2Android開(kāi)發(fā)環(huán)境搭建

點(diǎn)擊“DownloadtheSDKforWindows”按鈕進(jìn)行下載,得到安裝程序。下載后按步驟進(jìn)行安裝,選擇合適的目錄。安裝結(jié)束后,會(huì)出現(xiàn)SDK更新頁(yè)面,建議選擇SDK4.1(API16)版本和(API10)的相關(guān)目錄進(jìn)行更新,建議Android開(kāi)發(fā)文檔(DocumentationforAndroid)和例程(SampleforSDK)一定要安裝,這些內(nèi)容可以為用戶提供很多參考。這個(gè)更新界面也可以在Eclipse中安裝好ADT插件后,利用打開(kāi)SDK管理器的方法打開(kāi),安裝完SDK后,我們必須要把SDK關(guān)聯(lián)到Eclipse開(kāi)發(fā)環(huán)境中去,也就是讓在Eclipse中開(kāi)發(fā)的項(xiàng)目能找到所用的SDK相關(guān)文件。

1.2Android開(kāi)發(fā)環(huán)境搭建

從Eclipse的菜單欄中選擇“Window”→“Preferences”命令,打開(kāi)“Preferences”窗口,如圖1-7所示。單擊左邊的“Android”,然后再單擊“Browse”按鈕設(shè)置AndroidSDK的位置,即前面所提到的AndroidSDK安裝后的位置,如圖所示,即完成了SDK的路徑設(shè)置過(guò)程,即關(guān)聯(lián)過(guò)程。

1.2Android開(kāi)發(fā)環(huán)境搭建

這里有個(gè)小經(jīng)驗(yàn),建議大家把Eclipse文件夾和SDK文件夾都放到D盤的同一個(gè)目錄(比如取名為android)下,如圖所示。另外,路徑名稱(包括項(xiàng)目名、開(kāi)發(fā)所涉及的文件夾名等)中不建議出現(xiàn)中文字符,避免開(kāi)發(fā)時(shí)發(fā)生意想不到的錯(cuò)誤。

1.2Android開(kāi)發(fā)環(huán)境搭建然后進(jìn)行ADT安裝:在://developer.android/sdk/eclipse-adt.html#installing中給出了如何安裝的詳細(xì)說(shuō)明,其實(shí)核心思想就是一個(gè)如何設(shè)置ADT的安裝鏈接。ADT的安裝有離線下載安裝和在線安裝兩種方法,這里介紹在線安裝的方法。

1.2Android開(kāi)發(fā)環(huán)境搭建

在Eclipse的菜單中選擇“Help”->“InstallNewSoftware”命令,如圖1-8所示,單擊右上方的“Add”按鈕,在Location欄目中加入ADT的下載地址:,Location上方的Name欄中可以填寫android。然后點(diǎn)擊“OK”按鈕。如圖所示:

1.2Android開(kāi)發(fā)環(huán)境搭建

如果成功訪問(wèn)Google的相關(guān)服務(wù)器,則會(huì)顯示獲取的ADT插件信息,使用鼠標(biāo)選中其中的復(fù)選框,建議全部進(jìn)行選擇。鼠標(biāo)點(diǎn)擊“Next”按鈕,會(huì)顯示ADT的詳細(xì)情況,繼續(xù)用鼠標(biāo)點(diǎn)擊“Next”按鈕,會(huì)出現(xiàn)詢問(wèn)用戶是否同意使用License,缺省的情況是不同意,此時(shí)下邊的“Finish”按鈕為灰;如果用戶同意使用License,則選中同意License選項(xiàng),然后點(diǎn)擊“Finish”按鈕,就進(jìn)入下載安裝狀態(tài)。

1.2Android開(kāi)發(fā)環(huán)境搭建

下載安裝成功后會(huì)提示重啟Eclipse,點(diǎn)擊“RestartNow”按鈕即可重啟Eclipse。重新啟動(dòng)Eclipse后,狀態(tài)欄上會(huì)增加兩個(gè)圖標(biāo),一個(gè)是SDK管理器,一個(gè)是AVD管理器,這兩個(gè)圖標(biāo)和Windows菜單中的兩個(gè)子菜單功能完全系統(tǒng),如圖所示,至此,Android開(kāi)發(fā)環(huán)境搭建工作就全部完成了。

1.2Android開(kāi)發(fā)環(huán)境搭建1.2.5創(chuàng)建AVD當(dāng)用戶在開(kāi)發(fā)Android程序,或者在完成一個(gè)Android程序之后,一般需要檢測(cè)一下程序運(yùn)行的結(jié)果,如果用戶沒(méi)有支持Android平臺(tái)的3G手機(jī),該如何測(cè)試呢?SDK為我們解決了這一問(wèn)題,在SDK中集成了Android虛擬設(shè)備AVD(AndroidVirtualDevice),利用AVD管理器,用戶可以創(chuàng)建各種模擬器(Emulator),并利用模擬器獲得跟真實(shí)手機(jī)基本相同的體驗(yàn)。但是在涉及一些手機(jī)硬件開(kāi)發(fā)(如藍(lán)牙、GPS、相機(jī)、NFC等)時(shí),模擬器就無(wú)法實(shí)現(xiàn)相關(guān)的硬件模擬功能,所以此時(shí)程序員必須配備具有對(duì)應(yīng)硬件功能的Android手機(jī),才能完成開(kāi)發(fā)任務(wù)。1.2Android開(kāi)發(fā)環(huán)境搭建

在Eclipse中創(chuàng)建AVD時(shí),首先需要利用AVD管理工具來(lái)創(chuàng)建一個(gè)AVD,點(diǎn)擊Eclipse工具欄上的AVDManager圖標(biāo),彈出如圖所示的對(duì)話框。

1.2Android開(kāi)發(fā)環(huán)境搭建這里顯示已經(jīng)有4個(gè)AVD模擬器,它們是作者平時(shí)使用的模擬器。用戶可根據(jù)項(xiàng)目需求選定目標(biāo)AVD,然后點(diǎn)擊start按鈕,就開(kāi)始啟動(dòng)選定的AVD。如果用戶需要建立一個(gè)新的AVD,首先點(diǎn)擊New按鈕,進(jìn)入創(chuàng)建界面如圖所示,輸入名稱“newavd”,Target選擇Android4.1,同時(shí)輸入模擬器SD的容量:256,注意單位為兆(MiB),SD的容量不建議給太大,如1G、2G等,因?yàn)槊看味嘟ㄒ粋€(gè)AVD,AVD安裝時(shí)所在的盤的剩余容量就會(huì)做相應(yīng)的減少,在一般的應(yīng)用開(kāi)發(fā)中,256M就足夠了。

1.2Android開(kāi)發(fā)環(huán)境搭建

上圖中的Hardware選項(xiàng),是對(duì)模擬器硬件方面的支持,可以增加一些設(shè)置,這里增加一個(gè)鍵盤支持的設(shè)置,即將來(lái)可以利用PC機(jī)的鍵盤來(lái)實(shí)現(xiàn)模擬器AVD鍵盤的輸入,方便程序員的調(diào)試。如圖所示,點(diǎn)擊“New”按鈕,在Property下拉列表框中選擇KeyBoardsupport選項(xiàng),單擊“OK”按鈕,在Keyboardsupport的值(Value)選項(xiàng)把no改為yes,如圖所示,即完成了對(duì)鍵盤支持的設(shè)置工作。

1.2Android開(kāi)發(fā)環(huán)境搭建

1.2Android開(kāi)發(fā)環(huán)境搭建

完成以上步驟后,點(diǎn)擊對(duì)話框下方的CreateAVD按鈕,就完成了AVD的創(chuàng)建工作。從圖中可以看出,增加了一個(gè)名稱為newavd的模擬器AVD。選中newavd后,單擊Start按鈕,即可啟動(dòng)最新創(chuàng)建完成的模擬器AVD。

1.2Android開(kāi)發(fā)環(huán)境搭建

第一次啟動(dòng)AVD會(huì)需要較長(zhǎng)的時(shí)間,實(shí)際開(kāi)發(fā)時(shí),建議大家不要頻繁關(guān)閉和重啟AVD。啟動(dòng)后的AVD如圖所示。在模擬器界面的左上角,有5554:newavd這個(gè)內(nèi)容,它所代表的含義是什么呢?每個(gè)模擬器都被綁定到“”這個(gè)IP地址上,而5554代表該模擬器所綁定的端口號(hào),也就是說(shuō),該模擬器的唯一標(biāo)識(shí)地址是“:5554”。同一臺(tái)PC中啟動(dòng)第二個(gè)模擬器所綁定的端口號(hào)是5556,端口號(hào)可以作為模擬器的手機(jī)號(hào)使用,在兩個(gè)或多個(gè)模擬器之間可以通過(guò)端口號(hào)進(jìn)行通信,如撥打,發(fā)送短信等等。

Android手機(jī)由于品牌、型號(hào)眾多,所以屏幕的尺寸也有很多。屏幕尺寸越大,可視范圍就越大,同時(shí)由于所有Android手機(jī)均為可觸摸屏幕,可觸摸區(qū)域即為操作區(qū)域,所以屏幕越大,可操作區(qū)域也越大。在使用手機(jī)玩游戲和觀看視頻等方面,大尺寸手機(jī)優(yōu)勢(shì)明顯。此表給出了當(dāng)前流行的一些手機(jī)屏幕的分辨率。

1.2Android開(kāi)發(fā)環(huán)境搭建

Lowdensity(120),ldpiMediumdensity(160),mdpiHighdensity(240),hdpiNormalscreenWQVGA400(240×400)WQVGA432(240×432)HVGA(320×480)---Largescreen---WVGA800*(480×800)WVGA854*(480×854)WVGA800(480×800)WVGA854(480×854)

模擬器左側(cè)的部分為手機(jī)桌面,每次啟動(dòng)模擬,手機(jī)都是處于鎖定狀態(tài)的,通過(guò)單擊鼠標(biāo)圖標(biāo)并拖動(dòng)即可解鎖。模擬手機(jī)的默認(rèn)語(yǔ)言是英語(yǔ),如果希望在手機(jī)上顯示中文等語(yǔ)言,需要對(duì)模擬器的語(yǔ)言設(shè)置進(jìn)行修改。另外時(shí)間是國(guó)際標(biāo)準(zhǔn)時(shí)間,和北京時(shí)間有8個(gè)小時(shí)的時(shí)差,如果需要修改成北京時(shí)間,則可以在模擬器設(shè)置選項(xiàng)中進(jìn)行系統(tǒng)的語(yǔ)言及時(shí)間設(shè)置,由于這些設(shè)置和真實(shí)手機(jī)完全相同,這里就不多介紹了,同學(xué)們可以自己摸索。

1.2Android開(kāi)發(fā)環(huán)境搭建1.3第一個(gè)應(yīng)用程序1.3.1創(chuàng)建第一個(gè)應(yīng)用程序項(xiàng)目Project搭建好開(kāi)發(fā)環(huán)境后,下面在Android平臺(tái)上開(kāi)發(fā)并運(yùn)行第一個(gè)項(xiàng)目HelloAndroid。首先啟動(dòng)Eclipse,打開(kāi)新建項(xiàng)目的向?qū)?,一種方式是“File”->“New”->“Project”…|“Android”->“AndroidApplicationProject”,另一種方式是“File”->“New”->“AndroidApplicationProject”,執(zhí)行結(jié)果都是相同的,如圖所示:1.3第一個(gè)應(yīng)用程序當(dāng)打開(kāi)新建項(xiàng)目向?qū)Ш?,出現(xiàn)對(duì)話框如圖所示,首先需要確定應(yīng)用名稱ApplicationName、項(xiàng)目名稱ProjectName、包名PackageName以及最低支持版本等信息。1.3第一個(gè)應(yīng)用程序應(yīng)用名稱是Android程序在手機(jī)中顯示的名稱,這里采用HelloAndroid作為名稱,當(dāng)然也可以使用如“我的第一個(gè)Android應(yīng)用程序”這樣包含中文的應(yīng)用名稱。工程名和包名必須唯一,不能與已有工程的工程名和包名重名。包名是包的命名空間,需要遵循Java中包的命名規(guī)則。包名由2個(gè)或多個(gè)標(biāo)識(shí)符組成,中間用點(diǎn)隔開(kāi)。Java包的名字都是由小寫單詞組成,每一名Java程序員都可以編寫屬于自己的Java包。為了保障每個(gè)Java包命名的唯一性,在最新的Java編程規(guī)范中,要求程序員在自己定義的包名之前加上唯一的前綴,由于互聯(lián)網(wǎng)上的域名是不會(huì)重復(fù)的,所以程序員一般采用自己在互聯(lián)網(wǎng)上的域名作為自己程序包的唯一前綴。例如:,一般公司命名則會(huì)以“com.公司名.項(xiàng)目名”的方式命名。Buildsdk是目前開(kāi)發(fā)項(xiàng)目所選用的SDK版本,它默認(rèn)是Android4.1(API16),miniSDK則是程序開(kāi)發(fā)后所支持的最低版本,當(dāng)前選擇為API9:Android2.3。1.3第一個(gè)應(yīng)用程序設(shè)置好以上信息后,單擊“Next”按鈕,進(jìn)入啟動(dòng)圖標(biāo)的設(shè)置界面,這里可以設(shè)置啟動(dòng)圖標(biāo)的顯示圖片及顏色,本例題均采用默認(rèn)值,然后直接單擊“Next”按鈕,進(jìn)入創(chuàng)建Activity的對(duì)話框。在Activity界面仍舊采用默認(rèn)值,單擊“Next”按鈕后進(jìn)入創(chuàng)建新的空白Activity的對(duì)話框。在這個(gè)對(duì)話框中需要設(shè)置ActivityName和LayoutName。ActivityName就是項(xiàng)目中Java源代碼的文件名,也就是類名,ActivityName的命名必須遵循Java類名的命名規(guī)則。LayoutName就是項(xiàng)目中布局文件的名稱,注意不能有大寫字母出現(xiàn)。本頁(yè)也可以采用默認(rèn)值,直接點(diǎn)擊Finish按鈕后結(jié)束項(xiàng)目的創(chuàng)建。1.3第一個(gè)應(yīng)用程序項(xiàng)目向?qū)ё詣?dòng)創(chuàng)建完成了項(xiàng)目所需要的基礎(chǔ)文件及目錄結(jié)構(gòu),用戶能看到如圖所示的內(nèi)容。單擊“run”圖標(biāo)按鈕,運(yùn)行此程序,選擇Runas:AndroidApplication后,啟動(dòng)選定的AVD,第一次啟動(dòng)AVD時(shí)間稍長(zhǎng),啟動(dòng)后模擬器進(jìn)入的是鎖定狀態(tài),必須解鎖后才能運(yùn)行程序,第一個(gè)新建項(xiàng)目的界面如圖所示。1.3第一個(gè)應(yīng)用程序1.3.2修改顯示內(nèi)容打開(kāi)項(xiàng)目中res->values->strings.xml文件,如圖所示,對(duì)其中的name=“hello_world”所對(duì)應(yīng)的內(nèi)容部分進(jìn)行修改,修改為“這是我的第一個(gè)Android應(yīng)用程序”,保存后再次運(yùn)行程序,即可看到了如圖所示的界面。1.4項(xiàng)目框架分析1.4.1HelloAndroid項(xiàng)目結(jié)構(gòu)在建立HelloAndroid程序的過(guò)程中,Android系統(tǒng)在Eclipse中會(huì)自動(dòng)建立一些目錄和文件,一個(gè)項(xiàng)目的框架如圖所示。其中有些文件有著固定的作用,有的允許修改,有的不允許修改。了解這些文件及目錄的作用,對(duì)Android應(yīng)用程序開(kāi)發(fā)有著非常重要的作用,下面對(duì)這些文件分別進(jìn)行介紹。1.4項(xiàng)目框架分析src/是用于存放開(kāi)發(fā)人員自己編寫的Java源代碼的包。gen/該目錄不需要開(kāi)發(fā)人員維護(hù),但它又是非常重要的目錄。該目錄用來(lái)存放由Android開(kāi)發(fā)工具所生成的目錄。該目錄下的所有文件都不是用戶創(chuàng)建的,而是由ADT自動(dòng)生成的。該目錄下的R.java文件非常重要,后面會(huì)詳細(xì)的介紹。android4.1/存放Android自身的jar包。1.4項(xiàng)目框架分析AndroidDependencies/是android開(kāi)發(fā)過(guò)程中一些依賴的包,它也是新版本的ADT才增加的目錄。它修改了第三方j(luò)ar的導(dǎo)入方式,之前可以在工程里面做關(guān)聯(lián),并在工程上自動(dòng)添加ReferenceLibrary。在新版本的ADT環(huán)境下,只需要在工程目錄下新建libs文件夾(注意是libs不是lib),然后將第三方的jar復(fù)制進(jìn)去,Eclipse就會(huì)自動(dòng)將這個(gè)jar添加到AndroidDependencies文件夾下,而不必再通過(guò)BuildPath去修改,也不需要ReferenceLibrary。另外,如果多個(gè)工程有關(guān)聯(lián)的話,比如A工程設(shè)置為IsLibaray,B工程要引入A工程的時(shí)候,也會(huì)自動(dòng)將A工程編譯生成的jar放到AndroidDependencies文件夾下。1.4項(xiàng)目框架分析assets/該目錄用來(lái)存放應(yīng)用中用到的類似于視頻文件、MP3等一些媒體文件,此目錄中的資源不能夠被R.java文件索引,一般為空。res/res是resource的縮寫。我們稱該目錄為資源目錄。該目錄可以存放一些圖標(biāo)、界面文件、應(yīng)用中用到的文字信息等內(nèi)容。AndroidManifest.xml文件是功能清單文件,該文件列出了應(yīng)用中所使用的所有組件,如“activity”,以及后面要學(xué)習(xí)的廣播接收者、服務(wù)等組件。perties文件一般也不需要手工更改。該文件存放了項(xiàng)目對(duì)應(yīng)的一些環(huán)境配置,如應(yīng)用要求運(yùn)行的最低Android版本。1.4項(xiàng)目框架分析1.4.2資源res目錄資源是Android應(yīng)用程序不可或缺的部分。資源中存放了會(huì)被應(yīng)用到程序里面的一些外部元素,比如圖片、音頻、視頻、文本字符串、布局、主題等。每個(gè)Android應(yīng)用程序包含一個(gè)資源目錄(res/)和資產(chǎn)目錄(assets/),但資產(chǎn)不經(jīng)常被使用,因?yàn)樗鼈兊膽?yīng)用很少,僅在需要讀取原始字節(jié)流時(shí)才需要保存數(shù)據(jù)在assets/目錄。Res/和assets/目錄均在Android項(xiàng)目樹(shù)的頂端,和源代碼目錄(src/)處在同一級(jí)上。資源和資產(chǎn)從表面上看沒(méi)多大區(qū)別,不過(guò)總體上來(lái)說(shuō),在存儲(chǔ)外部?jī)?nèi)容時(shí)資源用得更多。他們之間真正的區(qū)別在于任何放置在資源目錄里的內(nèi)容都可以通過(guò)應(yīng)用程序的R類訪問(wèn),這是被Android編譯過(guò)的。而任何存放在資產(chǎn)目錄里的內(nèi)容都將保持它的原始文件格式,為了讀取它,必須使用AssetManager以字節(jié)流的方式進(jìn)行讀取。所以保持文件和數(shù)據(jù)在資源中(res/)中會(huì)更方便訪問(wèn)。1.4項(xiàng)目框架分析資源將最終被編譯到APK文件里,Android創(chuàng)建了一個(gè)被稱為R的類,因此在Java代碼中可以通過(guò)它關(guān)聯(lián)到對(duì)應(yīng)的資源文件。R類中所包含的子類的命名由res/目錄下的文件夾名稱所決定。res/目錄下有4個(gè)dawable文件夾——drawable-*dpi,它們的區(qū)別只是將圖標(biāo)按分辨率高低來(lái)放入不同的目錄。drawable-hdpi用來(lái)存放高分辨率的圖標(biāo),drawable-mdpi用來(lái)存放中等分辨率的圖標(biāo),drawable-ldpi用來(lái)存放低分辨率的圖標(biāo)。程序運(yùn)行時(shí)可以根據(jù)手機(jī)分辨率的高低選取相應(yīng)目錄下的圖片。如果開(kāi)發(fā)程序時(shí)不準(zhǔn)備使用過(guò)多圖片,那么也可以只準(zhǔn)備一張圖片將其放入四個(gè)目錄的任何一個(gè)中去。1.4項(xiàng)目框架分析res/目錄下有1個(gè)layout文件夾,里面存放的是項(xiàng)目涉及的布局文件,本例中的布局文件是ADT默認(rèn)自動(dòng)創(chuàng)建的activity_main.xml文件,布局文件利用XML語(yǔ)言來(lái)描述用戶界面。代碼的第8行說(shuō)明在界面中使用TextView控件,TextView控件主要用來(lái)顯示字符串文本。代碼的第8行到14行分別對(duì)此文本控件的長(zhǎng)、寬、顯示位置以及顯示內(nèi)容等做了描述。第13行中@string/hello_world是對(duì)資源的引用,在上一個(gè)小節(jié)中,曾經(jīng)嘗試修改了這個(gè)字符串的內(nèi)容,使界面中顯示的內(nèi)容發(fā)生了變化,現(xiàn)在可以再次體會(huì)一下這個(gè)操作。1.4項(xiàng)目框架分析在Eclipse中,雙擊“activity_main.xml”文件,在編輯區(qū)出現(xiàn)如圖所示的界面,其中顯示的是GraphicalLayout圖形界面的預(yù)覽效果。可以點(diǎn)擊Layout選項(xiàng)卡旁邊的activity_main.xml,切換到代碼編輯模式。1.4項(xiàng)目框架分析res/目錄下有1個(gè)values文件夾,里面存放的strings.xml文件用來(lái)定義字符串和數(shù)值,在Activity中使用getResources().getString(resourceId)或getResources().getText(resourceId)取得資源。如strings.xml文件代碼所示,它一共聲明了4個(gè)string標(biāo)簽,每個(gè)string標(biāo)簽對(duì)應(yīng)聲明一個(gè)字符串,如“name="hello_world">這是我的第一個(gè)Android程序”中name屬性指定其引用名,在程序中調(diào)用此引用名(hello_word)就可以使用后面的值(實(shí)際的字符串:這是我的第一個(gè)Android程序)。

1<resources> 2<stringname="app_name">HelloAndroid</string> 3<stringname="hello_world">這是我的第一個(gè)Android程序</string> 4<stringname="menu_settings">Settings</string> 5<stringname="title_activity_main">MainActivity</string> 6</resources>1.4項(xiàng)目框架分析1.4.3gen/目錄下的R.java文件R.java文件中默認(rèn)有attr、drawable、layout、string等多個(gè)靜態(tài)內(nèi)部類,每個(gè)靜態(tài)內(nèi)部類分別對(duì)應(yīng)一種資源,如layout靜態(tài)內(nèi)部類對(duì)應(yīng)layout中的界面文件,其中每個(gè)靜態(tài)內(nèi)部類中的靜態(tài)常量分別定義一條資源標(biāo)識(shí)符,如“publicstaticfinalintmain=0x7f030000”對(duì)應(yīng)的是layout目錄下的main.xml文件。具體的對(duì)應(yīng)關(guān)系如圖所示。1.4項(xiàng)目框架分析1.4.3gen/目錄下的R.java文件1.4項(xiàng)目框架分析在已經(jīng)理解了R.java文件中內(nèi)容的來(lái)源,也就是當(dāng)開(kāi)發(fā)者在res/目錄的任何一個(gè)子目錄中添加相應(yīng)類型的文件之后,ADT會(huì)在R.java文件中相應(yīng)的匿名內(nèi)部類中自動(dòng)生成一條靜態(tài)int類型的常量,對(duì)添加的文件進(jìn)行索引。如果在layout目錄下再添加一個(gè)新的界面,那么在publicstaticfinalclasslayout中也會(huì)添加相應(yīng)的一個(gè)靜態(tài)int常量。相反,當(dāng)我們?cè)賠es目錄下刪除任何一個(gè)文件,其在R.java中對(duì)應(yīng)的記錄會(huì)被ADT自動(dòng)刪除。再例如,在strings.xml添加一條記錄,那么在R.java的string內(nèi)部類中也會(huì)自動(dòng)增加一條記錄。如果發(fā)現(xiàn)R.java沒(méi)有及時(shí)主動(dòng)更新,可以點(diǎn)擊保存按鈕,然后選中R.java文件,單擊右鍵,選擇refresh進(jìn)行刷新,或者刪除R.java文件,并且refresh刷新,由系統(tǒng)自動(dòng)生成一個(gè)更新后的R.java文件。1.4項(xiàng)目框架分析R.java文件會(huì)給開(kāi)發(fā)程序帶來(lái)很大的方便,比如在程序代碼中使用“publicstaticfinalinticon=0x7f020000”可以找到對(duì)應(yīng)的icon.png這幅圖片,資源名稱一般與資源文件名相同(不包含擴(kuò)展名)。通過(guò)在代碼中使用資源ID可以實(shí)現(xiàn)在程序中引用資源。實(shí)現(xiàn)資源的引用有兩種方式,一種是在代碼中引用資源,通過(guò)[R.type.resource_name]方式,其中type代表資源類型,也就是R文件中的內(nèi)部類名稱,resource_name代表資源名稱。第二種方式是在資源文件XML中引用資源,此時(shí)一般使用格式@[package:]type/name。1.4項(xiàng)目框架分析R.java文件除了有自動(dòng)標(biāo)識(shí)資源的“索引”功能之外,還有另一個(gè)主要的功能,當(dāng)res目錄中的某個(gè)資源在應(yīng)用程序中沒(méi)有被使用到,在該應(yīng)用程序被編譯的時(shí)候系統(tǒng)就不會(huì)把對(duì)應(yīng)的資源編譯到這個(gè)應(yīng)用程序的APK包中,這樣可以節(jié)省Android手機(jī)的資源。1.4項(xiàng)目框架分析1.4.4AndroidManifest.xml介紹在根目錄中的每個(gè)應(yīng)用程序都有一個(gè)功能清單文件AndroidManifest.xml(一定是這個(gè)名字)。這個(gè)清單文件為Android系統(tǒng)提供了關(guān)于這個(gè)應(yīng)用程序的基本信息,系統(tǒng)在運(yùn)行任何程序代碼之前必須知道這些信息。其中包括了package中暴露的組件(activities、services等等),它們各自的實(shí)現(xiàn)類,以及各種能被處理的數(shù)據(jù)和啟動(dòng)位置。1.4項(xiàng)目框架分析AndroidManifest.xml主要包含以下功能:

命名應(yīng)用程序的Java應(yīng)用包,這個(gè)包名用來(lái)唯一標(biāo)識(shí)應(yīng)用程序;描述應(yīng)用程序的組件——活動(dòng)、服務(wù)、廣播接收者、內(nèi)容提供者;對(duì)實(shí)現(xiàn)每個(gè)組件和公布其功能(比如能處理哪些意圖消息)的類進(jìn)行命名。這些聲明使得Android系統(tǒng)了解這些組件以及它們?cè)谑裁礂l件下可以被啟動(dòng);決定應(yīng)用程序組件運(yùn)行在哪個(gè)進(jìn)程里面;

1.4項(xiàng)目框架分析聲明應(yīng)用程序所必須具備的權(quán)限,用以訪問(wèn)受保護(hù)的部分API,以及和其它應(yīng)用程序交互;聲明應(yīng)用程序其它的必備權(quán)限,用以組件之間的交互;列舉測(cè)試設(shè)備Instrumentation類,用來(lái)提供應(yīng)用程序運(yùn)行時(shí)所需的環(huán)境配置及其它信息,這些聲明只在程序開(kāi)發(fā)和測(cè)試階段存在,發(fā)布前將被刪除;聲明應(yīng)用程序所要求的AndroidAPI的最低版本級(jí)別;列舉application所需要鏈接的庫(kù);1.4項(xiàng)目框架分析程序中使用的所有組件都會(huì)在功能清單文件中被列出來(lái),所以程序員必須對(duì)此文件非常了解,并能夠進(jìn)行準(zhǔn)確的修改。AndroidManifest.xml是每個(gè)android程序中必須具備的文件。它位于整個(gè)項(xiàng)目的根目錄,描述了package中暴露的組件(activities,services,等等),他們各自的實(shí)現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動(dòng)位置。除了能聲明程序中的Activities、ContentProviders、Services和IntentReceivers以外,還能指定permissions和instrumentation(安全控制和測(cè)試)下面進(jìn)行對(duì)AndroidManifest.xml文件進(jìn)行具體的分析,manifest是根目錄,屬于第一層。1.4項(xiàng)目框架分析1<manifestxmlns:android="://schemas.android/apk/res/android"http://第一層次2package=".siso.hello"3android:versionCode="1"第1行代碼中xmlns:android定義了android的命名空間,一般為,這使得Android中各種標(biāo)準(zhǔn)屬性都能在文件中被使用,為大部分元素提供了數(shù)據(jù)。第2行代碼package=".siso.hello"指定本應(yīng)用程序中java主程序包的包名,它也是一個(gè)應(yīng)用進(jìn)程的默認(rèn)名稱。第3行代碼versionCode是給設(shè)備程序識(shí)別版本(升級(jí))用的,它必須是一個(gè)interger值,代表app更新過(guò)多少次,比如第一版一般為1,之后若要更新版本就設(shè)置為2、3等。1.4項(xiàng)目框架分析4android:versionName="1.0">5<uses-sdk//第二層次,描述androidsdk的版本信息6android:minSdkVersion="9"7android:targetSdkVersion="15"/>8<application//第二層次,聲明描述應(yīng)用程序的相關(guān)特征第4行代碼versionName是給用戶看的,用戶可以將自己的APP版本號(hào)設(shè)置為1.1版,后續(xù)更新版本設(shè)置為1.2、2.0版本等。第5行到第7行的功能是聲明SDK的版本信息,用API的級(jí)別(一個(gè)整數(shù))來(lái)說(shuō)明應(yīng)用程序會(huì)跟哪些Android平臺(tái)版本兼容。第8行到第20行聲明應(yīng)用程序相關(guān)的信息,一個(gè)AndroidManifest.xml中必須含有一個(gè)Application標(biāo)簽,這個(gè)標(biāo)簽聲明了每一個(gè)應(yīng)用程序的組件及其屬性(如icon,label,permission等)。1.4項(xiàng)目框架分析9android:icon="@drawable/ic_launcher"10android:label="@string/app_name"11android:theme="@style/AppTheme">第9行代碼android:icon用來(lái)聲明整個(gè)APP的圖標(biāo),圖片一般都放在drawable文件夾下,使用資源引用的方式。第10行代碼android:label用來(lái)聲明整個(gè)APP的應(yīng)用程序名稱,字符串一般都放在strings文件中,使用資源引用的方式。第11行代碼android:theme定義資源的風(fēng)格,它定義了一個(gè)默認(rèn)的主題風(fēng)格給所有的activity,當(dāng)然也可以在自己的theme里面去設(shè)置它,有點(diǎn)類似style。1.4項(xiàng)目框架分析12<activity//第三層次,聲明應(yīng)用程序中的組件,如Activity13android:name=".MainActivity"14android:label="@string/title_activity_main">15<intent-filter>//第四層次,聲明此activity的filter特性16<actionandroid:name="ent.action.MAIN"/>17<categoryandroid:name="ent.category.LAUNCHER"/>18</intent-filter>//第四層次聲明結(jié)束19</activity>//第三層次Activity的聲明結(jié)束20</application>//第二層次Application的聲明結(jié)束21</manifest>//第一層次聲明結(jié)束1.4項(xiàng)目框架分析第12行到第19行是對(duì)這個(gè)應(yīng)用程序中的一個(gè)Activity的聲明,屬于第三層。由于本應(yīng)用中只有一個(gè)Activity,所以這里只需要聲明一個(gè)Activity,如果有多個(gè)Activity或Service等程序員自己開(kāi)發(fā)的組件,則必須在這里進(jìn)行添加聲明。第13行代碼android:name是一個(gè)前面省略了包名的類名,在android:name=".MainActivity"中一定要注意前面有個(gè)點(diǎn),這個(gè)類名也是在src根目錄下,以包命名的文件夾中對(duì)應(yīng)的java文件名,大小寫也要完全對(duì)應(yīng)。第15行到第18行是對(duì)這個(gè)Activity的過(guò)濾器filter的聲明,屬于第四層。Intentfilter內(nèi)會(huì)設(shè)定的資料包括action、data與category三種。也就是說(shuō)filter只會(huì)與intent里的這三種資料作對(duì)比動(dòng)作。1.4項(xiàng)目框架分析首先介紹action屬性:action很簡(jiǎn)單,它只有android:name這個(gè)屬性。常見(jiàn)的android:name值為,表明此activity是作為應(yīng)用程序的入口。起到的功能和C語(yǔ)言程序中的main()函數(shù)相同,所以Action:MAIN的這個(gè)屬性能且只能賦給一個(gè)Activity。其次介紹category屬性:category也只有android:name屬性。常見(jiàn)的android:name值為,它用來(lái)決定應(yīng)用程序是否顯示在程序列表里。最后介紹data屬性:每個(gè)data元素指定一個(gè)URI和數(shù)據(jù)類型(MIME類型)。它有四個(gè)屬性scheme、host、port、path,它們分別對(duì)應(yīng)URI(scheme://host:port/path)的每個(gè)部分,本段代碼中沒(méi)有涉及到data屬性。1.4項(xiàng)目框架分析這里需要補(bǔ)充一個(gè)非常重要的權(quán)限許可的問(wèn)題。Android系統(tǒng)采用不聲明不能使用的原則,如果程序需訪問(wèn)內(nèi)部的使用通訊錄、Internet、GPS、藍(lán)牙等功能,都必須在manifest文件中進(jìn)行許可聲明,否則程序?qū)⒊鲥e(cuò)。1.4項(xiàng)目框架分析Android的manifest文件中有四個(gè)標(biāo)簽與permission有關(guān),它們分別是<permission>、<permission-group>、<permission-tree>和<uses-permission>。其中最常用的是<uses-permission>,如果需要獲取某個(gè)權(quán)限的時(shí)候,就必須在manifest文件中聲明<uses-permission>。<uses-permission>與<application>同層次,一般就插入在application標(biāo)簽后面,如<use

溫馨提示

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

評(píng)論

0/150

提交評(píng)論