版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、歡迎來到Android世界!Android 簡介在討論 Eclipse 插件和開發(fā) Android 應用程序之前,我們先看看 Android 的體系結構和一些重要的術語,這會對本教程后面的討論和您自己構建 Android 應用程序有幫助。Android 術語在 Eclipse 環(huán)境中開發(fā) Android 應用程序需要了解 Eclipse 環(huán)境和 Android 平臺的知識。了解以下術語會有助于用 Eclipse 插件開發(fā) Android 應用程序。Open 這是一個由 Google 公司主導的組織,它由許多Handset Alliance公共和私人組織組成。 Android 這是 Open H
2、andset Alliance 的主打產(chǎn)品。它是一種針對移動設備的開放源碼操作環(huán)境。 模擬器 模擬另一個系統(tǒng)的軟件工具 這常常是在個人計算機(IBM®、Mac、Linux®)上運行的一個環(huán)境,它模擬另一個環(huán)境,比如移動計算設備。 Linux 一種開放源碼的操作系統(tǒng)內(nèi)核,許多計算平臺都使用這種操作系統(tǒng),包括服務器、桌面計算機、網(wǎng)絡設備和移動計算設備。Android 在 Linux 內(nèi)核上運行。 Dalvik Virtual Machine Dalvik VM 是 Android 產(chǎn)品組合中的一種操作環(huán)境,它在運行時解釋應用程序代碼。Dalvik VM 與 Java VM 相似
3、,但是兩者不兼容。 回頁首Android 基礎知識和必需的工具Android 是一種針對移動平臺的開放源碼操作系統(tǒng)。到編寫本教程時,它是一種純軟件的平臺,沒有可用的硬件設備。Android 平臺被稱為一個產(chǎn)品組合,因為它是一系列組件的集合,包括:· 基于 Linux 內(nèi)核的操作系統(tǒng) · Java 編程環(huán)境 · 工具集,包括編譯器、資源編譯器、調(diào)試器和模擬器 · 用來運行應用程序的 Dalvik VM 簡要介紹了 Android 平臺的體系結構之后,我們來從市場的角度看看這個平臺的一些重要特性?;仨撌譇ndroid 為什么很重要?自從 Android 和最
4、初的 SDK 發(fā)布以來,計算機技術新聞界一直非常關注 Android。Android 之所以重要主要有兩個原因。 Android 是 Google 進軍移動市場的主要行動。移動應用程序領域競爭激烈,新的競爭者很難涉足。Google 擁有大量資源和強大的品牌實力,有能力涉足任何市場。Google 進軍移動市場已經(jīng)好幾年了。Android 原來屬于另一家公司,Google 通過收購這家公司大大提高了在移動市場上的競爭力。Google 的任何行動都會受到關注,而且引入新平臺也很引人注目。Android 同時具備這兩個因素。第二個原因是 Android 的應用程序模型與眾不同。Android 應用程序
5、并不是需要大量單擊操作的純粹的菜單式應用程序。Android 應用程序中確實有菜單和按鈕,但是 Android 在體系結構中引入了一種新穎的設計元素 intent。 回頁首intentintent 是一種構造,應用程序可以通過它發(fā)出請求,這就像是發(fā)出求助信號。intent 可能像下面這樣:"Wanted: An application to help me look up a contact" 或 "Wanted: An application to help me display this image" 或 "Wanted: An appli
6、cation to perform this geographic-based search"應用程序可以按照相似或互補的方式進行注冊,表明它們有能力或有興趣執(zhí)行各種請求或 intent。比如:"Available: Application ready and willing to present contact records in clear, concise manner" 或 "Available: Application ready and willing to perform a geographic search"這些是 Inte
7、ntFilter 的示例,下面將要討論?;仨撌譏ntentFilter 應用程序通過一個稱為 IntentFilter 的構造聲明它們能夠執(zhí)行某些類型的操作。IntentFilter 可以在運行時進行注冊,也可以在 AndroidManifest.xml 文件中設置。下面的代碼片段取自一個對 SMS(文本)消息進行響應的 Android 應用程序:清單 1. 對 SMS 進行響應的 Android 應用程序 <receiver class=".MySMSMailBox" > <intent-filter> <action android:val
8、ue="vider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>簡要介紹 intent 和 IntentFilter 之后,下一節(jié)介紹 Android 應用程序的四種主要類型。來迎接新的 Android SDK!我們剛剛發(fā)布了 Android 1.0 SDK! 如果你現(xiàn)在正在用舊版的SDK, 那你可能需要做一些工作升級你的開發(fā)環(huán)境并對你的應用程序做些調(diào)整以適應新的 Android 平臺.請閱讀 升級指南 和 API變化一覽 來了解更多信息.如果你想了解詳細的
9、不同, 請閱讀API差異分析報告.Android 平臺 是一個移動設備專用的軟件堆, 包括一個操作系統(tǒng), 中間件以及大量關鍵應用. 開發(fā)者能建立大量應用程序通過Android SDK平臺。應用程序使用Java程序語言編寫并且在Dalvik上運轉, Dalvik是一個運行在Linux內(nèi)核之上專門供嵌入使用的虛擬機。如果你想要知道怎樣開發(fā) Android 的應用程序,你找對地方了。 Androidin開發(fā)論壇專門提供多種文檔來幫助你學習 Android 和開發(fā)基于該平臺的移動應用程序?,F(xiàn)在Android SDK 1.0版本已經(jīng)正式推出. 它包括源碼框架, 實例工程,開發(fā)工具,模擬器,當然還包括你所
10、需要的開發(fā)Android應用的全部庫文件。特性· 應用程序框架 支持組件的重用與替換 · Dalvik 虛擬機 專為移動設備優(yōu)化 · 集成的瀏覽器 基于開源的WebKit 引擎 · 優(yōu)化的圖形庫 包括定制的2D圖形庫,3D圖形庫基于OpenGL ES 1.0 (硬件加速可選) · SQLite 用作結構化的數(shù)據(jù)存儲 · 多媒體支持 包括常見的音頻、視頻和靜態(tài)圖像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) · GSM 電話技術 (依賴于硬件) · 藍牙Bluet
11、ooth, EDGE, 3G, 和 WiFi (依賴于硬件) · 照相機,GPS,指南針,和加速度計(accelerometer) (依賴于硬件) · 豐富的開發(fā)環(huán)境 包括設備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件 Android 架構下圖顯示的是Android操作系統(tǒng)的主要組件。每一部分將會在下面具體描述。應用程序Android會同一系列核心應用程序包一起發(fā)布,該應用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。應用程序框架開發(fā)人員也可以完全訪問核心應用程序所使
12、用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。隱藏在每個應用后面的是一系列的服務和系統(tǒng), 其中包括; · 豐富而又可擴展的視圖(Views),可以用來構建應用程序, 它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。 · 內(nèi)容提供器(Content Providers)使得應用程序可以訪問另一個應用程序的數(shù)據(jù)(如聯(lián)系人
13、數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù) · 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件( layout files )。 · 通知管理器 (Notification Manager) 使得應用程序可以在狀態(tài)欄中顯示自定義的提示信息。 · 活動管理器( Activity Manager) 用來管理應用程序生命周期并提供常用的導航回退功能。 有關更多的細節(jié)和怎樣從頭寫一個應用程序,請參考 如何編寫一個 Android 應用程序.程序庫Android 包含一些C/C+庫,這些庫能被Android系統(tǒng)中不同的組件使用。
14、它們通過 Android 應用程序框架為開發(fā)者提供服務。以下是一些核心庫:· 系統(tǒng) C 庫 - 一個從 BSD 繼承來的標準 C 系統(tǒng)函數(shù)庫( libc ), 它是專門為基于 embedded linux 的設備定制的。 · 媒體庫 - 基于 PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 · Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個應用程序提 供了2D和3D圖層的無縫融合。 ·
15、 LibWebCore - 一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。 · SGL - 底層的2D圖形引擎 · 3D libraries - 基于OpenGL ES 1.0 APIs實現(xiàn);該庫可以使用硬件 3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。 · FreeType -位圖(bitmap)和矢量(vector)字體顯示。 · SQLite - 一個對于所有應用程序可用,功能強勁的輕型關系型數(shù)據(jù)庫引擎。 Android 運行庫Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能
16、。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬 機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統(tǒng)。 Dalvik虛擬機執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了 優(yōu)化。同時虛擬機是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中 的 "dx" 工具轉化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。Linux 內(nèi)核Android 的核心系統(tǒng)服務依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進程管理, 網(wǎng)絡
17、協(xié)議棧和驅動模型。 Linux 內(nèi)核也同時作為硬件和軟件棧之間的抽象層。Android安裝以及Eclipse插件2008-12-07 16:36文章出處:SDK安裝首先到到下載SDK的壓縮包,直接解壓到你需要的目錄里。里面的Emulator是一個智能手機模擬器。 然后是安裝Eclipse的開發(fā)插件。1)在Eclipse的菜單里選擇Software Updates > Find and Install.2)在隨后出現(xiàn)的窗口里選Search for new features to install,然后“下一步”3)點New Remote Site4)在這里隨便給這個遠程地址輸入一個名字(比如
18、Google Android),在下面輸入網(wǎng)址https:/dl-5)在隨后結果窗口中,選擇Android Plugin > Eclipse Integration > Android Development Tools,然后“下一步”6)接受license后再“下一步”,然后“完成”7)然后點Install All,安裝完后重啟Eclipse8)重新啟動Eclipse后,在Window > Preferences. ,選擇Android面板,然后后點Browse.把輸入SDK的路徑就完成了。調(diào)試配置:Eclipse 1.選擇RUN2.Open Run Dialog3.選擇A
19、ndroid Application4. New(上面的小白紙).看我的文檔然后你按照api說的配置run,然后就可以運行了,我運行的界面,在Android中的瀏覽器中搜索博客園的圖片, 用 Eclipse 開發(fā) Android 應用程序Google Android Development Tools Eclipse 插件入門第 3 頁,共 11 頁文檔選項打印本頁樣例代碼對本教程的評價幫助我們改進這些內(nèi)容Android 應用程序 概述我們來看看 Android 應用程序的四種主要類型:活動、服務、接收器和 ContentProvider。我們
20、還要看看顯示用戶界面(UI)元素的視圖。活動活動是最常用的 Android 應用程序形式?;顒釉谝粋€稱為視圖 的類的幫助下,為應用程序提供 UI。視圖類實現(xiàn)各種 UI 元素,比如文本框、標簽、按鈕和計算平臺上常見的其他 UI 元素。一個應用程序可以包含一個或多個活動。這些活動通常與應用程序中的屏幕形成一對一關系。應用程序通過調(diào)用 startActivity() 或 startSubActivity() 方法從一個活動轉移到另一個活動。如果應用程序只需 “切換” 到新的活動,就應該使用前一個方法。如果需要異步的調(diào)用/響應模式,就使用后一個方法。在這兩種情況下,都需要通過方法的參數(shù)傳遞一個 int
21、ent。由操作系統(tǒng)負責決定哪個活動最適合滿足指定的 intent?;仨撌追蘸徒邮掌髋c其他多任務計算環(huán)境一樣,“在后臺” 運行著一些應用程序,它們執(zhí)行各種任務。Android 把這種應用程序稱為 “服務”。服務是沒有 UI 的 Android 應用程序。接收器是一個應用程序組件,它接收請求并處理 intent。與服務一樣,接收器在一般情況下也沒有 UI 元素。接收器通常在 AndroidManifest.xml 文件中注冊。清單 2 是接收器代碼的示例。注意,接收器的類屬性是負責實現(xiàn)這個接收器的 Java 類。清單 2. 接收器代碼 package com.msi.samplereceiver
22、;import android.content.Context;import android.content.Intent;import android.content.IntentReceiver;public class myreceiver extends IntentReceiver public void onReceiveIntent(Context arg0, Intent arg1) / do something when this method is invoked.回頁首用 ContentProvider 進行數(shù)據(jù)管理 ContentProvider 是 Android 的
23、數(shù)據(jù)存儲抽象機制。我們以移動設備上常見的一種數(shù)據(jù)為例:地址簿或聯(lián)系人數(shù)據(jù)庫。地址簿包含所有聯(lián)系人及其電話號碼,用戶在使用手機時可能需要使用這些數(shù)據(jù)。ContentProvider 對數(shù)據(jù)存儲的訪問方法進行抽象。ContentProvider 在許多方面起到數(shù)據(jù)庫服務器的作用。對數(shù)據(jù)存儲中數(shù)據(jù)的讀寫操作應該通過適當?shù)?ContentProvider 傳遞,而不是直接訪問文件或數(shù)據(jù)庫??赡苓€有 ContentProvider 的 “客戶機” 和 “實現(xiàn)”。下一節(jié)介紹 Android 視圖,這是 Android 在移動設備屏幕上顯示 UI 元素的機制?;仨撌滓晥DAndroid 活動通過視圖顯示 UI
24、 元素。視圖采用以下布局設計之一:LinearVertical 后續(xù)的每個元素都排在前一個元素下面,形成一個單一列。 LinearHorizontal 后續(xù)的每個元素都排在前一個元素右邊,形成一個單一行。 Relative 后續(xù)的每個元素相對于前一個元素有一定的偏移量。 Table 與 HTML 表相似的一系列行和列。每個單元格可以包含一個視圖元素。 選擇一種布局(或布局的組合)之后,就可以用各個視圖顯示 UI。視圖元素由大家熟悉的 UI 元素組成,包括:· Button · ImageButton · EditText · TextView(與標簽相似
25、) · CheckBox · Radio Button · Gallery 和 ImageSwitcher(用來顯示多個圖像) · List · Grid · DatePicker · TimePicker · Spinner(與組合框相似) · AutoComplete(具有文本自動補全特性的 EditText) 視圖是在一個 XML 文件中定義的。清單 3 給出一個簡單的 LinearVertical 布局示例。清單 3. 簡單的 LinearVertical 布局 <?xml version=
26、"1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height
27、="wrap_content" android:text="Activity 1!" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Activity 1, second text view!" /><Button android:layout_width="wrap_content" android:la
28、yout_height="wrap_content" android:text="Switch To Activity 2"id="+id/switchto2"/> </LinearLayout>注意,每個元素有一個或多個屬于 Android 名稱空間的屬性。下一節(jié)討論如何獲取 Android SDK 并在 Eclipse 環(huán)境中配置它。用 Eclipse 開發(fā) Android 應用程序Google Android Development Tools Eclipse 插件入門第 5 頁,共
29、0;11 頁文檔選項打印本頁樣例代碼對本教程的評價幫助我們改進這些內(nèi)容構建 SaySomething Android 應用程序本節(jié)要使用 Android Developer Tools 創(chuàng)建一個基本的 Android 應用程序,它稱為 SaySomething。創(chuàng)建這個應用程序之后,將調(diào)試和運行它。New project 向導第一步是創(chuàng)建一個新項目。選擇用來創(chuàng)建 Android 項目的向導,如下所示。圖 2. New project 向導這個應用程序需要:· Name · Location · Package name · Activity n
30、ame 可以認為這是應用程序的主 “表單” 或屏幕 · Application name 看看這個新項目。圖 3. 新的 Android 項目這會創(chuàng)建一個默認的應用程序,可以構建和運行它??梢栽?Package Explorer 中查看它的組件。回頁首Package ExplorerPackage Explorer(在 Eclipse 的 Java 透視圖中)顯示 Android 示例應用程序的所有組件,見圖 4。圖 4. Package Explorer需要注意的組件包括:src 文件夾 包含示例應用程序的包,即 com.msi.ibmtutorial。 R.java Androi
31、d Developer Tools 自動創(chuàng)建這個文件,它提供訪問 Android 應用程序的各種資源所需的常量。后面會詳細討論 R 類與資源之間的關系。 SaySomething.java 應用程序的主活動類的實現(xiàn)。 Referenced libraries 包含 android.jar,這是 Android SDK 中的 Android 運行時類的 jar 文件。 res 文件夾 包含應用程序的資源,包括:· 圖標 · 布局文件 · 字符串 AndriodManifest.xml 示例應用程序的部署描述符。 接下來,詳細研究一下源代碼?;仨撌讘贸绦虻闹骰顒舆@個
32、示例應用程序由一個活動組成,即 SaySomething。正如前面提到的,SaySomething 類是在 SaySomething.java 文件中實現(xiàn)的。清單 4. SaySomething.java package com.msi.ibmtutorial;import android.app.Activity;import android.os.Bundle;public class SaySomething extends Activity /* Called when the activity is first created. */ Override public void onC
33、reate(Bundle icicle) super.onCreate(icicle); setContentView(R.layout.main); 在這個源代碼片段中,要注意幾點:· SaySomething 是一個普通的 Java 類,包含包和導入語句。 · SaySomething 擴展 android.app 包中的 Android 基類 Activity。 · onCreate() 方法是這個活動的入口點,它接受一個 Bundle 類型的參數(shù)。Bundle 類本質(zhì)上是 map 或 hashmap 的包裝器。在這個參數(shù)中傳遞構造活動所需的元素。本教程不討
34、論這個參數(shù)。 · setContentView(.) 負責用 R.layout.main 參數(shù)創(chuàng)建主 UI。R.layout.main 是應用程序資源中主布局的標識符。 下一節(jié)討論示例應用程序的資源?;仨撌讘贸绦虻馁Y源正如前面提到的,Android 中的資源放在項目的 res 子目錄中。資源分為三類:Drawables 這個文件夾包含圖形文件,比如圖標和位圖。 Layouts 這個文件夾包含表示應用程序布局和視圖的 XML 文件。后面會詳細研究這些文件。 Values 這個文件夾包含 strings.xml 文件。這是為應用程序實現(xiàn)字符串本地化的主要方法。 下一節(jié)研究 main.x
35、ml 文件,了解示例應用程序的 UI 資源。回頁首main.xml這個示例應用程序包含一個活動和一個視圖。應用程序包含一個名為 main.xml 的文件,它代表活動的主 UI 的視覺方面。注意,在 main.xml 中沒有指定在哪里使用這個布局。這意味著,如果需要的話,可以在多個活動中使用它。清單 5 給出布局文件的內(nèi)容。清單 5. 布局文件 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:orientation="
36、;vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, SaySomething" /></LinearLayout>這是最簡單的布
37、局,其中只有一個垂直的線性布局,這意味著所有元素排成一列。這里有一個 TextView 元素,它與其他開發(fā)環(huán)境中的標簽類似。TextView 代表不可編輯的靜態(tài)文本。注意,每個視圖元素(比如這個示例中的 LinearLayout 和 TextView)都有屬于 Android 名稱空間的屬性。一些屬性是所有視圖元素都有的,比如 android:layout_width 和 android:layout_height。這些屬性可以采用的值是:fill_parent 使視圖元素占滿可用的空間。也可以認為這就是 “拉伸”。 wrap_content 這個值讓 Android 把元素一個接一個地排列,
38、不進行拉伸。 在構建期間,對所有資源進行編譯。編譯過程的輸出之一是 R.java 文件,這個文件向應用程序的其余部分提供資源。下面討論 R.java 文件?;仨撌識.javaR.java 文件是在構建時自動創(chuàng)建的,所以不要手工修改它,因為所有修改都會丟失。清單 6 給出這個示例應用程序的 R.java 文件。清單 6. R.java 文件 /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it fo
39、und. It * should not be modified by hand. */package com.msi.ibmtutorial;public final class R public static final class attr public static final class drawable public static final int icon=0x7f020000; public static final class layout public static final int main=0x7f030000; public static final class
40、string public static final int app_name=0x7f040000; R 類包含一些匿名子類,每個子類包含前面描述的各種資源的標識符。注意,這些類都是靜態(tài)的。請注意 R.layout.main 代表的元素。這個標識符代表由 main.xml 定義的布局。在活動的 onCreate 方法中使用過這個值:setContentView(R.layout.main);。這就是在運行時把特定的活動(在這個示例中是 SayAnything)和特定的布局(主布局)聯(lián)系在一起的方法?;仨撌讟嫿☉贸绦蛟谀J情況下,每次保存文件時,都將對它們進行編譯。圖 5. 錯誤面板我們在源
41、代碼中引入了一個錯誤,即在 setContent 和 View 之間加了一個空格。在保存這個文件時,它被編譯并在屏幕底部的 Problems 面板中顯示錯誤。在源代碼中糾正這個錯誤之后,應用程序就能夠成功編譯,并從問題列表中刪除錯誤。回頁首AndroidManifest.xmlAndroidManifest.xml 文件是 Android 應用程序的部署描述符。這個文件列出應用程序中包含的所有活動、服務、內(nèi)容提供器和接收器,以及應用程序支持的 IntentFilter。下面是這個示例應用程序的完整的 AndroidManifest.xml 文件。清單 7. AndroidManifest.xm
42、l 文件 <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=" package="com.msi.ibmtutorial"> <application android:icon="drawable/icon"> <activity class=".SaySomething" android:label="string/app_name"> <
43、;intent-filter> <action android:value="ent.action.MAIN" /> <category android:value="ent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>請注意以下情況:· 這里指定了源文件中的包名。這里采用與 Java 源文件和導入語句相似的模式。&l
44、t;manifest> 標記的實際作用是 “導入” 這個包中的類。在這個文件中,所有非完全限定的類都屬于 package 屬性指定的包。 · <application> 標記的一個屬性引用了應用程序的一個資源。請注意 drawable 標識符前面的 符號。這里的意思是,在應用程序資源的 drawable 文件夾中尋找名為 “icon” 的資源。 · <activity> 標記包含以下屬性和值:o class 屬性表示實現(xiàn)這個活動的 Java 類。 o android:label 是應用程序的名稱。注意,它來自一個字符串資源。string.xml
45、 文件包含應用程序的本地化字符串。 o <intent-filter> 表示應用程序中可用的 IntentFilter。這是 Android 應用程序中最常見的 IntentFilter。這個過濾器的實際意思是,它實現(xiàn) “主” 操作(也就是入口點),而且它位于 OS 的啟動器中。這意味著可以在 Android 設備上像啟動其他應用程序一樣,從應用程序主列表中啟動它。 下一節(jié)討論如何在 Eclipse 中的 Android 模擬器上啟動應用程序?;仨撌走\行應用程序應用程序已經(jīng)成功地編譯了,現(xiàn)在該運行這個示例應用程序了。在 Eclipse 中選擇 Open Run Dialog 或工具
46、欄上的快捷按鈕。這會打開一個對話框,可以在這里創(chuàng)建啟動配置。選擇 Android Application 選項并單擊 New 的圖標。圖 6 顯示本教程示例所用的值。圖 6. Run 對話框指定配置名稱。本教程使用的名稱是 Tutorial Configuration。在可用項目列表中選擇 ibmtutorial 項目(單擊 Browse 可以看到可用項目)。在下拉列表中選擇啟動活動。現(xiàn)在選擇 Emulator 選項卡,根據(jù)需要指定模擬器設置。可以保持默認設置。有兩個設置需要注意,見圖 7。圖 7. Run 對話框,Emulator 選項卡有幾種可供選擇的屏幕大小和方向,還有網(wǎng)絡選擇。如果運行
47、應用程序的移動設備的因特網(wǎng)連接速度不同,網(wǎng)絡選擇就很重要了。在構造應用程序原型時,選擇完整網(wǎng)絡速度而且沒有延遲。開發(fā)了主要功能之后,最好在比較真實的網(wǎng)絡環(huán)境中進行測試,看看應用程序的響應速度如何。選擇 Run 運行示例應用程序。 圖 8. 模擬器應用程序已經(jīng)在模擬器上運行了,現(xiàn)在看看幕后發(fā)生的情況。Dalvik Debug Monitor Service(DDMS)將會幫助檢查應用程序的運行情況?;仨撌渍{(diào)試應用程序要想檢查正在運行的應用程序中發(fā)生了什么情況,就需要查看正在運行的 Dalvik VM。在 Eclipse 中,選擇 Window > Open Perspective >
48、 Other。在出現(xiàn)的對話框中選擇 DDMS。這會在 Eclipse 中打開一個新的透視圖,其中有許多有趣的窗口。下面簡要介紹一下 DDMS 透視圖中提供的資源:LogCat 是一個日志文件,它記錄 VM 中發(fā)生的活動。應用程序可以通過 Log.i(tag,message); 在這個日志文件中添加自己的日志項,其中的 tag 和 message 都是 Java 字符串。Log 類屬于 android.util.Log 包。圖 9 顯示 LogCat。圖 9. LogCat DDMS 中的另一個方便的工具是文件管理器,可以用它訪問模擬器的文件系統(tǒng)。圖 10 顯示在模擬器上部署本教程示例應用程序的
49、位置。圖 10. 在模擬器上部署的示例應用程序用戶應用程序部署在 /data/app 目錄中,而 Android 內(nèi)置的應用程序部署在 /system/app 目錄中。在 DDMS 中還可以查看正在運行的進程。圖 11. 正在運行的進程列表全面討論 Android 應用程序的調(diào)試超出了本教程的范圍,更多信息請參見 參考資料。現(xiàn)在的智能手機操作系統(tǒng)已經(jīng)進入戰(zhàn)國時代,老牌的Symbian、Windows Mobile和BREW面臨著iPhone和Android等新勢力的巨大挑戰(zhàn)。最近有些閑暇時間了,可以研究下新手機操作系統(tǒng)的應用程序開發(fā)了。下一代的手機內(nèi)置功能將不再是決定因素,如何讓第三方快速開發(fā)
50、手機上的應用將是兵家必爭的制高點。 我是一個Windows Mobile程序員,而且也做了很久,為什么在新的手機操作系統(tǒng)里選擇Android?因為Android和Windows Mobile太像了,為什么這么說? 1, 都是操作系統(tǒng)與手機硬件分離模式,最有趣的是硬件供應商竟然是一家; 2, 可以使用托管代碼來進行開發(fā)(.NET CF和Java) 3, 免費發(fā)布的SDK 4, IDE集成式開發(fā)環(huán)境(Visual Studio和Eclipse) 5, 強大的服務器端軟
51、件支持(Windows Server、SQL Server、Exchange和Google Online Service) 所以說,從技術方向上來說,Windows Mobile和Android是相同技術的不同實現(xiàn),體現(xiàn)了以軟件和在線服務為核心的思想,區(qū)別于iPhone和Symbian的以手機為核心的思路?,F(xiàn)在還說不好這兩種思路誰對誰錯。但是,我不選擇iPhone還有一個非常重要的原因:我沒有Mac電腦,所以無法搭建開發(fā)環(huán)境。如果將來iPhone落敗,這將是一個非常致命的失誤。 開發(fā)環(huán)境 好了,先來介紹一下開發(fā)環(huán)境,我的操作系統(tǒng)是Windows Vista,
52、沒有安裝Visual Studio開發(fā)工具(不是我平時的工作用機)。第一步是訪問Android主頁,通過Google是很容易訪問到的。必須承認,Android文檔已經(jīng)比我半年前訪問時有很大的提高了,可以很容易地找到如何安裝開發(fā)環(huán)境的指南。對于我們這些非Java 開發(fā)者來說,這非常有用。用代碼來改變屏幕(垂直或水平)摘自:android.view.IWindowManager windowService = android.view.IWindowManager.Stub.asInterface(android.os.ServiceManager.getService("window&
53、quot;);try if (windowService.getOrientation() = 0) /Orientation vertical windowService.setOrientation(1); /Orientation horizontal Log.i("info", "orientation 1 "+windowService.getOr
54、ientation(); else Log.i("info", "orientation 0 "+windowService.getOrientation();
55、0; catch (DeadObjectException e) e.printStackTrace();UID1 帖子519 精華0 積分5 閱讀權限200 在線時間618 小時 注冊時間2008-6-5 最后登錄2009-3-18 查看詳細資料TOP Android程序開發(fā)初級教程(二)摘自:7f020000; ; public static final class layout
56、160; public static final int main=0x7f030000; ; public static final class string public static final int app_name=0x7fEclipse開發(fā)Google Android應用程序教程(一)摘自:Eclipse開發(fā)Google Android應用程序教程(二)摘自:Android Software
57、Developer Kit我們已經(jīng)大致了解了 Android 平臺,現(xiàn)在討論如何設置 Eclipse 環(huán)境來支持 Android 應用程序開發(fā)。本節(jié)討論如何獲取 Android SDK 并在 Eclipse 環(huán)境中配置它。獲取和安裝 Eclipse如果您還沒有安裝 Eclipse,那么從 Eclipse Foundation 下載并安裝 Eclipse IDE 最新的穩(wěn)定版。安裝包是一個壓縮的文件夾。把這個文件夾的內(nèi)容解壓到您計算機上的適當位置。安裝程序并不在 Windows® 上創(chuàng)建任何圖標或快捷方式。對于本教程,Eclipse 文件夾位于 c:softwareeclipse 目錄
58、。雙擊 eclipse 安裝目錄中的 eclipse.exe 啟動 Eclipse。這會啟動 IDE。軟件提示您指定一個 “工作空間” 并建議一個默認位置,比如 c:documents and settingsusernameworkspace。選擇這個位置或者指定另一個工作空間位置。啟動 Eclipse 之后,單擊主屏幕上的 Workbench - Go to the workbench 圖標。現(xiàn)在該獲取 Android SDK 了。獲取和安裝 Android SDK有針對 Windows、Mac OS X(只有 Intel® 版)和 Linux(i386)的 SDK 安裝版。選擇適合您平臺的最新的 SDK 版本。注意,到編寫本教程時,最新的 Android SDK 版本是 m3-rc37a。Android SD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥用甘草項目營銷計劃書
- 肚臍穿孔器械項目運營指導方案
- 空貴金屬制粉餅盒細分市場深度研究報告
- 自行車曲柄市場發(fā)展前景分析及供需格局研究預測報告
- 醫(yī)用抗真菌霜產(chǎn)品供應鏈分析
- 成比例的模型車產(chǎn)品供應鏈分析
- 尿素合成塔產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 家用電凈水器產(chǎn)品供應鏈分析
- 牛奶均質(zhì)機項目營銷計劃書
- 冰球守門員用保護墊產(chǎn)品供應鏈分析
- 袁隆平的英文簡介課件
- 泥石流治理工程施工方案
- LY/T 2586-2016空氣負(氧)離子濃度觀測技術規(guī)范
- GB/T 6723-2008通用冷彎開口型鋼尺寸、外形、重量及允許偏差
- GB/T 25216-2010煤與瓦斯突出危險性區(qū)域預測方法
- 高原疾病防治知識培訓課件
- 玉米高產(chǎn)高效生產(chǎn)技術全套課件
- 勝達因高速泵介紹課件
- 監(jiān)理通風與空調(diào)質(zhì)量評估報告
- 擠壓造粒機組培訓課件
- 危險作業(yè)管理方案
評論
0/150
提交評論