第3章Anroid應用程序_第1頁
第3章Anroid應用程序_第2頁
第3章Anroid應用程序_第3頁
第3章Anroid應用程序_第4頁
第3章Anroid應用程序_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第3章章 android應用程序應用程序3.1 第一個android程序n創(chuàng)建android工程q在eclipse程序中建立過的android工程,工程名稱和目錄結構將顯示在package explorer區(qū)域內3.1 第一個android程序n創(chuàng)建android工程q打開android工程向導:filenewprojectandroidandroid project 或 file newother androidandroid project 3.1 第一個android程序n創(chuàng)建android工程q填寫工程名稱:工程名稱必須唯一,不能與已有的工程重名q在project name中填入he

2、lloandroid3.1 第一個android程序n創(chuàng)建android工程q選擇創(chuàng)建方式n可以創(chuàng)建新android工程,也可利用已有代碼創(chuàng)建android工程,缺省為創(chuàng)建新android工程;選擇“create new project in workspace”n可以使用默認位置存儲,也可取消復選框,選擇其他位置保存,缺省為使用默認位置e:/android/workplace/。使用默認位置存儲,這里保存位置在: e:/android/workplace/helloandroid3.1 第一個android程序n創(chuàng)建android工程q選擇編譯目標。有三個選項n第一個是標準的1.1版本and

3、roid系統(tǒng),api等級為2n第二個是標準的1.5版本的android系統(tǒng), api等級為3n第三個是包含google api的1.5版本的android系統(tǒng), api等級為3q選擇不同版本的android系統(tǒng),引入不同版本的android.jar包。這里選擇標準的1.5版本android系統(tǒng)3.1 第一個android程序n創(chuàng)建android工程q填寫相關信息n應用程序名稱,即android程序在手機中顯示的名稱,顯示在手機的頂部。在application name填入helloandroidn包名稱是包的命名空間,需遵循java包的命名方法,由兩個或多個標識符組成,中間用點隔開。為了包名稱

4、的唯一性,可以采用反寫電子郵件地址的方式。3.1 第一個android程序n創(chuàng)建android工程q填寫相關信息n創(chuàng)建activity是個可選項,如需要自動生成一個activity的代碼文件,則選擇該項。activity的名稱與應用程序的名稱不同,但為了簡潔,可以讓他們相同,表示這個activity是android程序運行時首先顯示給用戶的界面。在 create activity填入helloandroid3.1 第一個android程序n創(chuàng)建android工程q填寫相關信息nsdk最低版本是android程序能夠運行的最低的api等級,如果手機的api等級低于程序的sdk最低版本,則程序無法

5、在該android系統(tǒng)中運行。在這里,之前選擇標準的1.5版本的android系統(tǒng),則sdk等級被自動填入3,此項無需更改3.1 第一個android程序n啟動eclipse3.1 第一個android程序nandroid虛擬設備(avd) avd是對android模擬器進行自定義的配置清單,能夠配置android模擬器的硬件列表和外觀,支持android系統(tǒng)版本、附件sdk庫和儲存設置等信息。因為1.5版本的android sdk中沒有附帶任何配置好的avd,所以需建立一個avd 3.1 第一個android程序n建立avdq使用windows系統(tǒng)命令行工具cmd:開始運行cmd中啟動命令行

6、工具,并進入/tools目錄下。在這里,android sdk 安裝在e:androidandroid-sdk-windows-1.5_r1q利用android list targets命令搜索/platforms和/add-ons目錄下所有有效的android系統(tǒng)映像,并將android系統(tǒng)映像列表顯示在命令行工具中,共有三個可以選擇的編譯目標:1.1版本android系統(tǒng)、 1.5版本android系統(tǒng)和google api的1.5版本android系統(tǒng),其中前兩個系統(tǒng)映像的type屬性是platform,自行配置模擬器的硬件配置清單,最后一個的type屬性是add-on,不能更改配置清單

