Android程序開發(fā)初級教程_第1頁
Android程序開發(fā)初級教程_第2頁
Android程序開發(fā)初級教程_第3頁
Android程序開發(fā)初級教程_第4頁
Android程序開發(fā)初級教程_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Android程序開發(fā)初級教程(一) 開始 Hello Android平臺簡介令人激動的Google手機(jī)操作系統(tǒng)平臺-Android正式發(fā)布了,這是一個開放源代碼的操作系統(tǒng),內(nèi)核為Linux. 作為開發(fā)者,我們所關(guān)心的是這個平臺的架構(gòu)以及所支持的開發(fā)語言。下面是這個平臺的架構(gòu)模型:這個平臺有以下功能:+ Application framework: 可重用的和可替換的組件部分,在這個層面上,所有的軟件都是平等的。+ Dalvik virtul machine: 一個基于Linux的虛擬機(jī)。+ Integrated browser: 一個基于開源的WebKit引擎的瀏覽器,在應(yīng)用程序?qū)印? Op

2、timized graphics: 包含一個自定義的2D圖形庫和基于OpenGL ES 1.0 標(biāo)準(zhǔn)的3D實現(xiàn)。+ SQLite: 數(shù)據(jù)庫+ Media support: 通用的音頻,視頻和對各種圖片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)+ GSM Telephony: GSM 移動網(wǎng)絡(luò), 硬件支持。+ Bluetooth, EDGE, 3G, and WiFi: 都依賴于硬件支持。+ Camera, GPS, compass, and accelerometer: 都依賴于硬件支持。+Rich development environ

3、ment: 包含一套完整的開發(fā)工具集,方便跟蹤調(diào)試,內(nèi)存檢測和性能測試,而且提供了Eclipse的插件。下面我們就來親身體驗一下Android程序的開發(fā)之旅。先介紹一下開發(fā)環(huán)境,下面是對系統(tǒng)及相關(guān)軟件的版本要求:操作系統(tǒng):Windows XP or VistaMac OS X 10.4.8 or later (x86 only)Linux (tested on Linux Ubuntu Dapper Drake)Supported Development EnvironmentsEclipseEclipse 3.2, 3.3 (Europa)Android Development Tools

4、plugin (optional)Other development environments or IDEsJDK 5 or JDK 6 (JRE alone is not sufficient)Not compatible with Gnu Compiler for Java (gcj)Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows我使用Eclipse 3.3 + JDK 1.6. + Ant 1.7 的組合。還有兩個重要的就是: Android SDK 以及 Android 用于Eclipse 中

5、的插件。Android SDK 的下載鏈接: 如果你是第一次使用這些軟件,請注意安裝順序和設(shè)置好環(huán)境變量。 一般的順序是先安裝 JDK 然后 解壓 ant 壓縮包,然后設(shè)置 java 環(huán)境變量和 ant 環(huán)境變量, 然后是解壓 Android SDK ,再設(shè)置 Android SDK的環(huán)境變量。 總之就是把 JDK, ANT, Android SDK的路徑添加到 path 里。Android for eclipse plug in 在安裝過程很簡單,通過網(wǎng)絡(luò)安裝插件就可以了,這個是 URL: https:/dl-具體的配置過程,可以查看:以下為一個hello Android的開發(fā)步驟:創(chuàng)建一個

6、項目:創(chuàng)建一個新項目是很簡單的,只要你安裝了Eclipse插件,并且你的Eclipse軟件版本在3.2或3.3,你就可以開始開發(fā)了。首先, 看一下要創(chuàng)建"Hello, World"程序從高級層面上有哪些步驟:1, 通過File -> New -> Project 菜單,建立新項目"Android Project"2, 填寫新項目各種參數(shù)。3, 編輯自動生成的代碼模板。盡此而已,我們通過下面的詳細(xì)說明來完成每個步驟。1,創(chuàng)建一個新的Android項目啟動Eclipse, 選擇File -> New -> Project 菜單, 如果

7、你安裝好了Android的Eclipse插件,你將會在彈出的對話框中看到"Android Project" 的選項。選擇“Android Project”,點(diǎn)擊Next 按鈕。2, 填寫項目的細(xì)節(jié)參數(shù).下面的對話框需要你輸入與項目有關(guān)的參數(shù):這個表格中詳細(xì)介紹了每個參數(shù)的含義:Project Name: 包含這個項目的文件夾的名稱。Package Name: 包名,遵循JAVA規(guī)范,用包名來區(qū)分不同的類是很重要的,例子中用到的是"com.google.android",你應(yīng)該按照你的計劃起一個有別于這個的路徑的名稱。Activity Name: 這是項目

