




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Android應(yīng)用程序的結(jié)構(gòu)創(chuàng)建Android程序創(chuàng)建Android工程FileNewAndroid Application Project創(chuàng)建Android程序Minium Required SDK: 希望程序能運(yùn)行于其上的最低的Android 版本Target SDK: 就選 4.2.2Package Name: 包名,可以是 :公司名.小組名.程序名例如: pku.eecs.android.helloworld一般都用小寫Activity Name : 缺省的啟動(dòng)類的名字Layout Name:缺省的啟動(dòng)界面的文件名打開現(xiàn)有Android工程File | Import | General
2、 | Existing Project into Workspace 然后選擇工程所在文件夾即可。打開已有工程,要注意版本兼容問題??赡苄枰薷膬商帞?shù)字:1) perties 文件中的:# Project target.target=android-17 /API level,根據(jù)安裝的SDK修改2) AndroidMenifest.xml 文件中的:要在手機(jī)上聯(lián)機(jī)調(diào)試程序,則要根據(jù)手機(jī)的版本調(diào)整第二個(gè)數(shù)字,否則可能找不到手機(jī)SDK Manager 中列出了各版本SDK 的API LevelAndroid程序結(jié)構(gòu)HelloWorld程序教材光盤:011.4HelloWorldAndroid程序
3、結(jié)構(gòu) 在建立HelloWorld程序的過程中,Eclipse會(huì)自動(dòng)建立一些目錄和文件,這些目錄和文件有其固定的作用,有的允許修改,有的不能修改。下面逐一的介紹Android程序結(jié)構(gòu)在“Package Explore”中,ADT以工程名稱HelloWorld作為根目錄,將所有字段生成的和非自動(dòng)生成的文件都保存在這個(gè)根目錄下根目錄包含四個(gè)子目錄:src、assets、res和gen,一個(gè)庫(kù)文件android.jar,以及兩個(gè)工程文件Androidmanifest.xml和pertiesAndroid程序結(jié)構(gòu)src目錄是源代碼目錄,所有允許用戶修改的java文件和用戶自己添加的java文件都保存在這
4、個(gè)目錄中Eclipse 根據(jù)創(chuàng)建工程指定的信息,自動(dòng)建立HelloWorld.java文件Android程序結(jié)構(gòu)HelloWorld.java是Android工程向?qū)Ц鶕?jù)Activity名稱創(chuàng)建的java文件,這個(gè)文件完全可以手工修改。為了在Android系統(tǒng)上顯示圖形界面,需要使用代碼繼承Activity類,并在onCreate()函數(shù)中聲明需要顯示的內(nèi)容HelloWorld.java文件的代碼如下 (P22)package org.crazyit.helloworld;import android.app.Activity;import android.os.Bundle;import a
5、ndroid.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class HelloWorld extends Activity /當(dāng)?shù)谝淮蝿?chuàng)建該Activity時(shí)回調(diào)該方法Override /表示此方法是重寫繼承來的方法public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/設(shè)置使用main.xm
6、l文件定義的頁(yè)面布局setContentView(R.layout.main);/獲取UI界面中ID為R.id.ok的按鈕Button bn = (Button)findViewById(R.id.ok);/為按鈕綁定一個(gè)單擊事件的監(jiān)聽器bn.setOnClickListener(new OnClickListener()public void onClick(View v) /獲取UI界面中ID為R.id.show的文本框final TextView show = (TextView)findViewById(R.id.show);/改變文本框的文本內(nèi)容show.setText(Hello
7、Android + new java.util.Date();); Android程序結(jié)構(gòu)main.xml文件,是界面布局文件,是利用XML語(yǔ)言描述的用戶界面main.xml文件的代碼(P21)Android程序結(jié)構(gòu)gen目錄用來保存ADT自動(dòng)生成的java文件,例如R.java或AIDL文件R.java文件是ADT自動(dòng)生成的文件,包含drawable、layout和values目錄內(nèi)的資源的id,Android程序能夠直接通過R類引用目錄中的資源Android程序結(jié)構(gòu)R.java文件不能手工修改,如果向資源目錄中增加或刪除了資源文件,則需要在工程名稱上右擊,選擇Refresh來更新R.jav
8、a文件中的代碼R類包含的幾個(gè)內(nèi)部類,分別與資源類型相對(duì)應(yīng),資源ID便保存在這些內(nèi)部類中,例如子類drawable表示圖像資源,內(nèi)部的靜態(tài)變量icon表示資源名稱,其資源ID為0 x7f020000。一般情況下,資源名稱與資源文件名相同R.java文件的代碼(P26)package org.crazyit.helloworld;public final class R public static final class attr public static final class drawable public static final int icon=0 x7f020000; public
9、static final class id public static final int ok=0 x7f050001; public static final int show=0 x7f050000; public static final class layout public static final int main=0 x7f030000; public static final class string public static final int app_name=0 x7f040000; Android程序結(jié)構(gòu)引用資源 資源引用有兩種情況:一種是在代碼中引用資源;另一種是
10、在資源中引用資源代碼中引用資源,需要使用資源的ID,可以通過R.resource_type.resource_name或android.R.resource_type.resource_name獲取資源IDresource_type代表資源類型,也就是R類中的內(nèi)部類名稱resource_name代表資源名稱,對(duì)應(yīng)資源的文件名或在XML文件中定義的資源名稱屬性資源中引用資源,引用格式: package:type:name表示對(duì)資源的引用package是包名稱,如果在相同的包,package則可以省略Android程序結(jié)構(gòu)res目錄是資源目錄,有三類子目錄用來保存Android程序所有資源draw
11、able目錄用來保存圖像文件layout目錄用來保存與用戶界面相關(guān)的布局文件valuse目錄保存文件顏色、風(fēng)格、主題和字符串等在HelloWorld工程中,ADT在drawable目錄中自動(dòng)引入了icon.png文件,作為HelloAndroid程序的圖標(biāo)文件;在layout目錄生成了mail.xml文件,用于描述用戶界面Android程序結(jié)構(gòu)Strings.xml文件的代碼 HelloWorldAndroid程序結(jié)構(gòu)android.jar文件是Android程序所能引用的函數(shù)庫(kù)文件,Android通過平臺(tái)所支持API都包含在這個(gè)文件中assets目錄用來存放原始格式的文件,例如音頻文件、視頻
12、文件、文本文件等。此目錄中的資源不能被R.java文件索引。,所以只能以流的形式讀取。一般情況下為空Android程序結(jié)構(gòu)AndroidManifest.xml是XML格式的Android程序聲明文件,包含了Android系統(tǒng)運(yùn)行Android程序前所必須掌握的重要信息,這些信息包含應(yīng)用程序名稱、圖標(biāo)、包名稱、模塊組成、授權(quán)和SDK最低版本等,而且每個(gè)Android程序必須在根目錄下包含一個(gè)AndroidManifest.xml文件HelloWorld程序的AndroidManifest.xml文件的代碼 (P28) Android程序結(jié)構(gòu)AndroidManifest.xml文件的根元素是m
13、anifest,包含了xmlns:android、package、android:versionCode和android:versionName共4個(gè)屬性xmlns:android定義了Android的命名空間,值為/apk/res/androidpackage定義了應(yīng)用程序的包名稱android:versionCode定義了應(yīng)用程序的版本號(hào),是一個(gè)整數(shù)值,數(shù)值越大說明版本越新,但僅在程序內(nèi)部使用,并不提供給應(yīng)用程序的使用者android:versionName定義了應(yīng)用程序的版本名稱,是一個(gè)字符串,僅限于為用戶提供一個(gè)版本標(biāo)識(shí)Android程序結(jié)構(gòu)manifest元素僅能包含一個(gè)applic
14、ation元素,application元素中能夠聲明Android程序中最重要的四個(gè)組成部分,包括Activity、Service、BroadcastReceiver和ContentProvider,所定義的屬性將影響所有組成部分屬性android:icon定義了Android應(yīng)用程序的圖標(biāo),其中drawable/icon是一種資源引用方式,表示資源類型是圖像,資源名稱為icon,對(duì)應(yīng)的資源文件為res/drawable目錄下的icon.png屬性android:label則定義了Android應(yīng)用程序的標(biāo)簽名稱 Android程序結(jié)構(gòu)activity元素是對(duì)Activity子類的聲明,必須在
15、AndroidManifest.xml文件中聲明的Activity才能在用戶界面中顯示屬性android:name定義了實(shí)現(xiàn)Activity類的名稱,可以是完整的類名稱,也可以是簡(jiǎn)化后的類名稱屬性android:label則定義了Activity的標(biāo)簽名稱,標(biāo)簽名稱將在用戶界面的Activity上部顯示,string/app_name同樣屬于資源引用,表示資源類型是字符串,資源名稱為app_name,資源保存在res/values目錄下的strings.xml文件中intent-filter中聲明了兩個(gè)子元素action和category,intent-filter使HelloAndroid程
16、序在啟動(dòng)時(shí),將.HelloAndroid這個(gè)Activity作為默認(rèn)啟動(dòng)模塊應(yīng)用程序權(quán)限說明(P29)許多Android系統(tǒng)的功能,如電話功能,聯(lián)網(wǎng)功能,應(yīng)用程序要使用,則需指明需要使用這些功能。這樣,在安裝應(yīng)用程序的時(shí)候,Android可以提醒用戶,該程序要用到這些功能,以增加程序的安全性。在 AndroidMenifest.xml中聲明權(quán)限來指明要使用的某些功能。聲明程序需要使用打電話功能:應(yīng)用程序權(quán)限說明(P29)聲明需要訪問SD卡: 聲明程序需要使用發(fā)短信功能:各種權(quán)限的聲明辦法:P30Android 應(yīng)用的基本組件(P31)組件是可以調(diào)用的基本功能模塊,Android應(yīng)用程序就是由組
17、件組成的Android系統(tǒng)有四個(gè)重要的組件,分別是Activity、Service、BroadcaseReceiver和ContentProviderAndroid 應(yīng)用的基本組件ActivityActivity是Android程序的呈現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的界面事件Android應(yīng)用程序可以包含一個(gè)或多個(gè)Activity,一般在程序啟動(dòng)后會(huì)呈現(xiàn)一個(gè)Activity,用于提示用戶程序已經(jīng)正常啟動(dòng)在界面上的表現(xiàn)形式:全屏窗體,非全屏懸浮窗體,對(duì)話框Android 應(yīng)用的基本組件(P31)Activity和ViewActivity 是和用戶交互的組件,前面的 Hello
18、World類就是View是各種用戶界面元素的基類Activity要和用戶交互,一般要指定一個(gè)View一個(gè)View可以是一個(gè)組件,比如一個(gè)按鈕,也可以是整個(gè)界面。常在Activity的onCreate方法中,用 setContentView 方法用來指定ViewsetContentView(R.layout.main);指定使用 main.xml中定義的界面。setContentView 的參數(shù)也可以是View及其派生類對(duì)象setTheme(int resid)可以指定窗口風(fēng)格Android 應(yīng)用的基本組件Activity和ViewActivity組件一般需要繼承Activity類程序如果有多個(gè)
19、界面,一般來說就會(huì)編寫多個(gè)Activity,一個(gè)Activity對(duì)應(yīng)于一個(gè)界面。多個(gè)Activity組成Activity棧,當(dāng)前活動(dòng)的Activity位于棧頂如果系統(tǒng)空間不足,Android系統(tǒng)有自動(dòng)將棧里面的Activity 銷毀,這可能導(dǎo)致麻煩。經(jīng)驗(yàn)發(fā)現(xiàn)Activity棧里面有多于2個(gè)Activity的時(shí)候,這種可能性比較大。Android 應(yīng)用的基本組件Service在后臺(tái)長(zhǎng)時(shí)間運(yùn)行的,沒有界面的組件,一般由Service 類派生而來,可以向其他組件提供某種服務(wù),比如接受查詢等等。BroadcaseReceiver廣播事件監(jiān)聽器,用于監(jiān)聽某些特別的事件,包括來自其他程序的事件。比如監(jiān)聽是
20、否有短信過來。BroadcaseReceiver是用來接受并響應(yīng)廣播消息的組件不包含任何用戶界面可以通過啟動(dòng)Activity或者Notification通知用戶接收到重要信息Notification能夠通過多種方法提示用戶,包括閃動(dòng)背景燈、震動(dòng)設(shè)備、發(fā)出聲音或在狀態(tài)欄上放置一個(gè)持久的圖標(biāo)Android 應(yīng)用的基本組件Android 應(yīng)用的基本組件ContentProviderContentProvider是Android系統(tǒng)提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制,應(yīng)用程序可以通過ContentProvider訪問其他應(yīng)用程序的私有數(shù)據(jù)私有數(shù)據(jù)可以是存儲(chǔ)在文件系統(tǒng)中的文件,也可以是SQLite中的數(shù)據(jù)庫(kù)
21、Android系統(tǒng)內(nèi)部也提供一些內(nèi)置的ContentProvider,能夠?yàn)閼?yīng)用程序提供重要的數(shù)據(jù)信息一個(gè)程序可以使自己成為ContentProvider,以向別的應(yīng)用程序提供服務(wù),比如詞典程序可以向其他程序提供查詞服務(wù)。其他程序可以作為ContentReceiver來享受服務(wù)。Android 應(yīng)用的基本組件IntentIntent可以用于在不同組件(Activity, BroadcastReceiver等)之間進(jìn)行通信。命令行創(chuàng)建程序apk文件是Android系統(tǒng)的安裝程序,上傳到Android模擬器或Android手機(jī)后可以進(jìn)行安裝apk文件本身是一個(gè)zip壓縮文件,能夠使用WinRAR、
22、UnZip等軟件直接打開下圖是WinRAR打開的HelloCommandline-debugapk文件命令行創(chuàng)建程序res目錄用來存放資源文件AndroidManifest.xml是Android聲明文件classes.dex是Dalvik虛擬機(jī)的可執(zhí)行程序resources.arsc 是編譯后的二進(jìn)制資源文件命令行創(chuàng)建程序使用adb.exe將HelloCommondline工程上傳到 Android模擬器中指定AVD。在啟動(dòng)模擬器時(shí),需指定所使用的AVD。可以使用android list avds命令進(jìn)行查詢AVD。在這里,建立兩個(gè)AVD,Android1.1和Android1.5,1.1版
23、只是用于區(qū)別1.5版。這里使用Android1.5啟動(dòng)模擬器在CMD中輸入命令emulator avd Android1.5命令行創(chuàng)建程序上傳文件。Android模擬器正常啟動(dòng)后,利于adb.exe工具能夠把HelloCommandline-debugapk文件上傳的模擬器中adb.exe工具除了能夠在Android模擬器中上傳和下載文件,還能夠管理模擬器狀態(tài),是調(diào)試程序時(shí)不可缺少的工具在CMD中,進(jìn)入/bin目錄,輸入命令:adb install HelloCommandline-debugapk。完成apk程序上傳到模擬器的過程如果上傳成功,結(jié)果如圖顯示命令行創(chuàng)建程序啟動(dòng)應(yīng)用程序。apk文件上傳后,需手工啟動(dòng)HelloCommandline程序單擊模擬器界面左下角上剛安裝的HelloCommandline程序圖標(biāo),即可手工啟動(dòng)如果在模擬器中找不到新安裝的程序,嘗試重新啟動(dòng)Android模擬器Android的包管理器經(jīng)常僅在模擬器啟動(dòng)時(shí)候檢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安交通工程學(xué)院《口腔病理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安職業(yè)技術(shù)學(xué)院《工管運(yùn)籌學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省安全員C證考試題庫(kù)
- 云南中醫(yī)藥大學(xué)《農(nóng)業(yè)推廣學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧特殊教育師范高等??茖W(xué)校《室內(nèi)專題項(xiàng)目生態(tài)性居住空間設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年江西省建筑安全員-A證考試題庫(kù)附答案
- 銅仁幼兒師范高等專科學(xué)?!犊谇唤M織病理學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼陽(yáng)職業(yè)技術(shù)學(xué)院《外貿(mào)函電與單證》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京協(xié)和醫(yī)學(xué)院《需求分析與系統(tǒng)設(shè)計(jì)(雙語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川電力職業(yè)技術(shù)學(xué)院《WTO-TBT基礎(chǔ)知識(shí)》2023-2024學(xué)年第二學(xué)期期末試卷
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計(jì)技術(shù)規(guī)程
- 冀人版科學(xué)六年級(jí)下冊(cè)全冊(cè)同步練習(xí)
- (高清版)JTGT 3365-02-2020 公路涵洞設(shè)計(jì)規(guī)范
- DZ∕T 0223-2011 礦山地質(zhì)環(huán)境保護(hù)與恢復(fù)治理方案編制規(guī)范(正式版)
- 2024年湖南有色金屬職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)學(xué)生專用
- 靜療相關(guān)血管解剖知識(shí)課件
- 【蘇科版】九年級(jí)物理下冊(cè)教學(xué)計(jì)劃(及進(jìn)度表)
- 康復(fù)運(yùn)動(dòng)治療技術(shù)
- 醫(yī)保定點(diǎn)醫(yī)療機(jī)構(gòu)申請(qǐng)表
- 《大腸埃希氏菌》課件
- 煤礦環(huán)境保護(hù)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論