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

下載本文檔

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

文檔簡介

1、Android程序開發(fā)初級教程(一)開始HelloAndroid平臺簡介令人激動的Google手機操作系統(tǒng)平臺-Android正式發(fā)布了,這是一個開放源代碼的操作系統(tǒng),內(nèi)核為Linux.作為開發(fā)者,我們所關(guān)心的是這個平臺的架構(gòu)以及所支持的開發(fā)語言。下面是這個平臺的架構(gòu)模型:APPI_ICATiaNHomeCoriEacrsPhoneBrowserActivityManagerPackageMin純。廠APPLICATIONWirid&wContentViewManagerProvidersSystemTdephonyManagerManagerManagerN&trfieitifiriM方歸群

2、(XMPPScikLlBRARfEBANDRDioRuntimeSurface1Vtana工亡rMM由Frameworic5QLitcCaneLibrariesrlicriineOpenGLESFneeTypWebKitLinuxKernelDisptayDriverCameraDriverB!ucr&BthDriverFinishMemoryDriverBinder(IPC)DriverUSEDriverKeypadDriverWiFiDriverAudioPcwtrriversMana耳貯Egct這個平臺有以下功能:+Applicationframework:可重用的和可替換的組件部分,在

3、這個層面上,所有的軟件都是平等的。+Dalvikvirtulmachine:一個基于Linux的虛擬機。+Integratedbrowser:一個基于開源的WebKit引擎的瀏覽器,在應(yīng)用程序?qū)印?Optimizedgraphics:包含一個自定義的2D圖形庫和基于OpenGLES1.0標(biāo)準(zhǔn)的3D實現(xiàn)。+SQLite:數(shù)據(jù)庫+Mediasupport:通用的音頻,視頻和對各種圖片格式的支持(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)+GSMTelephony:GSM移動網(wǎng)絡(luò),硬件支持。+Bluetooth,EDGE,3G,andWiFi:都依賴于硬件支持。+Cam

4、era,GPS,compass,andaccelerometer:都依賴于硬件支持。+Richdevelopmentenvironment:包含一套完整的開發(fā)工具集,方便跟蹤調(diào)試,內(nèi)存檢測和性能測試,而且提供了Eclipse的插件。下面我們就來親身體驗一下Android程序的開發(fā)之旅。先介紹一下開發(fā)環(huán)境,下面是對系統(tǒng)及相關(guān)軟件的版本要求:操作系統(tǒng):WindowsXPorVistaMacOSX10.4.8orlater(x86only)Linux(testedonLinuxUbuntuDapperDrake)SupportedDevelopmentEnvironmentsEclipseEclip

5、se3.2,3.3(Europa)AndroidDevelopmentToolsplugin(optional)OtherdevelopmentenvironmentsorIDEsJDK5orJDK6(JREaloneisnotsufficient)NotcompatiblewithGnuCompilerforJava(gcj)ApacheAnt1.6.5orlaterforLinuxandMac,1.7orlaterforWindows我使用Eclipse3.3+JDK1.6.+Ant1.7的組合。還有兩個重要的就是:AndroidSDK以及Android用于Eclipse中的插件。Andr

6、oidSDK的下載鏈接:如果你是第一次使用這些軟件,請注意安裝順序和設(shè)置好環(huán)境變量。一般的順序是先安裝JDK然后解壓ant壓縮包,然后設(shè)置java環(huán)境變量和ant環(huán)境變量,然后是解壓AndroidSDK,再設(shè)置AndroidSDK的環(huán)境變量??傊褪前袹DK,ANT,AndroidSDK的路徑添加到path里。Androidforeclipseplugin在安裝過程很簡單,通過網(wǎng)絡(luò)安裝插件就可以了,這個是URL:https:/dl-具體的配置過程,可以查看:http:/code.google.eom/android/intro/installing.html#otherides以下為一個hel

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

8、roidProject的選項。?=NewProjectSelectawizardWizards;“pcfiltnt曰xtJJavaProject耍自ProjectfromExistingAntBuildfilePlug-inProjectDGeneralpAndroid0AndroidProjectrbc口.已c+十lCVS口EclipseModeHnc,FranneworkNextaCancel選擇AndroidProject”點擊Next按鈕。2,填寫項目的細節(jié)參數(shù)卜面的對話框需要你輸入與項目有關(guān)的參數(shù):NewAndroidProjectNewAndroidProjectGreatesan