8、的主類名,這個類將會是Android的Activity類的子類。一個Activity類是一個簡單的啟動程序和控制程序的類。它可以根據(jù)需要創(chuàng)建界面,但不是必須的。Application Name:一個易讀的標(biāo)題在你的應(yīng)用程序上。在"選擇欄"的"Use default location" 選項,允許你選擇一個已存在的項目。3,編輯自動生成的代碼。當(dāng)項目創(chuàng)建后,你剛才創(chuàng)建的HelloAndroid就會是包含下面的代碼.public class HelloAndroid extends Activity/* Called when the activity is

9、 first created. */Overridepublic void onCreate(Bundle icicle)super.onCreate(icicle);setContentView(R.layout.main);下面我們開始修改它構(gòu)建界面當(dāng)一個項目建立好以后,最直接的效果,就是在屏幕上顯示一些文本,下面是完成后的代碼,稍后我們在逐行解釋。public class HelloAndroid extends Activity /* Called when the activity is first created. */Overridepublic void onCreate(Bu

10、ndle icicle) super.onCreate(icicle);TextView tv = new TextView(this);tv.setText("Hello, Android");setContentView(tv);注意你還需要添加 import android.widget.TextView; 在代碼開端處。在Android程序中, 用戶界面是由叫做Views類來組織的。一個View可以簡單理解為可以繪制的對象,像選擇按鈕,一個動畫,或者一個文本標(biāo)簽(這個程序中),這個顯示文本標(biāo)簽的View子類叫做TextView.如何構(gòu)造一個TextView:Texi

11、View tv = new TextView(this);TextView的構(gòu)造參數(shù)是Android程序的Context實例, Context可以控制系統(tǒng)調(diào)用, 它提供了諸如資源解析, 訪問數(shù)據(jù)庫等等。Activity類繼承自Context類,因為我們的HelloAndroid 是Activity的子類,所以它也是一個Context類,所以我們能用"this"在TextView構(gòu)造中。當(dāng)我們構(gòu)造完TextView后,我們需要告訴它顯示什么:tv.setText("Hello, Android");這個步驟很簡單,當(dāng)我們完成了這些步驟以后,最后要把Text

12、View顯示在屏幕上。setContentView(tv);Activity的setContentView()方法指示出系統(tǒng)要用哪個View作為Activity的界面, 如果一個Activity類沒有執(zhí)行這個方法,將會沒有界面并且顯示白屏。在這個程序中,我們要顯示文本,所以我們傳入已創(chuàng)建好的TextView。好了,程序代碼已經(jīng)寫好,下面看看運(yùn)行效果。運(yùn)行代碼: Hello, Android使用Android的Eclipse插件就可以很輕松的運(yùn)行你的程序,選擇Run -> Open Run Dialog。你將會看到下面的對話框下一步,高亮"Android Application&

13、quot; 標(biāo)簽, 然后按下左上角的圖標(biāo)(就是像一片紙帶個小星星那個),或者直接雙擊"Android Application" 標(biāo)簽, 你將會看到一個新的運(yùn)行項目,名為"New_configuration".取一個可以表意的名稱,比如"Hello, Android", 然后通過Browser按鈕選取你的項目(如果你有很多個項目在Eclipse中,確保你選擇要運(yùn)行的項目), 然后插件會自動搜索在你的項目中的Activity類并且將所有找到的添加在"Activity"標(biāo)簽的下拉列表中。我們只有"Hello,

14、Android"一個項目,所以它會作為默認(rèn)選擇。點(diǎn)擊"Apply" 按鈕,下圖到這里,已經(jīng)完成了,你只需要點(diǎn)擊"Run"按鈕,然后 Android的模擬器將會啟動,你的應(yīng)用程序就會被顯示出來。下次繼續(xù)介紹如何把界面的布局用XML表示以及使用命令行進(jìn)行編譯和運(yùn)行Android程序。將界面實現(xiàn)用XML編排 你剛剛完成的"Hello, World"例子我們稱之為”程序化”的界面編排。意思就是說構(gòu)建你的應(yīng)用程序界面是直接使用的源代碼。如果你已經(jīng)完成過很多界面程序,你大概熟悉像此類的方式是多么脆弱:一個對布局小小的修改會對源

15、代碼造成很頭疼的事情。如果忘掉與View的緊密結(jié)合,這個導(dǎo)致代碼出錯和浪費(fèi)你的調(diào)試時間的界面問題也會很簡單。 這就是為什么Android提供了一種可替換的界面構(gòu)建方式: 基于XML的布局文件。最簡單的解釋這個概念的方式就是展示一個例子。我們就用剛才創(chuàng)建的項目來進(jìn)行演示,達(dá)到相同的界面效果。 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="   android:layout_width="fill_parent

16、"   android:layout_height="fill_parent"   android:text="Hello, Android"/>  AndroidXML布局文件的大體的結(jié)構(gòu)很簡單。它是一個標(biāo)簽的樹,任何一個標(biāo)簽就是View類的名字。在這個例子中, 它是一個很簡單的只有一個元素的樹,一個 TextView。 你可以使用任何繼承自View類的名字作為標(biāo)簽的名字。包括在你的代碼中自定義的View類。這個結(jié)構(gòu)可以很容易的構(gòu)建界面,它比你在源代碼中使用的結(jié)構(gòu)和語法更簡單。這個模式的設(shè)計靈感來自于Web