7、3.1 第一個android程序n建立avd3.1 第一個android程序n建立avdq使用android create avd-n android1.5 t 2命令,以id為2的1.5版本android系統(tǒng)為目標,建立一個名為android1.5的avdn-n參數(shù)表明avd的名稱n-t參數(shù)表明選擇的android系統(tǒng)映像的id值n可以直接缺省的硬件配置,當然也可以重新定制模擬器支持的硬件清單3.1 第一個android程序n建立avdq在建立過程中,android工具會在文件系統(tǒng)中建立android1.5.ini文件和android1.5.avd目錄nandroid1.5.ini文件用來保

8、存android1.5.avd目錄所在的位置nandroid1.5.avd目錄用來保存avd配置文件、用戶數(shù)據文件、sd卡映像和其他模擬器運行過程中可能產生的文件n如果用戶使用的是windows xp系統(tǒng),則目錄保存在c:documents and settings.android下n如果用戶使用的是windows vista系統(tǒng),則目錄保存在 c:users.android下3.1 第一個android程序n啟動選項q路徑:runrun configuration或rundebug configuration配置模擬器的啟動選項q可以選擇不同的avd、配置網絡速度、網絡延遲、控制臺的字符編碼

9、和標準輸入輸出等內容。一般只需選擇正確的avd即可3.1 第一個android程序n啟動android程序q路徑:runrun android application或rundebug android applicationq在程序調試完畢后,可直接再次運行android程序,以便節(jié)約啟動模擬器的時間3.2 android程序結構 在建立helloandroid程序的過程中,adt會自動建立一些目錄和文件,這些目錄和文件有其固定的作用,有的允許修改,有的不能修改。下面逐一的介紹3.2 android程序結構n在“package explore”中,adt以工程名稱helloandroid作為根

10、目錄,將所有字段生成的和非自動生成的文件都保存在這個根目錄下n根目錄包含四個子目錄:src、assets、res和gen,一個庫文件android.jar,以及兩個工程文件androidmanifest.xml和perties3.2 android程序結構nsrc目錄是源代碼目錄,所有允許用戶修改的java文件和用戶自己添加的java文件都保存在這個目錄中nhelloandroid工程建立初期,adt根據用戶在工程向導中的“create activity”選項,自動建立helloandroid.java文件3.2 android程序結構nhelloandroid.java

11、是android工程向導根據activity名稱創(chuàng)建的java文件,這個文件完全可以手工修改。為了在android系統(tǒng)上顯示圖形界面,需要使用代碼繼承activity類,并在oncreate()函數(shù)中聲明需要顯示的內容nhelloandroid.java文件的代碼如下1.package edu.hdu.helloandroid;2. 3.import android.app.activity;4.import android.os.bundle;5. 6.public class helloandroid extends activity 7. /* called when the activ

12、ity is first created. */8. override9. public void oncreate(bundle savedinstancestate) 10. super.oncreate(savedinstancestate);11. setcontentview(r.layout.main);12. 13. 3.2 android程序結構n第3行和第4行的代碼通過android.jar從android sdk中引入了activity和bundle兩個重要的包,用以子類繼承和信息傳遞n第6行代碼聲明helloandroid類繼承activity類n第8行代碼表明需要重寫o

13、ncreate()函數(shù)n第9行代碼的oncreate()會在activity首次啟動時會被調用,為了便于理解,可以認為oncreate()是helloandroid程序的主入口函數(shù)n第10行代碼調用父類的oncreate()函數(shù),并將savedinstancestate傳遞給父類,savedinstancestate是activity的狀態(tài)信息n第11行代碼聲明了需要顯示的用戶界面,此界面是用xml語言描述的界面布局,保存在scr/ layout/main.xml資源文件3.2 android程序結構ngen目錄是1.5版本新增的目錄,用來保存adt自動生成的java文件,例如r.java或a

14、idl文件nr.java文件是adt自動生成的文件,包含對drawable、layout和values目錄內的資源的引用指針,android程序能夠直接通過r類引用目錄中的資源3.2 android程序結構qr.java文件不能手工修改,如果向資源目錄中增加或刪除了資源文件,則需要在工程名稱上右擊,選擇refresh來更新r.java文件中的代碼qr類包含的幾個內部類,分別與資源類型相對應,資源id便保存在這些內部類中,例如子類drawable表示圖像資源,內部的靜態(tài)變量icon表示資源名稱,其資源id為0 x7f020000。一般情況下,資源名稱與資源文件名相同3.2 android程序結構