9、ewAndroidProjectresource,Projectname:HelloAndroidContentsCreatenewpQjectinworkspaceOCreateprojectfromexistingsourceQUsedefaultlocation,-;-i.;I0.Cl-.lI-I.Ir.PropertiesPackagename:com.google.android.helloActivityname:HelloAndroidApplicationname:HellojAndroidOpenRunDialog。你將會看到下面的對話框Createfmanageandrun

10、conliguraitioiisAndroidApplicati下一步,高亮AndroidApplication標(biāo)簽,然后按下左上角的圖標(biāo)(就是像一片紙帶個小星星那個),或者直接雙擊AndroidApplication標(biāo)簽,你將會看到一個新的運行項目,名為New_configuration.Run0mLiedte,riiapiageandrun(.cmfiguiions“hame:|Nw_tonfiguratkn口AndroidApplicdtioAndroikGenomeServer可GenericServer:Ex4HTTPPreview1JZEEPreviewBljawaApplet*.

11、Java戶pplkmiinnJJJnitJJUnitPlug-inTe5t二;lythontLift-jythanunitt-estrrOSGifrarnewrk:Pvtnon匚“IFiltermatched21of21&uri|Clwst取一個可以表意的名稱,比如Hello,Android,然后通過Browser按鈕選取你的項目(如果你有很多個項目在Eclipse中,確保你選擇要運行的項目),然后插件會自動搜索在你的項目中的Activity類并且將所有找到的添加在Activity標(biāo)簽的下拉列表中。我們只有Hello,Android一個項目,所以它會作為默認選擇。點擊Apply按鈕,下圖到這里

12、,已經(jīng)完成了,你只需要點擊Run按鈕,然后Android的模擬器將會啟動,你的應(yīng)用程序就會被顯示出來。下次繼續(xù)介紹如何把界面的布局用XML表示以及使用命令行進行編譯和運行Android程序。將界面實現(xiàn)用XML編排你剛剛完成的Hello,World例子我們稱之為“程序化”的界面編排。意思就是說構(gòu)建你的應(yīng)用程序界面是直接使用的源代碼。如果你已經(jīng)完成過很多界面程序,你大概熟悉像此類的方式是多么脆弱:一個對布局小小的修改會對源代碼造成很頭疼的事情。如果忘掉與View的緊密結(jié)合,這個導(dǎo)致代碼出錯和浪費你的調(diào)試時間的界面問題也會很簡單。這就是為什么Android提供了一種可替換的界面構(gòu)建方式:基于XML的

13、布局文件。最簡單的解釋這個概念的方式就是展示一個例子。我們就用剛才創(chuàng)建的項目來進行演示,達到相同的界面效果。AndroidXML布局文件的大體的結(jié)構(gòu)很簡單。它是一個標(biāo)簽的樹,任何一個標(biāo)簽就是View類的名字。在這個例子中,它是一個很簡單的只有一個元素的樹,一個TextView。你可以使用任何繼承自View類的名字作為標(biāo)簽的名字。包括在你的代碼中自定義的View類。這個結(jié)構(gòu)可以很容易的構(gòu)建界面,它比你在源代碼中使用的結(jié)構(gòu)和語法更簡單。這個模式的設(shè)計靈感來自于Web開發(fā)就是可以將界面和應(yīng)用程序邏輯分離的模式。在這個例子中,也有些是XML的屬性,下面是他們的含義:屬性含義xmlns:android這

14、是XML#名空間的聲明,它是告訴Android的工具,你將要涉及到公共的屬性已被定義在XML命名空間。在每一個Android的布局文件的最外邊的標(biāo)簽必須有這個屬性。android:layout_width這個屬性定義了在屏幕上這個View可用的寬度是多少。android:layout_height這個屬性定義了在屏幕上這個View可用的高度是多少。android:text設(shè)置TextView所包含的文本內(nèi)容,當(dāng)前設(shè)置為Hello,Android”信息以上就是一個XML布局文件的樣子,但是你需要放在哪里?它要放在你的項目目錄的res/文件夾下?!皉es”是resourced的縮寫,它是存放所有非

15、代碼資源的文件夾,包含象圖片,本地化字符串和XML布局文件。這些Eclipse的插件已經(jīng)給你創(chuàng)建好了,在我們上面的例子中,我們沒有使用它。在包瀏覽器中,展開res目錄的layout.并且編輯main.xml,替換掉那個文本內(nèi)容,然后保存?,F(xiàn)在,在包瀏覽狀態(tài),打開在代碼文件夾中名為R.java的文件,你將看到下面的內(nèi)容:publicfinalclassRpublicstaticfinalclassattr;publicstaticfinalclassdrawablepublicstaticfinalinticon=0x7f020000;publicstaticfinalclasslayoutpu

16、blicstaticfinalintmain=0x7f030000;publicstaticfinalclassstringpublicstaticfinalintapp_name=0x7f040000;一個項目的R.java文件是一個定義所有資源的索引文件。使用這個類就像使用一種速記方式來引用你項目中包含的資源。這個有點特別的強大像對于Eclipse這類IDE的代碼編譯特性,因為它使你快速的,互動式的定位你正在尋找的特定引用。到目前需要注意的重要事情是叫做layout”的內(nèi)部類和他的成員變量“main”插件會通知你添加一個新的XML布局文件,然后從新產(chǎn)生這個R.java文件,比如你添加了新的

17、資源到你的項目,你將會看到R.java也相應(yīng)的改變了最后重要的事情是你需要去修改你的HelloAndroid源代碼,去使用新的XML布局你的界面。替換掉編碼式的界面模式。下面是你的新代碼的樣子,你可以看到,代碼變得更加簡單了。publicclassHelloAndroidextendsActivityOverridepublicvoidonCreate(Bundleicicle)super.onCreate(icicle);setContentView(R.layout.main);當(dāng)你做這些改變的時候,不要僅僅復(fù)制,粘貼到你的代碼中,嘗試去體驗R.java的代碼編譯特點。你會發(fā)現(xiàn)它對你有很大

18、的幫助。現(xiàn)在完成這些改變以后,你就可以重新運行你的程序,然后你會發(fā)現(xiàn)兩種不同的界面編排方式會產(chǎn)生同樣的效果。調(diào)試你的項目這個用于Eclipse中的Android插件作為Eclipse中的調(diào)試器也具有優(yōu)秀的兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣:publicclassHelloAndroidextendsActivityOverridepublicvoidonCreate(Bundleicicle)super.onCreate(icicle);Objecto=null;o.toString();setContentView(R.layo

19、ut.main);這次簡單的變化會引起一個NullPointerException異常,如果你再次運行程序,你將會看到屏幕要找到什么地方出錯,需要設(shè)置個斷點在你源代碼的Objecto=null;”行后(你可以雙擊在Eclipse中顯示行數(shù)的左部區(qū)域),然后選擇Run-Debug選擇最后一次的運行加載。你的程序?qū)仄鹉M器,但是這個時候它會掛起,當(dāng)它走到你剛才設(shè)置的斷點的時候,在Eclipse的調(diào)試模式視圖中,它就會停止在你的代碼處。就像你可以在其他任意程序中做這個一樣。使用其它的IDE工具創(chuàng)建項目調(diào)試你的項目這個用于Eclipse中的Android插件作為Eclipse中的調(diào)試器也具有優(yōu)秀的

