- Android經(jīng)典應(yīng)用程序開發(fā)
- 韓超編著
- 854字
- 2019-01-09 15:18:40
1.2 基于Android SDK的IDE開發(fā)環(huán)境
Android的SDK開發(fā)環(huán)境使用預(yù)編譯的系統(tǒng),開發(fā)者可以基于Android的標(biāo)準(zhǔn)平臺(tái)API進(jìn)行應(yīng)用程序?qū)哟蔚拈_發(fā)。在SDK的開發(fā)環(huán)境中,還可以使用Eclipse等作為IDE開發(fā)環(huán)境。
1.2.1 Android IDE開發(fā)環(huán)境的組成和結(jié)構(gòu)
Android的IDE開發(fā)環(huán)境需要以下的內(nèi)容。
JDK環(huán)境(Java開發(fā)包);
Eclipse集成開發(fā)環(huán)境;
ADT(Android Development Tools)插件;
Android SDK。
Android SDK在IDE環(huán)境中使用的結(jié)構(gòu)如圖1-2所示。

圖1-2 Android SDK在IDE環(huán)境中使用的結(jié)構(gòu)
Android的SDK具有Windows、Linux和MAC三種不同版本,其中的基礎(chǔ)映像文件、示例代碼和文檔都是相同的,它們之間的主要差別是主機(jī)的工具不同。例如,很多主機(jī)運(yùn)行的工具在Window環(huán)境中為.exe文件,而在Linux環(huán)境中為Elf可執(zhí)行程序;很多腳本在Window環(huán)境中是.bat批處理腳本,在Linux環(huán)境中是shell腳本。
1.2.2 Windows中的Android SDK開發(fā)環(huán)境安裝
1.安裝JDK基本Java環(huán)境
Eclipse的運(yùn)行需要依賴JDK(Java Develop Kit,Java開發(fā)包),因此需要下載使用JDK的包并進(jìn)行安裝。JDK 1.6版本使用一個(gè)可執(zhí)行程序來安裝,例如jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,雙擊直接進(jìn)行安裝即可。
2.安裝Eclipse
Eclipse集成開發(fā)環(huán)境是開放的軟件,可以到Eclipse的網(wǎng)站上去下載:
http://www.eclipse.org/downloads/
在Android系統(tǒng)發(fā)展的早期,各個(gè)版本的Eclipse在Android中均有所使用。經(jīng)歷了Android版本的多次升級(jí)過程后,目前推薦使用Eclipse 3.5以上的版本,較低版本Eclipse可能不能使用。
3.在Eclipse中安裝ADT
ADT的含義為Android Development Tools(Android開發(fā)工具包),它主要具有以下一些功能:
可以從Eclipse IDE內(nèi)部訪問其他的Android開發(fā)工具。例如,ADT可以直接從Eclipse訪問DDMS工具的很多功能——屏幕截圖、管理端口轉(zhuǎn)發(fā)(port-forwarding)、設(shè)置斷點(diǎn)、觀察線程和進(jìn)程信息。
提供了一個(gè)新的項(xiàng)目向?qū)В∟ew Project Wizard),幫助快速生成和建立起新Android應(yīng)用程序所需的最基本文件。
使構(gòu)建Android應(yīng)用程序的過程變得自動(dòng)化、簡單易行,提供了一個(gè)Android代碼編輯器,可以幫助完成Android中各種源文件的編寫。
第一步:進(jìn)入Eclipse環(huán)境,選擇“Help”→“Install New Software”,準(zhǔn)備安裝插件,如圖1-3所示。

圖1-3 Eclipse中選擇安裝新軟件
第二步:選擇后將出現(xiàn)軟件升級(jí)對(duì)話框,如圖1-4所示。

圖1-4 Eclipse的軟件升級(jí)對(duì)話框
以上界面出現(xiàn)后,單擊右側(cè)自上而下的第3個(gè)按鈕“Add Site”,表示準(zhǔn)備增加一些路徑,在這個(gè)路徑中獲得插件,單擊后界面如圖1-5所示。