15、nhelloandroid工程生成的r.java文件的代碼1.package edu.hdu.helloandroid;2.public final class r 3. public static final class attr 4. 5. public static final class drawable 6. public static final int icon=0 x020000;7. 8. public static final class layout 9. public static final int main=0 x030000;10. 11. public stat

16、ic final class string 12. public static final int app_name=0 x040001;13. public static final int hello=0 x040000;14. 15. 3.2 android程序結構n引用資源 資源引用有兩種情況:一種是在代碼中引用資源;另一種是在資源中引用資源q代碼中引用資源,需要使用資源的id,可以通過r.resource_type.resource_name或android.r.resource_type.resource_name獲取資源idnresource_type代表資源類型,也就是r類中的

17、內部類名稱nresource_name代表資源名稱,對應資源的文件名或在xml文件中定義的資源名稱屬性q資源中引用資源,引用格式: package:type:namen表示對資源的引用npackage是包名稱,如果在相同的包,package則可以省略3.2 android程序結構nandroid.jar文件是android程序所能引用的函數(shù)庫文件,android通過平臺所支持api都包含在這個文件中nassets目錄用來存放原始格式的文件,例如音頻文件、視頻文件等二進制格式文件。此目錄中的資源不能被r.java文件索引。,所以只能以資截流的形式讀取。一般情況下為空3.2 android程序結構

18、nres目錄是資源目錄,有三個子目錄用來保存android程序所有資源qdrawable目錄用來保存圖像文件qlayout目錄用來保存與用戶界面相關的布局文件qvaluse目錄保存文件顏色、風格、主題和字符串等q在hello android工程中,adt在drawable目錄中自動引入了icon.png文件,作為helloandroid程序的圖標文件;在layout目錄生成了mail.xml文件,用于描述用戶界面3.2 android程序結構nmain.xml文件,是界面布局文件,利用xml語言描述的用戶界面n界面布局的相關內容將在第5章用戶界面設計中進行詳細介紹3.2 android程序結構

19、nmain.xml文件的代碼q第7行的代碼說明在界面中使用textview控件,textview控件主要用來顯示字符串文本q第10行代碼說明textview控件需要顯示的字符串,非常明顯,string/hello是對資源的引用2. 3.2 android程序結構nstrings.xml文件的代碼q通過strings.xml文件的第3行代碼分析,在textview控件中顯示的字符串應是“hello world, helloandroid!”q如果讀者修改strings.xml文件的第3行代碼的內容,重新編譯、運行后,模擬器中顯示的結果也應該隨之更改1.2.3. hello worl

20、d, helloandroid!4. helloandroid5.3.2 android程序結構nandroidmanifest.xml是xml格式的android程序聲明文件,包含了android系統(tǒng)運行android程序前所必須掌握的重要信息,這些信息包含應用程序名稱、圖標、包名稱、模塊組成、授權和sdk最低版本等,而且每個android程序必須在根目錄下包含一個androidmanifest.xml文件3.2 android程序結構nandroidmanifest.xml文件的代碼1.2.6. 8. 10. 11. 12. 13. 14. 15. 16. 17. 3.2 android程

21、序結構nandroidmanifest.xml文件的根元素是manifest,包含了xmlns:android、package、android:versioncode和android:versionname共4個屬性qxmlns:android定義了android的命名空間,值為http:/ android程序結構nmanifest元素僅能包含一個application元素,application元素中能夠聲明android程序中最重要的四個組成部分,包括activity、service、broadcastreceiver和contentprovider,所定義的屬性將影響所有組成部分q第6行

22、屬性android:icon定義了android應用程序的圖標,其中drawable/icon是一種資源引用方式,表示資源類型是圖像,資源名稱為icon,對應的資源文件為res/drawable目錄下的icon.pngq第7行屬性android:label則定義了android應用程序的標簽名稱 3.2 android程序結構nactivity元素是對activity子類的聲明,必須在androidmanifest.xml文件中聲明的activity才能在用戶界面中顯示q第8行屬性android:name定義了實現(xiàn)activity類的名稱,可以是完整的類名稱,也可以是簡化后的類名稱q第9行屬性