20、兼容性。要演示這些,讓我們制造一個bug在代碼中,改變你的HelloAndroid源代碼象下面這樣:publicclassHelloAndroidextendsActivity/*Calledwhentheactivityisfirstcreated.*/OverridepublicvoidonCreate(Bundleicicle)super.onCreate(icicle);Objecto=null;o.toString();setContentView(R.layout.main);這次簡單的變化會引起一個NullPointerException異常,如果你再次運行程序,你將會看到下面的

21、屏幕:ForceQuitAnerrorhasoccurredinprocessCQmoogleiandroid.hello.UnabletostartactivityComponentlnfdccm.google.androld.heMo/com.googie.an(jroid.heIlo.HeiloXkn,III口10:13PMApplicationError:com.google.android.t/、要找到什么地方出錯,需要設(shè)置個斷點在你源代碼的Objecto=null;行后(你可以雙擊在Eclipse中顯示行數(shù)的左部區(qū)域),然后選擇Run-Debug選擇最后一次的運行加載。你的程序?qū)?/p>

22、重起模擬器,但是這個時候它會掛起,當(dāng)它走到你剛才設(shè)置的斷點的時候,在Eclipse的調(diào)試模式視圖中,它就會停止在你的代碼處。就像你可以在其他任意程序中做這個一樣。閃JjHelioAndroid,java-HelloAnciroicl/src/com/gQogle/andrDjdMIpackagecom.go口qlc.wndrtid.hollo:HgIIqAnd口id用ncfconrVgQglw/and口id/heIIq/H回I04ndsetContenViewtR.layout.gj.fi):andrQid/rpvHtmTyTandroid.os.Bundle;tcclissNelieAndroidextendsActivity(/*Calledwhentheactivityisiirstcreated.*/OverridepublicvoidonCreate(Bundleicicle)(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論