版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智能終端軟件開發(fā)2010.06.3、應(yīng)用程序智能終端開發(fā)Hello world!第一個(gè)運(yùn)行程序HelloAndroidEclipse自動(dòng)生成new android projectHelloAndroidHelloAndroid.javaJava程序package com.android.helloAndroid;import android.app.Activity;import android.os.Bundle;public class HelloAndroid extends Activity /* Called when the activity is first created. *
2、/ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); R.javaJava程序/* AUTO-GENERATED FILE. DO NOT MODIFY.*/package com.android.helloAndroid;public final class R public static final class attr public static final class drawable pu
3、blic static final int icon=0 x7f020000; public static final class layout public static final int main=0 x7f030000; public static final class string public static final int app_name=0 x7f040001; public static final int hello=0 x7f040000; main.xmlXml文件Resourcesstrings.xmlXml文件 Hello Android, 2010. Hel
4、loAndroid將要顯示內(nèi)容:Hello Android, 2010.RUNRUN模擬運(yùn)行顯示內(nèi)容:Hello Android, 2010.命令行運(yùn)行啟動(dòng)模擬器emulator -avd android1.6 -skin HVGA-p連接模擬器:telnet localhost 5554撥打電話:gsm call 發(fā)送短信:sms send HelloAndroid顯示圖像增加ImageViewAndroid虛擬機(jī)DalvikDalvik和標(biāo)準(zhǔn)Java虛擬機(jī)(JVM)的差別Dalvik 更適合手機(jī)所用的嵌入式環(huán)境,占用內(nèi)存少。JVM 通用Java虛擬機(jī)。Dalvik虛擬機(jī)特點(diǎn)Dalvik 允
5、許在有限的內(nèi)存中同時(shí)運(yùn)行多個(gè)虛擬機(jī)實(shí)例。每一個(gè)Dalvik 應(yīng)用作為一個(gè)獨(dú)立的Linux 進(jìn)程執(zhí)行。獨(dú)立進(jìn)程可防止在虛擬機(jī)崩潰的時(shí)候所有程序都被關(guān)閉。Dalvik 提供了一個(gè)擁有較Java少限制許可證的平臺(tái)。重要包的描述Android.app :提供高層的程序模型、提供基本的運(yùn)行環(huán)境Android.content :包含各種的對(duì)設(shè)備上的數(shù)據(jù)進(jìn)行訪問和發(fā)布的類Android.database :通過(guò)內(nèi)容提供者瀏覽和操作數(shù)據(jù)庫(kù)Android.graphics :底層的圖形庫(kù),可以將它們直接繪制到屏幕上.Android.location :定位和相關(guān)服務(wù)的類Android.media :提供一些類管
6、理多種音頻、視頻的媒體接口A :提供幫助網(wǎng)絡(luò)訪問的類,超過(guò)通常的.* 接口Android.os :提供了系統(tǒng)服務(wù)、消息傳輸、IPC 機(jī)制Android.opengl :提供OpenGL 的工具Avider :提供類訪問Android 的內(nèi)容提供者Android.telephony :提供與撥打電話相關(guān)的API 交互Android.view :提供基礎(chǔ)的用戶界面接口框架Android.util :涉及工具性的方法,例如時(shí)間日期的操作Android.webkit :默認(rèn)瀏覽器操作接口Android.widget :各種UI 元素(大部分可見)在應(yīng)用程序的屏幕中使用Android
7、的相關(guān)文件類型Java文件-應(yīng)用程序源文件android 本身相當(dāng)一部分都是用java 編寫而成android 的應(yīng)用使用java 來(lái)開發(fā)。Class文件-Java編譯后的目標(biāo)文件Google使用Dalvik 來(lái)運(yùn)行應(yīng)用程序Android的class 文件是編譯過(guò)程中的中間目標(biāo)文件,需要鏈接成dex 文件才能在Dalvik 上運(yùn)行。Dex文件Dex文件-Android平臺(tái)上的可執(zhí)行文件Android 虛擬機(jī)Dalvik 支持的字節(jié)碼文件格式。這種虛擬機(jī)執(zhí)行的并非Java 字節(jié)碼,而是另一種字節(jié)碼:dex 格式的字節(jié)碼。在編譯Java 代碼之后,通過(guò)Android 平臺(tái)上的工具可以將Java 字
8、節(jié)碼轉(zhuǎn)換成Dex 字節(jié)碼。Dalvik VM 針對(duì)手機(jī)程式/CPU 做過(guò)最佳化,可以同時(shí)執(zhí)行許多VM 而不會(huì)占用太多Resource。Apk文件Apk文件-Android上的安裝文件Apk 是Android 安裝包的擴(kuò)展名,一個(gè)Android 安裝包包含了與該Android 應(yīng)用程序相關(guān)的所有文件。apk文件將AndroidManifest.xml文件、應(yīng)用程序代碼(.dex 文件)、資源文件和其他文件打成一個(gè)壓縮包。一個(gè)工程只能打進(jìn)一個(gè).apk文件。apk 文件的本質(zhì)是一個(gè)zip包。android的AndroidManifest.xml文件AndroidManifest.xml是每一個(gè)應(yīng)用都
9、需要的文件, 位于應(yīng)用根目錄下,它描述了程序包的全局變量, 包括暴露的應(yīng)用組件(activities, services等等)和為每個(gè)組件的實(shí)現(xiàn)類,什么樣的數(shù)據(jù)可以操作,以及在什么地方運(yùn)行。 主要包括以下各個(gè)元素。 A.包名(package):指定本應(yīng)用內(nèi)java主程序包的包名。當(dāng)沒有指定apk的文件名時(shí),編譯后產(chǎn)生程序包將以此命名。本包名應(yīng)當(dāng)在Android系統(tǒng)運(yùn)行時(shí)唯一。 B.認(rèn)證(certificate):指定本應(yīng)用程序所授予的信任級(jí)別,目前有的認(rèn)證級(jí)別有platform(system)、shared、media以及應(yīng)用自定義的認(rèn)證。不同的認(rèn)證可以享受不同的權(quán)限。android的Andr
10、oidManifest.xml文件C.權(quán)限組(permission-group):權(quán)限組的定義是為了描述一組具有共同特性的權(quán)限。 D.權(quán)限(permission):權(quán)限用來(lái)描述是否擁有做某件事的權(quán)力。Android系統(tǒng)中權(quán)限是分級(jí)的,前分為普通級(jí)別(Normal),危險(xiǎn)級(jí)別(dangerous),簽名級(jí)別(signature)和系統(tǒng)/簽名級(jí)別(signature or system)。系統(tǒng)中所有預(yù)定義的權(quán)限根據(jù)作用的不同,分別屬于不同的級(jí)別。對(duì)于普通和危險(xiǎn)級(jí)別的權(quán)限,我們稱之為低級(jí)權(quán)限,應(yīng)用申請(qǐng)即授予。其他兩級(jí)權(quán)限,我們稱之為高級(jí)權(quán)限或系統(tǒng)權(quán)限,應(yīng)用擁有platform級(jí)別的認(rèn)證才能申請(qǐng)。當(dāng)應(yīng)
11、用試圖在沒有權(quán)限的情況下做受限操作,應(yīng)用將被系統(tǒng)殺掉以警示。E.權(quán)限樹(permission-tree)權(quán)限樹的設(shè)置是為了統(tǒng)一管理一組權(quán)限,聲明于該樹下的權(quán)限所有者歸屬該應(yīng)用。系統(tǒng)提供了API,應(yīng)用可以在運(yùn)行時(shí)動(dòng)態(tài)添加。 PackageManager.addPermission() F.使用權(quán)限(uses-permission):應(yīng)用需要的權(quán)限應(yīng)當(dāng)在此處申請(qǐng),所申請(qǐng)的權(quán)限應(yīng)當(dāng)被系統(tǒng)或某個(gè)應(yīng)用所定義,否則視為無(wú)效申請(qǐng)。同時(shí)使用權(quán)限的申請(qǐng)需要遵循權(quán)限授予條件,非platform認(rèn)證的應(yīng)用無(wú)法申請(qǐng)高級(jí)權(quán)限。android的AndroidManifest.xml文件G:SDK(uses-sdk):標(biāo)識(shí)
12、本應(yīng)用運(yùn)行的SDK版本。高兼容性的應(yīng)用可以忽略此項(xiàng)。 H.application:application是Android應(yīng)用內(nèi)最高級(jí)別(top level)的模塊,每個(gè)應(yīng)用內(nèi)最多只能有一個(gè)application,如果應(yīng)用沒有指定該模塊,一個(gè)默認(rèn)的application將被啟用。application將在應(yīng)用啟動(dòng)時(shí)最先被加載,并存活在應(yīng)用的整個(gè)運(yùn)行時(shí)生命周期。因此一些初始化的工作適合在本模塊完成. Application元素有許多屬性,其中:“persistent”表示本應(yīng)用是否為常駐內(nèi)存,“enable”表示本應(yīng)用當(dāng)前是否應(yīng)當(dāng)被加載。 android的AndroidManifest.xml文件
13、在AndroidManifest.xml文件中,運(yùn)行時(shí)模塊的定義都作為本模塊的子元素。當(dāng)運(yùn)行時(shí)模塊被調(diào)度時(shí),如果應(yīng)用沒有啟動(dòng),將首先啟動(dòng)應(yīng)用進(jìn)行初始化,然后調(diào)度對(duì)應(yīng)模塊。 I.activity:activity是application模塊的運(yùn)行時(shí)子元素,標(biāo)識(shí)了一個(gè)UI。除了application,一個(gè)應(yīng)用可以聲明并實(shí)現(xiàn)零至多個(gè)其它運(yùn)行時(shí)模塊,activity也同樣。activity也包含了許多定義它工作狀態(tài)的屬性,其中:“name”是必須的,它指定了該activity所在的文件名,如果該文件所屬包不同于該應(yīng)用的包名(即本描述文件的最開始處),那么名字前面需要加入所在包名。activity通過(guò)增
14、加intent-fliter來(lái)標(biāo)識(shí)哪些intent可以被處理,同時(shí)intent也是調(diào)度activity的主要參數(shù)。 J.receiver:receiver也是application的運(yùn)行時(shí)子元素。receiver通過(guò)增加intent-fliter來(lái)標(biāo)識(shí)它需要接受哪些intent。當(dāng)收到intent后,receiver將根據(jù)不同的intent進(jìn)行不同的處理。當(dāng)一個(gè)Intent發(fā)出后,所有注冊(cè)了該intent的receiver都將會(huì)收到,系統(tǒng)會(huì)根據(jù)receiver在系統(tǒng)中的注冊(cè)次序順序發(fā)送。當(dāng)一個(gè)receiver處理完該Intent后,系統(tǒng)才會(huì)向下一個(gè)receiver發(fā)送。當(dāng)一個(gè)receiver有
15、多個(gè)未接收的intent時(shí),將按照intent發(fā)送的次序順序接收。android的AndroidManifest.xml文件例,intent-filter如下: K.service:service也是application的運(yùn)行時(shí)子元素。Service屬于后臺(tái)模塊,啟動(dòng)后將長(zhǎng)時(shí)間運(yùn)行,除非停止該service或所在應(yīng)用進(jìn)程被殺死。 L.provider:provider也是application的運(yùn)行時(shí)子元素。它繼承于ContentProvider,是對(duì)該應(yīng)用管理的用戶數(shù)據(jù)的結(jié)構(gòu)化接入,是基于數(shù)據(jù)庫(kù)操作方式的封裝。如果應(yīng)用允許外部應(yīng)用訪問管理它的用戶數(shù)據(jù),provider是Android平臺(tái)提
16、供的最佳方式。 M.activity-alias:顧名思義,是已有activity的別名。 N:uses-library:標(biāo)識(shí)應(yīng)用啟動(dòng)所必須的共享庫(kù)。 AndroidManifest.xml 的結(jié)構(gòu)大綱 文件根節(jié)點(diǎn), 描述了程序包的所有內(nèi)容. 請(qǐng)求一個(gè)安全授權(quán), 必須被授予該權(quán)限, 您的程序包才能正確的操作. 0N 聲明一個(gè)安全授權(quán), 用來(lái)限制哪些應(yīng)用可以訪問您的程序包內(nèi)的組件和特有機(jī)制. 0N 描述程序包內(nèi)應(yīng)用級(jí)別組件的根節(jié)點(diǎn). 該節(jié)點(diǎn)能夠描述應(yīng)用程序的全局(和/或)默認(rèn)屬性, 例如標(biāo)簽, 圖標(biāo), 主題, 需要的授權(quán), 等等.包含零個(gè)或一個(gè)這樣的節(jié)點(diǎn) Activity 是應(yīng)用于用戶交互的最主
17、要機(jī)制. 當(dāng)一個(gè)應(yīng)用運(yùn)行的時(shí)候, 用戶看到的第一個(gè)屏幕就是activity, 并且, 用戶所使用的其他絕大多數(shù)屏幕(界面)也會(huì)是 一個(gè)IntentReceiver 可以讓應(yīng)用接收到一次數(shù)據(jù)變化和一次行為發(fā)生的通知, 甚至這個(gè)應(yīng)用沒有在運(yùn)行也可以. 同activity 標(biāo)簽一樣, 你可以選擇包含一個(gè)或多個(gè)元素 Service 是一個(gè)在后臺(tái)任意時(shí)刻都可以運(yùn)行的組件. 同activity 標(biāo)簽一樣, 你可以選擇包含一個(gè)或多個(gè)元素 ContentProvider組件是用來(lái)管理數(shù)據(jù)持久化及數(shù)據(jù)發(fā)布的, 發(fā)布的數(shù)據(jù)可以被其他的應(yīng)用訪問.Android AndroidManifest.xml 文件詳細(xì)解釋A
18、ndroidManifest.xml是每一個(gè)應(yīng)用都需要的文件. 位于應(yīng)用根目錄下, 描述了程序包的一個(gè)全局變量, 包括暴露的應(yīng)用組件(activities, services等等)和為每個(gè)組件的實(shí)現(xiàn)類, 什么樣的數(shù)據(jù)可以操作, 以及在什么地方運(yùn)行. 這個(gè)文件的一個(gè)重要方面(概念)是其中的intent過(guò)濾器. 這個(gè)過(guò)濾器描述了何時(shí)何種情況下讓activity 啟動(dòng). 當(dāng)一個(gè)activity(或是操作系統(tǒng))想要執(zhí)行一個(gè)動(dòng)作, 例如打開一個(gè)Web頁(yè)或是打開一個(gè)聯(lián)系人選取屏幕, 會(huì)創(chuàng)建一個(gè)Intent對(duì)象. 該對(duì)象包含了很多的描述信息, 描述了你想做什么操作, 你想處理什么數(shù)據(jù), 數(shù)據(jù)的類型, 以及一
19、些其他的重要信息. Android拿這個(gè)Intent的信息與所有應(yīng)用暴露的intent過(guò)濾器比較, 找到一個(gè)最能恰當(dāng)處理請(qǐng)求者要求的數(shù)據(jù)和action的activity. intents的更多信息在Intent頁(yè). 另外還要聲明您的應(yīng)用的Activities, Content Providers, Services, 和 Intent Receivers, 你也可以在AndroidManifest.xml文件中指定權(quán)限和instrumentation(安全控制和測(cè)試).xmlns:android 屬性是 XML 名空間聲明語(yǔ)句,用來(lái)告訴 Android 工具將使用 Android 名空間中定義
20、的公共屬性。每個(gè) Android 布局文件的最外層的標(biāo)簽必須有該屬性。 在manifest中,定義多個(gè)activity時(shí),系統(tǒng)在啟動(dòng)這個(gè)application時(shí),該如何判斷哪個(gè)activity是入口activity。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),在manifest中定義的activity中,如果該activity的action是MAIN屬性,并且category 是LAUNCHER屬性,那么該activity就是入口程序。如果manifest中有多個(gè)這樣情況的activity存在,那么系統(tǒng)會(huì)將第一個(gè)查找到的復(fù)合條件的activity作為入口程序。manifest中至少應(yīng)該有一個(gè)復(fù)合該條件的activity存在
21、。 一個(gè)AndroidManifest.xml文件的例子 Adroid應(yīng)用Activity活動(dòng)1最基本的Android 應(yīng)用程序組件,應(yīng)用程序中,一個(gè)活動(dòng)通常就是一個(gè)單獨(dú)的屏幕。每一個(gè)活動(dòng)都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且從活動(dòng)基類中繼承而來(lái),活動(dòng)類將會(huì)顯示由視圖控件組成的用戶接口,并對(duì)事件做出響應(yīng)。大多數(shù)的應(yīng)用是由多個(gè)屏幕顯示組成。例如:一個(gè)文本信息的應(yīng)用也許有一個(gè)顯示發(fā)送消息的聯(lián)系人列表屏幕,第二個(gè)屏幕用來(lái)寫文本消息和選擇收件人,再來(lái)一個(gè)屏幕查看消息歷史或者消息設(shè)置操作等。這里每一個(gè)這樣的屏幕就是一個(gè)活動(dòng),很容易實(shí)現(xiàn)從一個(gè)屏幕到一個(gè)新的屏幕并且完成新的活動(dòng)。在某些情況下當(dāng)前的屏幕也許需要向上一個(gè)屏幕活動(dòng)提供返回值-比如讓用戶從手機(jī)中挑選一張照片返回通訊錄做為電話撥入者的頭像。Ac
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)費(fèi)支付合同書范本2
- 建筑能源管理行業(yè)經(jīng)營(yíng)分析報(bào)告
- 牙科用印模托盤市場(chǎng)分析及投資價(jià)值研究報(bào)告
- 帽架產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 出租家具行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 位置定位服務(wù)電信服務(wù)行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 貴州省烏當(dāng)區(qū)某校2024-2025學(xué)年高三上學(xué)期10月月考英語(yǔ)試題(解析版)
- 蠶種脫水機(jī)項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 光遺傳學(xué)領(lǐng)域的研究行業(yè)營(yíng)銷策略方案
- 氣動(dòng)噴燈產(chǎn)品供應(yīng)鏈分析
- 《經(jīng)濟(jì)法基礎(chǔ)》課程說(shuō)課
- 生產(chǎn)更改通知單模板
- 國(guó)開作業(yè)電工電子技術(shù)-第十單元自測(cè)練習(xí)06參考
- 基礎(chǔ)會(huì)計(jì)(第7版)ppt課件完整版
- 應(yīng)急預(yù)案演練檔案
- 《發(fā)展?jié)h語(yǔ)》初級(jí)綜合(I)1-10課測(cè)試一
- 植物檢疫證書
- 輸送機(jī)施工方案.doc
- 海瀾之家特許經(jīng)營(yíng)協(xié)議合同
- 大眾汽車入侵北美市場(chǎng)
- 建設(shè)銀行員工勞動(dòng)合同
評(píng)論
0/150
提交評(píng)論