23、android:label則定義了activity的標簽名稱,標簽名稱將在用戶界面的activity上部顯示,string/app_name同樣屬于資源引用,表示資源類型是字符串,資源名稱為app_name,資源保存在res/values目錄下的strings.xml文件中nintent-filter中聲明了兩個子元素action和category,intent-filter使helloandroid程序在啟動時,將.helloandroid這個activity作為默認啟動模塊3.2 android程序結構n可視化編輯器 雙擊androidmanifest.xml文件,直接進入可視化編輯器,用

24、戶可以直接編輯android工程的應用程序名稱、包名稱、圖標、標簽和許可等相關屬性3.2 android程序結構perties文件記錄android工程的相關設置,該文件不能手動修改,需右鍵單擊工程名稱,選擇“properties”進行修改n在perties文件中只有第12行是有效代碼,說明android程序的編譯目標1.# this file is automatically generated by android tools.2.# do not modify this file - your changes will be erased!3

25、.# 4.# this file must be checked in version control systems.5.# 6.# to customize properties used by the ant build system use,7.# perties, and override values to adapt the script to your8.# project structure.9.# project target.10. target=android-33.3 命令行創(chuàng)建程序n 命令行工具q命令行工具保存在/tools目錄下n利用命令行工具開

26、發(fā)android程序的步驟q使用android.bat建立hellocommondline工程所需的目錄和文件q使用apache ant對hellocommondline工程進行編譯和apk打包q使用adb.exe將hellocommondline工程上傳到android模擬器中3.3 命令行創(chuàng)建程序n使用android.bat建立hellocommondline工程所需的目錄和文件qandroid.bat是一個批處理文件,可以用來建立和更新android工程,同時也管理avd,能夠創(chuàng)建android工程所需要的目錄結構和文件qandroid.bat建立和更新android工程的命令和參數(shù)說明

27、命令命令參數(shù)參數(shù)說明說明備注備注android create project-k 包名稱必備參數(shù)-n 工程名稱-a activity名稱-t 新工程的編譯目標必備參數(shù)-p 新工程的保存路徑必備參數(shù)android update project-t 設定工程的編譯目標 必備參數(shù)-p 工程的保存路徑必備參數(shù)-n 工程名稱3.3 命令行創(chuàng)建程序q建立過程:開始運行cmd 啟動cmd 并進入/tools目錄,輸入命令 或者 q新工程的名稱為hellocommandline,包名稱為edu.hdu.hellocommandline,activity名稱是hellocommandline,編譯目標的id為2

28、,新工程的保存路徑是e:androidworkplacehellocommandline android create project n hellocommandline k edu.hrbeu.hellocommandline a hellocommandline t 2 p e:androidworkplacehellocommandlineandroid create project -name hellocommandline -package edu.hrbeu.hellocommandline -activity hellocommandline -target 2 -path

29、e:androidworkplacehellocommandline3.3 命令行創(chuàng)建程序q運行結果 3.3 命令行創(chuàng)建程序q仔細觀察android.bat建立的目錄和文件,發(fā)現(xiàn)其中一些在eclipse開發(fā)環(huán)境中從未出現(xiàn)過的目錄和文件,例如build.xml、perties和tests目錄。這些新目錄和文件的出現(xiàn),主要是為了在構建android程序時使用apache antqapache antn一個將軟件編譯、測試、部署等步驟聯(lián)系在一起的自動化工具,多用于java環(huán)境中的軟件開發(fā)n若在構建android程序時使用apache ant,可以簡化程序的編譯和apk打包過程3.3

30、 命令行創(chuàng)建程序qhellocommondline工程文件和目錄列表文件文件說明說明androidmanifest.xml應用程序聲明文件build.xmlant的構建文件perties保存編譯目標,由android工具自動建立,不可手工修改perties保存自定義的編譯屬性 perties保存android sdk的路徑,僅供ant使用eduhrbeuhellocommandline/hellocommandline.javaactivity文件bin/編譯腳本輸出目錄gen/保存ant自動生成文件的目錄, 例如r.javalibs/