17、開發(fā)。就是可以將界面和應(yīng)用程序邏輯分離的模式。 在這個例子中, 也有些是XML的屬性,下面是他們的含義: 屬性含義xmlns:android這是XML命名空間的聲明,它是告訴Android的工具, 你將要涉及到公共的屬性已被定義在XML命名空間。在每一個Android的布局文件的最外邊的標(biāo)簽必須有這個屬性。android:layout_width這個屬性定義了在屏幕上這個View可用的寬度是多少。android:layout_height這個屬性定義了在屏幕上這個View可用的高度是多少。android:text設(shè)置TextView所包含的文本內(nèi)容,當(dāng)前設(shè)置為”Hello,

18、 Android”信息  以上就是一個XML布局文件的樣子,但是你需要放在哪里?它要放在你的項目目錄的res/ 文件夾下。 “res”是”resources”的縮寫,它是存放所有非代碼資源的文件夾,包含象圖片,本地化字符串和XML布局文件。這些Eclipse的插件已經(jīng)給你創(chuàng)建好了,在我們上面的例子中,我們沒有使用它。在包瀏覽器中,展開res目錄的layout. 并且編輯 main.xml, 替換掉那個文本內(nèi)容,然后保存。 現(xiàn)在,在包瀏覽狀態(tài),打開在代碼文件夾中名為 R.java的文件, 你將看到下面的內(nèi)容: public final class R &#

19、160;   public static final class attr     ;     public static final class drawable         public static final int icon=0x7f020000;     ;     public static final class layout    &#

20、160;    public static final int main=0x7f030000;     ;     public static final class string         public static final int app_name=0x7f040000;     ; ;   一個項目的R.java文件是一個定義所有資源的索引文件。使用這個類就像使用一種速

21、記方式來引用你項目中包含的資源。這個有點(diǎn)特別的強(qiáng)大像對于Eclipse這類IDE的代碼編譯特性,因為它使你快速的,互動式的定位你正在尋找的特定引用。 到目前需要注意的重要事情是叫做”layout”的內(nèi)部類和他的成員變量”main”, 插件會通知你添加一個新的XML布局文件,然后從新產(chǎn)生這個R.java文件,比如你添加了新的資源到你的項目,你將會看到R.java也相應(yīng)的改變了 最后重要的事情是你需要去修改你的HelloAndroid源代碼,去使用新的XML布局你的界面。替換掉編碼式的界面模式。下面是你的新代碼的樣子,你可以看到,代碼變得更加簡單了。 public c

22、lass HelloAndroid extends Activity        Override    public void onCreate(Bundle icicle)         super.onCreate(icicle);        setContentView(R.layout.main);     當(dāng)

23、你做這些改變的時候,不要僅僅復(fù)制,粘貼到你的代碼中,嘗試去體驗R.java的代碼編譯特點(diǎn)。你會發(fā)現(xiàn)它對你有很大的幫助。 現(xiàn)在完成這些改變以后,你就可以重新運(yùn)行你的程序,然后你會發(fā)現(xiàn)兩種不同的界面編排方式會產(chǎn)生同樣的效果。調(diào)試你的項目 這個用于Eclipse中的Android插件作為Eclipse中的調(diào)試器也具有優(yōu)秀的兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣: public class HelloAndroid extends Activity       &

24、#160; Override     public void onCreate(Bundle icicle)         super.onCreate(icicle);         Object o = null;         o.toString();         set

25、ContentView(R.layout.main);       這次簡單的變化會引起一個NullPointerException異常,如果你再次運(yùn)行程序,你將會看到屏幕 要找到什么地方出錯,需要設(shè)置個斷點(diǎn)在你源代碼的 “Object o = null;” 行后(你可以雙擊在Eclipse中顯示行數(shù)的左部區(qū)域), 然后選擇 Run -> Debug 選擇最后一次的運(yùn)行加載。你的程序?qū)仄鹉M器,但是這個時候它會掛起,當(dāng)它走到你剛才設(shè)置的斷點(diǎn)的時候,在Eclipse的調(diào)試模式視圖中,它就會停止在你的代碼處。就像你可以在其他任意

26、程序中做這個一樣。     使用其它的IDE工具創(chuàng)建項目 調(diào)試你的項目這個用于Eclipse中的Android插件作為Eclipse中的調(diào)試器也具有優(yōu)秀的兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣:public class HelloAndroid extends Activity     /* Called when the activity is first created. */    Override 

27、   public void onCreate(Bundle icicle)         super.onCreate(icicle);        Object o = null;        o.toString();        setContentView(R.layout.main);    這次簡單的變化會引起一個NullPointerException異常, 如果你再次運(yùn)行程序,你將會看到下面的屏幕:要找

溫馨提示

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

最新文檔

評論

0/150

提交評論