圖1-5 Eclipse中增加ADT插件的路徑
在“Add Site”對(duì)話框中,在Location文本框中輸入Android插件的路徑:
https://dl-ssl.google.com/android/eclipse/
以上的方式是通過一個(gè)網(wǎng)絡(luò)地址獲取ADT插件。除了這種方式以外,另外一種方式是使用本地文件。單擊“Archive…”按鈕,使用這種方式將直接指定磁盤中的一個(gè)ADT包文件(例如ADT-12.0.0.zip等)。
獲得ADT插件文件包的方法,可以從如下的網(wǎng)站上下載:
http://developer.android.com/sdk/eclipse-adt.html
ADT文件包的本質(zhì)是一個(gè)Eclipse中使用的插件,由于是Java插件,因此在Windows和Linux環(huán)境中使用的ADT包相同。
ADT文件本身是一個(gè)ZIP包,經(jīng)過解壓縮之后,其結(jié)構(gòu)如下所示:
ADT-<version>/ |-- features [特性jar的目錄] |-- plugins [插件jar的目錄] |-- index.html HTML格式的網(wǎng)頁描述文件 |-- site.xml XML格式的網(wǎng)站管理文件 `-- web [關(guān)聯(lián)網(wǎng)頁]
ADT文件包的plugins目錄中包含了com.android.ide.eclipse.adt_<version>.jar等Java插件包。
在大多數(shù)情況下,由于ADT對(duì)其他包有依賴,即使使用本地磁盤中的ADT文件包,依然不能脫離網(wǎng)絡(luò)環(huán)境完成安裝。
第三步:ADT相關(guān)的設(shè)置完成后,回到軟件升級(jí)對(duì)話框,work with的路徑變?yōu)榱薶ttps://dl-ssl.google.com/android/eclipse/。后面的列表則變成了“Developer Tools”,即(項(xiàng)目就表示了)Android插件包中的工具,其中包含了以下幾個(gè)項(xiàng)目。
Android DDMS;
Android Development Tools;
Android Hierarchy Viewer;
Android Traceview。
其中的主工具為Android Development Tools,其他為輔助工具。一般情況下它們應(yīng)該被一起安裝。選擇它們后,繼續(xù)進(jìn)行安裝,出現(xiàn)的界面如圖1-6所示。

圖1-6 Eclipse中選擇安裝ADT
選擇接受(accept)并且選擇Finish完成安裝之前的配置,然后將進(jìn)入安裝Android組件的階段。
在安裝的過程中,可能出現(xiàn)缺少某些包的情況,如圖1-7所示。

圖1-7 安裝Android的插件
這時(shí),可以選擇“Window”→“Preference”,從左側(cè)的列表中選擇Install/Update項(xiàng)目,如圖1-8所示。

圖1-8 ADT相關(guān)的插件
在項(xiàng)目中,增加以下的內(nèi)容:
Eclipse GEF,地址為:
http://download.eclipse.org/tools/gef/updates/releases/
Eclipse EMF,地址為:
http://download.eclipse.org/modeling/emf/updates/releases/
Eclipse GMF,地址為:
http://download.eclipse.org/modeling/gmf/updates/releases
Eclipse Webtools,地址為:
http://download.eclipse.org/webtools/updates/
Google eclipse Plugin,地址為:
http://dl.google.com/eclipse/plugin/3.5
第四步:安裝完成,關(guān)閉并重新啟動(dòng)Eclipse。再次進(jìn)入Eclipse后,將發(fā)現(xiàn)ADT已被安裝。
提示:ADT包是Android官方升級(jí)較快的內(nèi)容,從最初2009年10月的ADT 0.9.4到2011年的12.0.0,其間推出過十余個(gè)版本。新版本的功能更強(qiáng),且新版本也可以支持舊版本SDK。因此,無論SDK的版本是哪個(gè),一般情況下都推薦使用最新版本的ADT。
4.獲得Android SDK
Android SDK可以在Android的網(wǎng)站上進(jìn)行下載,相關(guān)部分的網(wǎng)址為:
http://developer.android.com/sdk/
早期Android的SDK獲得方式是使用直接下載包,這個(gè)包通常有幾百兆的大小。在目前的Android開發(fā)中,使用下載工具包+在線升級(jí)的方式。
第一步:獲得android-sdk_<version>-windows.zip。
從Android的網(wǎng)站上,獲取Android SDK的android-sdk_<version>-windows.zip。這個(gè)包不是完整的Android的SDK,而是SDK的預(yù)備包,它只有幾十兆大小。
解壓縮這個(gè)包,獲得Android SDK的基本目錄結(jié)構(gòu),包中包含了一個(gè)名稱為Setup的可執(zhí)行程序,完整的SDK是通過這個(gè)可執(zhí)行程序來獲得的。
第二步:運(yùn)行SDK Setup.exe程序,將出現(xiàn)SDK的下載界面,如圖1-9所示。

圖1-9 Android SDK的下載界面
在Settings中進(jìn)行設(shè)置,選中Force……項(xiàng),表示強(qiáng)制使用網(wǎng)址,選擇后進(jìn)行保存(Save and Apply)。回到Installed Packages中進(jìn)行安裝,出現(xiàn)Android的各個(gè)版本的SDK、工具、文檔的安裝界面,如圖1-10所示。

圖1-10 選擇要安裝的組件

圖1-1 4 建立新的AVD
每個(gè)組件可以選擇接受(Accept)表示安裝,拒絕(Reject)表示不安裝,接受全部(Accept All)表示安裝所有的內(nèi)容。文檔一般安裝成最新的版本。
選擇后,安裝程序?qū)⒁来伟惭b各個(gè)組件,安裝流程如圖1-11所示。

圖1-11 Android的SDK安裝界面
SDK的下載安裝過程中,每個(gè)組件將首先被放置到temp中,以一個(gè)ZIP包的形式存在。下載完成后,得到完整的Android SDK。
Android的完整SDK的目錄結(jié)構(gòu)如下所示。
add-ons:附加的包;
docs:HTML格式的離線文檔;
platforms:SDK核心內(nèi)容;
platforms-tools:平臺(tái)相關(guān)的工具;
samples:應(yīng)用程序的示例代碼(較新版本的SDK中具有);
tools:工具。
在platforms中包含的各個(gè)Android SDK版本的目錄中,包含系統(tǒng)映像、工具、示例代碼等內(nèi)容。
data/:包含默認(rèn)的字體、資源等內(nèi)容;
images/:包含默認(rèn)的Android磁盤映像,包括內(nèi)存盤映像(ramdisk image),系統(tǒng)映像(system image),用戶數(shù)據(jù)映像(userdata image)等,這些映像是仿真器運(yùn)行的時(shí)候需要使用的;
samples/:應(yīng)用程序的示例代碼(較舊版本的SDK中具有);
skins/:包含了幾個(gè)仿真器的皮膚,每個(gè)皮膚對(duì)應(yīng)了一種屏幕尺寸;
templates/:包含了幾個(gè)使用SDK開發(fā)工具的模板;
android.jar:Android庫文件的Java程序包,在編譯本平臺(tái)的Android應(yīng)用程序的時(shí)候被使用。
提示:SDK的“升級(jí)安裝”實(shí)際上是一個(gè)下載的過程,得到環(huán)境后可以打包放到其他相同的主機(jī)環(huán)境中使用。
5.在Eclipse中配置Android SDK
以上的幾個(gè)步驟中1~3和4這兩部分內(nèi)容可以分別進(jìn)行,二者之間沒有依賴關(guān)系。這些步驟完成后,可以使用具有ADT的Eclipse環(huán)境配置Android的SDK。方法為:在Eclipse中選擇“Window”→“Preference”,從左側(cè)的列表中選擇Android項(xiàng),如圖1-12所示。

圖1-12 Eclipse中選擇Android SDK的路徑
圖1-12 中,左側(cè)的Android選項(xiàng)是由于安裝了Android的ADT而出現(xiàn)的。在SDK Location文本框中,單擊“Browse”按鈕;選擇Android SDK的目錄,單擊“OK”按鈕。
在Window的Eclipse安裝完成Android的SDK開發(fā)環(huán)境之后,將會(huì)形成一個(gè)android環(huán)境私有的目錄,用于存放Android的安裝信息,其路徑為:
Documents and Settings\<用戶名>\.android
1.2.3 Linux環(huán)境中的Android SDK開發(fā)環(huán)境安裝
1.安裝JDK基本Java環(huán)境
在Ubuntu環(huán)境中,獲得Java JDK的方法如下所示:
$ sudo apt-get install sun-java6-jdk
JDK的安裝路徑一般為usr/lib/jvm。
2.安裝Eclipse
在Eclipse網(wǎng)站上下載Linux版本的Eclipse,其他過程與Windows中相同。
3.在Eclipse中安裝ADT
與Windows中的步驟相同。
4.獲得Android SDK
獲得Linux版本的SDK包,android-sdk_<version>-linux_x86.zip,經(jīng)過解壓縮之后,在根目錄中執(zhí)行如下命令:
$ tools/android update sdk
這里使用的是命令行執(zhí)行的方式,雖然也會(huì)出現(xiàn)SDK的安裝界面。其他步驟與Windows中相同。在Linux版本的SDK中,與Windows的主要差別是主機(jī)運(yùn)行的工具和腳本。
5.在Eclipse中配置Android SDK
與Windows中的步驟相同。
在Linux的Eclipse安裝完成Android的SDK環(huán)境之后,將會(huì)形成一個(gè)android環(huán)境私有的目錄,用于存放Android的安裝信息,其路徑為:
Home/<用戶名>/.android
1.2.4 Android中運(yùn)行仿真器環(huán)境
1.建立Android虛擬設(shè)備
為了運(yùn)行一個(gè)Android仿真器的環(huán)境,首先需要建立Android虛擬設(shè)備(AVD),表示一個(gè)模擬真實(shí)設(shè)備的運(yùn)行環(huán)境。
在Eclipse的菜單中,選擇“Window”→“Android AVD Manager”,出現(xiàn)“Android SDK and AVD Manager”窗口,界面如圖1-13所示。

圖1-13 Android SDK和AVD管理器
界面中間的列表表示了目前可以使用的Android虛擬設(shè)備。在沒有虛擬設(shè)備的情況下單擊右側(cè)的“New”按鈕選擇建立一個(gè)虛擬設(shè)備。
建立新的Android虛擬設(shè)備的窗口為Create new AVD,如圖1-14所示。
Android虛擬設(shè)備的建立包含了以下一些選項(xiàng)。
名字(Name):這個(gè)虛擬設(shè)備的名稱,由用戶自定義。
目標(biāo)(Target):選擇不同的SDK版本(依賴于目前SDK的platform目錄中包含了哪些版本的SDK)。
SD卡:模擬SD卡,可以指定SD卡的容量或者使用一個(gè)SD卡的映像文件。SD卡映像文件實(shí)際上是使用mksdcard工具建立的。
皮膚(Skin):這里皮膚的含義其實(shí)是仿真器運(yùn)行尺寸的大小(并非僅僅是一個(gè)外觀)。可以選擇的尺寸一般有HVGA-P(320×480),HVGA-L(480×320)等,也可以通過直接指定尺寸的方式指定屏幕的大小。
屬性(Property):可以由用戶指定仿真器運(yùn)行的Android系統(tǒng)的一些運(yùn)行時(shí)屬性,例如LCD密度、設(shè)備內(nèi)存等。
在建立一個(gè)虛擬設(shè)備后,將在android環(huán)境私有的目錄中建立這個(gè)設(shè)備的臨時(shí)目錄,包括臨時(shí)的system、data映像文件、SD卡映像文件等。
2.運(yùn)行虛擬設(shè)備
在“Android SDK and AVD Manager”窗口中,選擇一個(gè)設(shè)備,單擊右側(cè)的“Start”按鈕,將調(diào)用仿真器從虛擬設(shè)備運(yùn)行一個(gè)Android系統(tǒng)。
一個(gè)運(yùn)行于HVGA-P(320×480)尺寸的仿真器的界面如圖1-15所示。

圖1-15 運(yùn)行仿真器的界面
窗口的左側(cè)是運(yùn)行的仿真器的屏幕,右側(cè)是模擬的鍵盤。設(shè)備啟動(dòng)后,可以使用右側(cè)的鍵盤模擬真實(shí)設(shè)備的鍵盤操作,也可以用鼠標(biāo)點(diǎn)擊(或者拖曳和長按)屏幕,模擬觸摸屏的操作。
除了使用右側(cè)的模擬鍵盤之外,也可以使用PC的鍵盤來模擬真實(shí)設(shè)備的鍵盤操作。尤其是當(dāng)仿真器的大小不是標(biāo)準(zhǔn)值的時(shí)候,可能不會(huì)出現(xiàn)按鍵的面板,在這種情況下只能使用鍵盤的按鍵來控制仿真器的按鍵。
Android中的按鍵和鍵盤上的按鍵之間的映射關(guān)系如表1-1所示。
表1-1 仿真器和主機(jī)按鍵的對(duì)應(yīng)關(guān)系

Android仿真器啟動(dòng)虛擬設(shè)備之后,可以使用主機(jī)的網(wǎng)絡(luò)作為自己的網(wǎng)絡(luò),使用主機(jī)的聲音系統(tǒng)作為自己的聲音設(shè)備。
1.2.5 Android中建立工程
1.建立工程
Android的SDK環(huán)境安裝完成后,就可以在SDK中建立工程并進(jìn)行調(diào)試了。在Android的Eclipse環(huán)境中,建立Android工程分成幾個(gè)步驟。
首先,選擇“File”→“New”→“Project”,然后選擇“Android”→“Android Project”,單擊“Next”按鈕,將出現(xiàn)工程建立界面,如圖1-16所示。

圖1-16 建立新的Android工程界面
選擇建立一個(gè)Android工程之后,將出現(xiàn)工程建立的對(duì)話框,在其中通過配置可以建立一個(gè)Android應(yīng)用程序的功能。顯示的界面如圖1-17所示。

圖1-17 建立Android工程(左:工程建立窗口;右:從已有代碼建立工程)
建立工程的第一個(gè)選項(xiàng)是在當(dāng)前工作區(qū)建立一個(gè)空的工程,第二個(gè)選項(xiàng)是從已有的代碼(工程目錄)建立工程,可以使用SDK的platforms/android-<level>/samples或者samples中的各個(gè)子目錄建立工程,這是SDK自帶的示例程序。如果從其他源代碼建立工程,那么所指定的目錄中需要具有Android的工程描述文件(AndroidManifest.xml文件)。
在建立工程的時(shí)候,具有幾個(gè)選項(xiàng):指定應(yīng)用程序名、包名、創(chuàng)建活動(dòng),其中Min SDK表示目標(biāo)可以支持的最小SDK。這里有不同API級(jí)別可以選擇,選擇了某個(gè)級(jí)別后,工程生成的APK包也就默認(rèn)是基于這個(gè)級(jí)別的。
越高版本的SDK具有越多的功能,但是低版本的SDK可以在低版本的設(shè)備上兼容運(yùn)行(前提是沒有使用到超出這個(gè)版本SDK的接口)。
回到建立工具的界面后,單擊“Finish”按鈕,工程將被建立。
提示:SDK建立工程的過程中,如果應(yīng)用程序包沒有名字,將默認(rèn)使用第一個(gè)組件的名字作為應(yīng)用程序包的名字,在這種情況下最好手動(dòng)輸入一個(gè)更恰當(dāng)?shù)拿帧?/p>
一個(gè)Android的工程建立后,在Eclipse的工程環(huán)境中(一般在工作區(qū)的左部分)將列出工程的組成,如圖1-18所示。

圖1-18 工程結(jié)構(gòu)
圖1-18中是通過包瀏覽器(Package Explorer)來瀏覽一個(gè)Android應(yīng)用程序包的結(jié)構(gòu)。Android應(yīng)用程序包分成以下幾個(gè)部分。
AndroidManifest.xml文件:工程文件;
default.properties文件:默認(rèn)屬性文件;
src目錄:源代碼部分;
res目錄:資源文件部分;
assets目錄:資產(chǎn)文件部分;
gen:生成的中間目錄;
bin:目標(biāo)二進(jìn)制文件目錄。
在一個(gè)Android工程中,AndroidManifest.xml文件、src、assets和res一般為工程中具有的,gen、bin目錄和default.properties文件一般為工程建立后生成的。
2.查看和編輯各個(gè)文件
建立工程后,可以通過IDE環(huán)境查看和編輯Android應(yīng)用程序中的各個(gè)文件。不同的文件將使用不同的工具查看,具有不同的效果,主要的類型包括工程描述文件、布局文件、表示數(shù)值的XML文件、Java源代碼文件等。
(1)工程描述文件
Android的工程描述文件也就是根目錄中的AndroidManifest.xml文件,其查看和編輯的情況如圖1-19所示。

圖1-19 查看和編輯AndroidManifest.xml文件
如圖1-19所示,在界面的下端具有多個(gè)不同的標(biāo)簽,其中的前面幾個(gè)標(biāo)簽如下所示。
Manifest:表示全局性描述內(nèi)容;
Application:表示應(yīng)用以及各個(gè)組件;
Permissions:表示各個(gè)許可;
Instrumentation:表示各個(gè)用于測試的命令。
以上幾個(gè)標(biāo)簽用于使用窗口查看和編輯AndroidManifest.xml的不同方面的內(nèi)容。
最后一個(gè)標(biāo)簽一般為AndroidManifest.xml,單擊它將切換到文本模式,使用文本的形式查看和編輯AndroidManifest.xml中的內(nèi)容。
提示:窗口化編輯和文本化編輯的最終效果是相同的,都體現(xiàn)在最終的XML格式的文件上。
(2)布局文件
布局文件就是res/layout目錄中的各個(gè)表示布局的XML文件,其查看和編輯的情況如圖1-20所示。

圖1-20 查看和編輯布局文件
布局查看器的一個(gè)比較有用的功能是可以直觀地查看程序的UI布局。利用IDE的布局查看器,可以在程序沒有運(yùn)行的情況下直接查看和組織目標(biāo)UI界面。單擊標(biāo)簽(布局文件的名稱)可以切換到文本模式。
布局文件的可視化瀏覽還有幾個(gè)配置選項(xiàng),例如屏幕的大小、屏幕的方向(landscape或portrait)、主題、SDK的版本。在不同的選項(xiàng)情況下,程序運(yùn)行的效果不同。
提示:布局瀏覽器提供的布局文件的可視化查看僅供參考,具體的效果可能因設(shè)備的不同而不同。
(3)表示數(shù)值的XML文件
res目錄中的value等子目錄中的大部分XML文件表示數(shù)值,在界面中可以查看各個(gè)文件和編輯數(shù)值,如圖1-21所示。

圖1-21 查看各個(gè)value文件和建立數(shù)值
Resources標(biāo)簽,用于使用窗口化的環(huán)境查看和建立各個(gè)資源,在建立數(shù)值的時(shí)候,將出現(xiàn)一個(gè)對(duì)話框,這里顯示的Color、Drawable、Integer Array等內(nèi)容,表示的就是各個(gè)數(shù)據(jù)的類型。
在數(shù)值查看界面中,如果切換到后面的xxx.xml標(biāo)簽,則表示通過文本的方式查看和編輯當(dāng)前的XML文件。
(4)Java源代碼文件
Java源代碼文件一般在src目錄當(dāng)中,IDE環(huán)境使用一個(gè)特殊的界面編寫各個(gè)Java源代碼文件,如圖1-22所示。

圖1-22 Java源代碼文件的編輯界面
Java源代碼采用文本的方式顯示,右邊也列出了Java源代碼中類的層次結(jié)構(gòu)。在IDE的源代碼環(huán)境開發(fā)Java程序,主要具有以下幾個(gè)特性。
自動(dòng)修正:自動(dòng)修正調(diào)用的方法名稱;
類方法屬性查找:顯示類的屬性方法的相關(guān)提示信息;
自動(dòng)增加依賴包:根據(jù)代碼引用類的情況,自動(dòng)增加import的內(nèi)容;
顯示代碼中的警告信息(例如,import多余包,沒有使用的變量等)。
其中,自動(dòng)增加依賴包的功能非常實(shí)用,可以減少開發(fā)中使用一個(gè)類就要手動(dòng)寫入import內(nèi)容的煩瑣工作。
3.運(yùn)行工程
在Android中運(yùn)行一個(gè)工程,可以通過右鍵單擊工程名稱,選擇“Run As”或者“Debug As”來運(yùn)行和調(diào)試工程。
提示:開始運(yùn)行的時(shí)候,如果現(xiàn)在已連接到真實(shí)的設(shè)備或者仿真器設(shè)備上,將直接使用這個(gè)設(shè)備,否則將啟動(dòng)一個(gè)新的仿真設(shè)備。
按照上述方式運(yùn)行一個(gè)應(yīng)用程序包,實(shí)質(zhì)上是一個(gè)安裝+啟動(dòng)的雙重過程,第一次運(yùn)行后包就安裝到目標(biāo)設(shè)備中了。開始運(yùn)行后,在IDE下層的控制臺(tái)(Console)標(biāo)簽中,將出現(xiàn)目標(biāo)運(yùn)行的log信息,可以獲取目標(biāo)運(yùn)行的信息。在仿真器環(huán)境中,運(yùn)行一個(gè)包之后,控制臺(tái)如圖1-23所示。

圖1-23 包運(yùn)行階段控制臺(tái)
一個(gè)應(yīng)用程序包開始運(yùn)行的時(shí)候,出現(xiàn)類似的Log信息如下所示:
[2011-04-02 09:38:54- Skeleton] ------------------------------ [2011-04-02 09:38:54- Skeleton] Android Launch! [2011-04-02 09:38:54- Skeleton] adb is running normally. [2011-04-02 09:38:54 - Skeleton] Performing com.example.android.skeletonapp. SkeletonActivity activity launch [2011-04-02 09:38:54- Skeleton] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android_23' [2011-04-02 09:38:54- Skeleton] WARNING: Application does not specify an API level requirement! [2011-04-02 09:38:54- Skeleton] Device API version is 10 (Android 2.3.3) [2011-04-02 09:38:54- Skeleton] Uploading Skeleton.apk onto device 'emulator-5554' [2011-04-02 09:38:54- Skeleton] Installing Skeleton.apk...
在運(yùn)行一個(gè)仿真設(shè)備的時(shí)候,可以進(jìn)一步通過選擇“Run As”中的“Run Configurations”進(jìn)行進(jìn)一步的配置,啟動(dòng)后的界面如圖1-24所示。

圖1-24 選擇工程中運(yùn)行的動(dòng)作
在Project選項(xiàng)中可以選擇啟動(dòng)的工程。啟動(dòng)活動(dòng)(Launch Action)選項(xiàng)中可以選擇啟動(dòng)哪一個(gè)活動(dòng)(Android的一個(gè)工程中可以包含多個(gè)活動(dòng))。在Target標(biāo)簽中可以選擇啟動(dòng)的時(shí)候使用的設(shè)備。
1.2.6 在IDE中使用各種Android工具
在仿真器環(huán)境中,可以使用集成的Android相關(guān)工具。使用的方法是選擇“Window”→“Show View”→“Other”選項(xiàng),開啟Android的各個(gè)工具。
選擇Android工具的對(duì)話框如圖1-25所示。

圖1-25 選擇Android工具的對(duì)話框
在工具選擇界面中,可以選擇的Android主要工具包括:Device(設(shè)備控制)、Emulator Control(仿真器控制)、File Explore(文件瀏覽)、Heap(堆內(nèi)存)、Logcat(Log輸出)等。
每個(gè)工具開啟之后,將出現(xiàn)一個(gè)單獨(dú)的選項(xiàng)卡。
1.使用設(shè)備(Device)工具和Heap(堆)工具
Device工具是Android中運(yùn)用調(diào)試的主要工具,可以用于監(jiān)測仿真器的運(yùn)行狀況。Device工具基本的功能是顯示各個(gè)Java進(jìn)程的信息。使用其菜單還可以查看Heap(堆內(nèi)存)、Threads(線程)的信息,還具有停止某個(gè)進(jìn)程的運(yùn)行的功能。Device窗口工具欄最右側(cè)的Screen Capture(截屏)按鈕,可以打開一個(gè)窗口用于截取屏幕的窗口。
Device工具和屏幕截取工具的窗口如圖1-26所示。

圖1-26 Android的Device工具和屏幕截取窗口
單擊Dump Hprof File還可以獲得后綴名為hprof的文件。如果當(dāng)前系統(tǒng)的Eclipse環(huán)境中安裝了MAT(Memory Analyzer Tool,內(nèi)存分析工具),可以使用Eclipse的“Windows”→“Open Perspective”→“Other”→“Memory Analyzer”來分析hprof文件,獲得當(dāng)前進(jìn)程內(nèi)存泄漏的情況。
2.使用Logcat工具
Logcat工具是查看系統(tǒng)Log信息的工具,可以獲得Android系統(tǒng)運(yùn)行的時(shí)候打印出來的信息。工具的界面如圖1-27所示。

圖1-27 使用Logcat工具顯示Log
這里通過GUI界面顯示文字信息,顯示的內(nèi)容是從目標(biāo)系統(tǒng)(真實(shí)設(shè)備或者仿真器)的Log輸出。Log的窗口中記錄的信息也就是實(shí)際的Android系統(tǒng)打印出來的,包含了時(shí)間(Time)、級(jí)別(Level)、進(jìn)程ID(pid)、標(biāo)簽(tag)、Log內(nèi)容(Message)等項(xiàng)目。
Logcat窗口可以設(shè)置Log的過濾器(Filter),這樣可以僅僅獲得自己需要的Log信息,屏蔽其他的信息。
3.使用仿真器控制(Emulator Control)工具
選擇“Emulator Control”選項(xiàng)卡可以開啟仿真器的控制對(duì)話框,界面如圖1-28所示。

圖1-28 Android仿真器控制界面
仿真器控制包含了以下幾個(gè)方面的功能。
Telephony Status:控制電話系統(tǒng)的狀態(tài)。
Telephony Actions:可以模擬打電話,發(fā)短信。首先需要在“Incoming number”文本框中輸入電話號(hào)碼,表示當(dāng)前的電話號(hào)碼。此后,選擇“Voice”,單擊“Call”按鈕,表示以當(dāng)前號(hào)碼呼叫仿真器,如果在“Message”文本框中輸入文本,單擊“Send”按鈕,表示以當(dāng)前號(hào)碼向仿真器發(fā)送一個(gè)短信息。
Location Controls:定位系統(tǒng)的控制,主要用于向仿真器輸入GPS信息。例如Longitude和Latitude可用于發(fā)送經(jīng)緯度信息。
提示:仿真器控制中的幾個(gè)選項(xiàng)僅用于控制仿真器,它們通過和仿真器運(yùn)行的硬件仿真程序打交道,來實(shí)現(xiàn)模擬幾種硬件。當(dāng)連接到實(shí)際的硬件設(shè)備的時(shí)候,這些功能就不起作用了。
4.使用文件瀏覽器(File Explorer)工具
文件瀏覽器可以從主機(jī)訪問目標(biāo)機(jī)的幾個(gè)文件系統(tǒng),用來上傳文件、下載文件、刪除內(nèi)容和新建目錄等。
文件瀏覽器的界面如圖1-29所示。

圖1-29 Android文件瀏覽器工具(左:瀏覽器界面;右:上傳文件界面)
文件瀏覽器的界面中,列出了目標(biāo)系統(tǒng)的幾個(gè)重要目錄:data、system、mnt等,并可以展開成樹狀結(jié)構(gòu)。使用右側(cè)的pull和push工具可以將內(nèi)容從目標(biāo)系統(tǒng)取出或者放入。
5.使用Windows工具
Windows工具用于查看當(dāng)前系統(tǒng)的窗口情況,如圖1-30所示。

圖1-30 窗口工具
Windows工具有以下幾個(gè)選項(xiàng)。
Refresh List of This Device:刷新當(dāng)前設(shè)備;
Load view hierarchy into viewer tree:查看View的層次結(jié)構(gòu);
Inspect a screenshot in the Pixel Perfect view:調(diào)用Pixel Perfect查看具體的樹狀結(jié)構(gòu)。
6.使用屬性查看(View Properties)工具
View Properties是屬性查看工具,可以查看界面的屬性,工具運(yùn)行情況如圖1-31所示。

圖1-31 屬性查看工具
使用屬性查看工具可以查看到的內(nèi)容為當(dāng)前視圖的一些屬性。
7.使用Pixel Perfect工具
Pixel Perfect,Pixel Perfect Loupe和Pixel Perfect Tree,實(shí)際上這里調(diào)用了Hierarchy Viewer工具,這是一個(gè)可以輔助更好地檢查和設(shè)計(jì)用戶界面的工具。
例如:使用Pixel Perfect Tree可以列出某個(gè)界面中視圖的層次結(jié)構(gòu),顯示的效果如圖1-32所示。

圖1-32 Pixel Perfect Tree工具
Pixel Perfect Tree中的樹狀結(jié)構(gòu)表示的也就是當(dāng)前界面中的UI的層次結(jié)構(gòu),根據(jù)Layout的嵌套關(guān)系劃分層次。
Pixel Perfect可以從細(xì)節(jié)上查看某個(gè)View的效果,這種觀察比實(shí)際產(chǎn)品上的顯示狀況更細(xì),可以作為進(jìn)一步優(yōu)化顯示效果的依據(jù)。
Pixel Perfect還具有一個(gè)特殊的功能:加載一個(gè)圖片以查看這個(gè)圖片在界面上的顯示效果。
8.使用Tree Overview和Tree View
Tree Overview和Tree View用于以界面的方式顯示當(dāng)前View的層次結(jié)構(gòu)。Tree Overview是一個(gè)宏觀的視圖,移動(dòng)其矩形框的位置,得到的就是使用Tree View的詳細(xì)顯示。
Tree View的效果如圖1-33所示。

圖1-33 Tree View工具
這里選中一個(gè)項(xiàng)目(Vi e w)后,可以查看它的詳細(xì)情況,通過這種方式依次得到系統(tǒng)在界面層次上的各部分的開銷。
當(dāng)設(shè)備上的窗口有所變化的時(shí)候,可以通過單擊界面右上角的Refresh按鍵更新界面的顯示。
提示:Windows工具中的Load view hierarchy into viewer tree更新的就是Tree View的內(nèi)容。
Tree View中的樹狀結(jié)構(gòu)和Pixel Perfect Tree中的樹狀結(jié)構(gòu)表示的內(nèi)容類似,只是Tree Vi e w采用了更加圖形化的方式,并且可以看到進(jìn)一步的信息。
9.使用Layout View
Layout View工具用于查看界面中每一個(gè)元素的情況。Layout View工具的界面如圖1-34所示。

圖1-34 Layout View工具
當(dāng)啟動(dòng)后Layout View列出的只是界面的大體框架結(jié)構(gòu),單擊右上角的“Load all View Image”并單擊框架結(jié)構(gòu),可以看到每一個(gè)元素的情況。
1.2.7 其他Android工具
在Android SDK的tools目錄中,具有一些可以脫離SDK環(huán)境獨(dú)立使用的工具。在Windows和Linux不同的SDK環(huán)境中,這些工具不相同,例如某些工具在Windows中是批處理文件(*.bat),在Linux中是可執(zhí)行程序。但是它們的使用方法是類似的。
主要有以下具有界面環(huán)境的工具。
ddms:相當(dāng)于IDE環(huán)境中的Device、Emulator Control、Logcat、Heap、File Explorer等工具的集合。
hierarchyviewer:相當(dāng)于IDE環(huán)境中的Windows、Pixel Perfect、Tree Overview、Tree View和Layout View等工具。
有一些Android的工具需要在命令行的環(huán)境中運(yùn)行:在Linux中打開Shell界面來運(yùn)行;在Windows中選擇“開始”→“運(yùn)行”,輸入“cmd”并單擊“確定”按鈕,進(jìn)入命令行的界面中運(yùn)行。
命令行的工具是在Android SDK的tools目錄中的腳本和可執(zhí)行程序,主要為adb和mksdcard等。
adb(Android Debug Bridge,Android調(diào)試橋)是Android的主要調(diào)試工具,它可以通過網(wǎng)絡(luò)或者USB連接真實(shí)的設(shè)備,也可以連接仿真器。通常在命令行的界面中,使用adb進(jìn)行調(diào)試。
使用adb連接目標(biāo)系統(tǒng)終端的方式如下所示:
> adb shell
將出現(xiàn)shell提示符,這就是Android所運(yùn)行的Linux系統(tǒng)中的shell終端,可以在這個(gè)shell提示符后執(zhí)行Android系統(tǒng)提供的Linux命令。
使用adb安裝應(yīng)用程序的方法為:
> adb install XXX.apk > adb uninstall <package_name>
使用adb在主機(jī)和目標(biāo)機(jī)之間傳送文件的方法為:
> adb push <host_path> <target_path> > adb pull <target_path> <host_path>
提示:IDE中的幾個(gè)圖形化的工具也都是基于adb和目標(biāo)系統(tǒng)進(jìn)行聯(lián)系的。
mksdcard是用來建立SD卡映像的工具,用來建立一個(gè)Fat 32格式的磁盤映像,其使用方法如下所示:
mksdcard [-l label] <size> <file>
mksdcard的參數(shù)-l用于指定磁盤映像的標(biāo)簽,size用于指定磁盤映像的大小,其后面可以跟K、M、G等參數(shù),file是磁盤映像的文件名稱,這個(gè)文件也就是在仿真器運(yùn)行過程中指定的文件。
mksdcard的一個(gè)示例如下所示:
> mksdcard 128M sdcard.img
這表示建立了一個(gè)大小為128MB,名稱為sdcard.img的Fat32磁盤映像文件。這個(gè)映像文件可以在AVD中被選擇。
- 5G無線接入網(wǎng)架構(gòu)及關(guān)鍵技術(shù)
- 西門子SINAMICS G120/S120變頻器技術(shù)與應(yīng)用
- 鴻蒙原生應(yīng)用開發(fā):ArkTS語言快速上手
- 愛上單片機(jī)(第2版)
- 天地一體化信息網(wǎng)絡(luò)架構(gòu)與技術(shù)
- 雷達(dá)數(shù)據(jù)處理及應(yīng)用
- NI Multisim 11電路仿真應(yīng)用
- 數(shù)字圖像處理(MATLAB版)(第2版)
- 數(shù)字通信原理(第3版)
- 現(xiàn)代數(shù)碼產(chǎn)品及其維修技術(shù)
- Arm Helium技術(shù)指南:Cortex-M系列處理器的矢量運(yùn)算擴(kuò)展
- 5G無線網(wǎng)絡(luò)優(yōu)化實(shí)踐
- 通信工程監(jiān)理實(shí)務(wù)
- 20天搞定iPhone軟件開發(fā)
- 配電網(wǎng)故障檢測定位技術(shù)及典型案例