31、私有函數(shù)庫目錄res/資源目錄src/源代碼目錄tests/測試目錄3.3 命令行創(chuàng)建程序qhellocommondline工程文件和目錄列表nlibs目錄用來保存私有的函數(shù)庫文件,在工程創(chuàng)建初期是空文件夾ntests目錄用于測試用途,在工程創(chuàng)建初期,文件夾的內容是hellocommandline工程所有文件和目錄的一個完成拷貝perties文件是保存android sdk的路徑的文件,由android工具自動建立,不允許進行手工修改perties文件該的主要用途是供apache ant尋找android sdk的保存路徑,第10行說明了android

32、sdk的路徑是e:androidandroid-sdk-windows-1.5_r13.3 命令行創(chuàng)建程序perties文件的代碼如下1.# this file is automatically generated by android tools.2.# do not modify this file - your changes will be erased!3.# 4.# this file must *not* be checked in version control systems,5.# as it contains information specific

33、to your local configuration.6. 7.# location of the sdk. this is only used by ant8.# for customization when using a version control system, please read the9.# header note.10. sdk-location=e:androidandroid-sdk-windows-1.5_r13.3 命令行創(chuàng)建程序qbpertiesn保存自定義的編譯屬性的文件,能夠修改應用程序的包名稱、源代碼目錄和編譯腳本輸出目錄等apache

34、ant編譯屬性n在工程建立初期,perties不包含任何有效代碼,用戶可以手工修改文件內容n如果需要修改應用程序的包名稱,可以取消第8行的注釋符號#,并將com.example.myproject替換為正確的包名稱n修改源代碼目錄和編譯腳本輸出目錄的位置,分別在perties文件的第11行和第14行3.3 命令行創(chuàng)建程序perties文件的代碼如下1.# this file is used to override default values used by the ant build system.2.# 3.# this file m

35、ust be checked in version control systems, as it is4.# integral to the build system of your project.5. 6.# the name of your application package as defined in the manifest.7.# used by the uninstall rule.8.#application-package=com.example.myproject9. 10. # the name of the source folder.11. #source-fol

36、der=src12. 13. # the name of the output folder.14. #out-folder=bin3.3 命令行創(chuàng)建程序qbuild.xml是apache ant的構建文件,為編譯android程序提供基礎信息q去除注釋后的build.xml文件代碼如下1.2.3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 3.3 命令行創(chuàng)建程序nbuild.xml文件的第4行至第6行代碼分別說明三個屬性文件的名稱n第8行至14行代碼說明了構建過程中使用到的庫文件的路徑15.16. 19. 20. 21. 3.3 命令行創(chuàng)建程序n使用apac

37、he ant對hellocommondline工程進行編譯和apk打包q下載apache ant地址: /bindownload.cgiq網站提供zip、tar.gz 和tar.bz2三種格式下載,windows系統(tǒng)用戶推薦下載zip格式的二進制包q這里下載的apache ant壓縮包為apache-ant-1.7.1-bin.zip,版本號為1.7.1,并將其解壓縮在e:android目錄下3.3 命令行創(chuàng)建程序q在windows系統(tǒng)中添加新的環(huán)境變量,apache才能正常運行。修改位置:“我的電腦” “屬性” “高級” “環(huán)境變量” “系統(tǒng)變量”q新

38、增的系統(tǒng)環(huán)境變量變量名變量名變量值變量值備注備注java_homec:program filesjavajdk_12新增變量ant_homee:androidapache-ant-新增變量android_homee:androidandroid-sdk-windows-1.5_r1新增變量classpath$ j ava _ h o m e / j r e / l i b : $ j ava _ h o m e / l i b : $java_home/lib/tools.jar新增變量path;%ant_home%bin;%java_home%/bin; % android_home %to

39、ols已有變量3.3 命令行創(chuàng)建程序qjava_home是jdk的安裝目錄,根據jdk實際安裝位置進行修改qant_home是apache ant的安裝目錄,根據apache ant實際安裝位置進行修改qandroid_home是android sdk的安裝目錄,根據實際安裝位置進行修改變量名變量名變量值變量值備注備注java_homec:program filesjavajdk_12新增變量ant_homee:androidapache-ant-新增變量android_home e:androidandroid-sdk-windows-1.5_r1新增變量classpath$ j ava _ h o m e

溫馨提示

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

評論

0/150

提交評論