第一講 Android概述課件_第1頁(yè)
第一講 Android概述課件_第2頁(yè)
第一講 Android概述課件_第3頁(yè)
第一講 Android概述課件_第4頁(yè)
第一講 Android概述課件_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ncs

第一講Android概述

Android系統(tǒng)剛開始由一家位于美國(guó)加利福尼

亞州名字也叫Android的小型創(chuàng)業(yè)公司

(AndroidInc)開發(fā)。

OAD^OIDGoogle在2005年7月份收購(gòu)了AndroidInc公司。

AndroidInc公司的聯(lián)合創(chuàng)始人Andy

Rubin,RichMiner,NickSears和ChrisWhite也

一起到Google工柞。AndyRubin加入Google

后開始作為Android項(xiàng)目的負(fù)責(zé)人,開始開發(fā)

這個(gè)基于Linux內(nèi)核,功能靈活升級(jí)方便的移

動(dòng)操作系統(tǒng)。也正是從那個(gè)時(shí)候業(yè)界才開始傳

說(shuō)Google打算進(jìn)入移動(dòng)手機(jī)市場(chǎng)的消息。

2

開放手機(jī)聯(lián)盟

,。——AFI:一ccc、

?Google在2007年工1月5日正式宣布開放手機(jī)

聯(lián)盟(OpenHandsetAlliance)成立,并且

隨后在開放手機(jī)聯(lián)盟的旗下公布了全新的

Android操作系統(tǒng)。開放手機(jī)聯(lián)盟是由全世界

頂尖的硬件,軟件和電信公司組成的聯(lián)盟,致力

于為移動(dòng)設(shè)備提供先進(jìn)的開放式標(biāo)準(zhǔn),開發(fā)可以

顯著降低移動(dòng)設(shè)備以及移動(dòng)服務(wù)開發(fā)和分發(fā)成本

的技術(shù)。開放手機(jī)聯(lián)盟目前有65家業(yè)界相關(guān)公

司組成。中國(guó)三大電信運(yùn)營(yíng)商中國(guó)移動(dòng),中國(guó)電

信和中國(guó)聯(lián)通都是開放手機(jī)聯(lián)盟成員,中國(guó)移動(dòng)

還是開放手機(jī)聯(lián)盟的創(chuàng)始成員。.

3

?:?開放手機(jī)聯(lián)盟主要成員

■移動(dòng)運(yùn)營(yíng)商:

?ChinaTelecom-中國(guó)電信(世界最大的中文綜合信息服

務(wù)提供商。骨干網(wǎng)帶寬達(dá)到14。中國(guó)唯一的通信全業(yè)

務(wù)提供商,擁有衛(wèi)星業(yè)務(wù)(重組時(shí)兼并衛(wèi)通民用業(yè)

務(wù))。)

?ChinaMobile(中國(guó)移動(dòng))-中國(guó)(全球最大的移動(dòng)運(yùn)營(yíng)

商,截至09年9月底有5.03億用戶)

?ChinaUnicom(中國(guó)聯(lián)通)

?NTTDoCoMo(日本電信電話公司)

?SprintNextel(美國(guó)移動(dòng)運(yùn)營(yíng)商)

?TelecomItalia(意大利電信)

?Telefonica-(西班牙移動(dòng)運(yùn)營(yíng)商)

?T-Mobile-(德國(guó)移動(dòng)運(yùn)營(yíng)商).

■半導(dǎo)體公司:

?ST(意法半導(dǎo)體)-歐洲(歐洲最大半導(dǎo)體公司)

?Intel(英特爾)-美國(guó)

?NVIDIA(英偉達(dá))-美國(guó)

?TexasInstruments(德州儀器)-美國(guó)

?Qualcomm(高通)-美國(guó)

?HP(惠普)-美國(guó).

手機(jī)和其他終端制造商

?Motorola(摩托羅拉)-美國(guó)

?SonyEricsson(索尼愛立信)-英國(guó)

?HTC(宏達(dá)國(guó)際電子)-臺(tái)灣

?SamsungElectronics(三星電子)-韓國(guó)

?LGElectronics(LG電子)-韓國(guó)

?ARCHOS(愛可視)-法國(guó)

?TOSHIBA(東芝)-日本.

6

開放手機(jī)聯(lián)盟(OpenHandsetAlliance)

AKMGo^leQ

tMMMKtVC.AaMfienceQUAUDAMA

ARM必

1ry

NUANCt■pv

noser

R麗S鈔*Effli頓nvxxAQtat

7

開源和相關(guān)協(xié)議

Apache基金會(huì)的標(biāo)志

Android操作系統(tǒng)于2008年10月21日在

ApacheSoftwareLicense(ASL)協(xié)議下

開放源代碼,Google在Apache協(xié)議下

公布了Android系統(tǒng)的全加源代碼。

Google選擇ApacheSoftwareLicense

2.0許可證繼保證了系統(tǒng)的開放源代碼,

又鼓勵(lì)開源軟件的商業(yè)性使用。Google

將Android置于ASL許可證之下,可以確

保許多商業(yè)性公司會(huì)接受這個(gè)平臺(tái),并

且在它上面使用自己的專有技術(shù)。

8

Android的發(fā)展與現(xiàn)狀

?:?根據(jù)權(quán)威調(diào)查公司NPDGroup的數(shù)據(jù),2010

年第二季度開始運(yùn)行Android系統(tǒng)的手機(jī)是美

國(guó)銷售最多的智能手機(jī),市場(chǎng)占有率達(dá)到33%),

超過(guò)R1M公司黑莓系統(tǒng)的28%)和蘋果iOS系統(tǒng)

的22%)。Android系統(tǒng)手機(jī)全球市場(chǎng)占有率也

僅落后于諾基亞的Symbian系統(tǒng)和RIM的黑莓

系統(tǒng)手機(jī),是目前全球第三大智能手機(jī)平臺(tái)。

?在2011年第一季度,Android手機(jī)的出貨量

首次超過(guò)Symbian手機(jī),坐上世界第一移動(dòng)終

端平臺(tái)。.

9

Bost.

?:?隨著Android系統(tǒng)手機(jī)市場(chǎng)占有率的不斷攀升,

Android系統(tǒng)吸弓I了一大批程序開發(fā)者不斷開

發(fā)程序擴(kuò)展Android手機(jī)的功能。目前

Android電子市場(chǎng)擁有超過(guò)70000款應(yīng)用程序,

開發(fā)者提交的應(yīng)用程序總數(shù)超過(guò)十萬(wàn)款。

Android電子市場(chǎng)是目前第二大移動(dòng)程序市場(chǎng)

10

Best.系統(tǒng)的升級(jí)

?系統(tǒng)升級(jí)是Android的一大特色。Android面

世后已經(jīng)發(fā)行了5個(gè)主要版本,經(jīng)歷了4次大的

系統(tǒng)升級(jí)。每次新系統(tǒng)的發(fā)布Android功能和

用戶體驗(yàn)都有很大提升。

?:?而且從Android].5版本開始每個(gè)系統(tǒng)版本都

有一個(gè)有趣的代號(hào)。.

11

Andros15Android1.6Android10&2dAndroKl22

CupcakeDonut(S£B9)Ec3〃巧克力信JfJFtoyo(&MH)

AndfCMd10AndroidISAndrokKO

GnfertKMd(Ml)Honeycomb(■■)k-Gwm()

12

Android電子市場(chǎng)

?:?AndroidMarket

AndroidMarket是一個(gè)由谷歌公司為Android系統(tǒng)用戶

創(chuàng)建的服務(wù),允許安裝了Android系統(tǒng)的手機(jī)和平板電

腦用戶從AndroidMarket瀏覽和下載一些應(yīng)用程序。

用戶可以購(gòu)買或免費(fèi)試用這些應(yīng)用程序。.

13

Bost.

?:.Google推出的這個(gè)新版Android應(yīng)用商店服務(wù),

目的在于加強(qiáng)Google在移動(dòng)領(lǐng)域與蘋果的競(jìng)爭(zhēng)

實(shí)力。

?:*4月28日,根據(jù)荷蘭市場(chǎng)研究公司Distimo的

數(shù)據(jù),如果谷歌AndroidMarket保持當(dāng)前的

增長(zhǎng)速度,五個(gè)月內(nèi)就將取代蘋果AppStore,

成為全球最大移動(dòng)平臺(tái)應(yīng)用商店。.

14

Bost.

?:?該公司預(yù)計(jì):“如果所有的應(yīng)用商店都保持當(dāng)前

的增速,大約5個(gè)月后,AndroidMarket的應(yīng)

用數(shù)就將位居行業(yè)首位,其次分別是蘋果App

Store>微軟WindowsPhone7Market、

黑莓和諾基亞

AppWorldOviStoreo

?:?不過(guò),在中國(guó)Androidmarket的用戶體驗(yàn)仍

然不佳。產(chǎn)品一些應(yīng)用信息無(wú)法顯示。

15

Android的平臺(tái)架構(gòu)及特性

?:?Android平臺(tái)采用了整合的策略思想,包括底

層Linux操作系統(tǒng)、中間層的中間件和上層的

Java應(yīng)用程序。

?:?Android平臺(tái)有如下特性:

應(yīng)用程序框架支持組件的重用和替換。

基于寄存器的Dalvik虛擬機(jī),相對(duì)于java虛擬機(jī)速度要

快得多

優(yōu)化的圖形庫(kù)包括2D和3D圖形庫(kù),3D圖形庫(kù)基于

OpenGLES

SQUte用作結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)

常見多媒體格式的支持(圖像、音頻和視頻等)

■藍(lán)牙、3G、WIFI等無(wú)線技術(shù)

豐富的開發(fā)環(huán)境:針對(duì)Eclipse的可視化開發(fā)插件ADT、

設(shè)備模擬器、調(diào)試工具等

16

Android的相關(guān)文件類型

?:.Java文件——應(yīng)用程序源文件

■Android的應(yīng)用使用Java來(lái)開發(fā)。

Class文件Java編譯后的目標(biāo)文件

Android平臺(tái)上的class文件不能直接在Android平臺(tái)上

運(yùn)行。由于google使用了自己的Dalvik來(lái)運(yùn)行應(yīng)用,

所以這里的class也肯定不能在AndroidDalvik上運(yùn)行,

Android的class文件實(shí)際上只是編譯過(guò)程的中間目標(biāo)

文件,需要鏈接成Dex文件才能運(yùn)行在Dalvik上。.

17

?Dex文件Android平臺(tái)上的可執(zhí)行文件

Dalvik執(zhí)行的并非是Java字節(jié)碼,而是另一種字節(jié)碼:

dex格式的字節(jié)碼(Java字節(jié)碼-dex字節(jié)碼)。

Dalvik可以執(zhí)行許多VM而不會(huì)占用太多的資源。

?APK文件一一Android上的安裝文件

APK是Android安裝包的擴(kuò)展名。

重要的包描述

?:?在Android的應(yīng)用程序開發(fā)中,使用的是Java

語(yǔ)言,除了要熟悉Java語(yǔ)言的基礎(chǔ)外,還需要

了解Android提供的Java擴(kuò)展功能…

19

■?Android.app:提供高層的程序模型、提供基

■本的運(yùn)行環(huán)境。

■Android.content:包含對(duì)各種的設(shè)備上的數(shù)

據(jù)進(jìn)行訪問(wèn)和發(fā)布的類。

■Android.database:通過(guò)內(nèi)容提供者瀏覽和

■操作數(shù)據(jù)庫(kù)。

■Android.graphics:底層的圖形庫(kù),包含畫

布、顏色過(guò)濾、點(diǎn)、矩形,可以將它們直接繪制

到屏幕上。.

20

HAndroid.location:定位和服務(wù)的相關(guān)類。

■?Android.media:提供了一些管理音頻視頻的

■媒體接口的相關(guān)類。

■?:911£121511或提供了關(guān)于網(wǎng)絡(luò)訪問(wèn)的類,超過(guò)

通常的.*接口。

■?Android.os:提供了系統(tǒng)服務(wù),消息傳輸,

IPC機(jī)制。

■<*Android.opengl:提供了OpenGL的工具。.

21

Besi

Avider:提供類訪問(wèn)Android的

內(nèi)容提供者。

^Android.telephony:提供與撥打電話相關(guān)的

API交互

<*Android.view:提供基本的用戶界面接口框

架。

^Android.util:涉及工具性的方法,例如時(shí)間

日期型的操作。

<*Android.webkit:默認(rèn)瀏覽器操作接口。.

22

23

Bost.Android應(yīng)用程序組件概述

?:?從事Android應(yīng)用程序的開發(fā),那么首先了解

Android應(yīng)用程序的思想是非常必要的。

?:?比如,與常見的應(yīng)用程序開發(fā)不同,Android

應(yīng)用程序沒有統(tǒng)一的入口(例如main方法)

?:?根據(jù)完成功能的不同,Android劃分了四類核

心的組件:Activity,Service,Broadcast

Receiver和Contentprovider。

?:?另外,組件之間的導(dǎo)航通過(guò)工ntent來(lái)完成,

Android還定義了View類來(lái)顯示可視化界面。.

24

?Activity

■Activity是Android組件中最為基本也是最為常用的一種。

在一個(gè)Android應(yīng)用中,一個(gè)Activity通常就是一個(gè)單獨(dú)

的屏幕。

每一個(gè)Activity都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,且繼承于

Activity這個(gè)真類。

■可以調(diào)用startAcitvity()方法從一屏導(dǎo)航到另外一屏

當(dāng)一個(gè)新的屏幕打開后,前一個(gè)屏幕將會(huì)暫停,并保

存在堆棧中。用戶可以返回到堆棧中的前一個(gè)屏幕,

當(dāng)然也可以將其刪除

?Service

■一個(gè)Service是一種長(zhǎng)生命周期的、沒有用戶界面的程

序。

Service運(yùn)行在后臺(tái),很少和用戶交互

^BroadcastReceiver

顧名思義,BroadcastReceiver是廣播接收器,它和

事件處理機(jī)制類似,只不過(guò)事件處理機(jī)制是程序組件

級(jí)別的(點(diǎn)擊一個(gè)按鈕),而廣播事件處理時(shí)系統(tǒng)級(jí)

別的。

系統(tǒng)定義了很多標(biāo)準(zhǔn)的BroadcastAction來(lái)廣播事件,

例如系統(tǒng)啟動(dòng)后觸發(fā)(ACTION_BOOT_COMPLETED)、

電量低觸發(fā)(ACTION_BATTERY_CH/CNGED)

當(dāng)然我們也可以自定又一些廣播

27

?Contentprovider

Android應(yīng)用程序之間是相互獨(dú)立的,各個(gè)組件運(yùn)行在

不同的進(jìn)程中,這就意味著數(shù)據(jù)不能共享。

那當(dāng)需要時(shí),各個(gè)組件之間的數(shù)據(jù)如何共享呢?——

Contentprovider

?View

View是Android中圖形用戶界面的基類,提供了可視化

界面的展示。

Android的圖形用戶界面分為三層:底層是ActMty,上

面是Window,最上面是View

?Intent

Intent是不同組件之間相互導(dǎo)航的紐帶,封裝了不同組

件之間導(dǎo)航查詢的條件。

在Intent的描述結(jié)構(gòu)中,有兩個(gè)最重要的部分:動(dòng)作和

動(dòng)作對(duì)應(yīng)的數(shù)據(jù)

Android開發(fā)環(huán)境的搭建

?1JDK

單獨(dú)的JRE不可用,必需有JDK,且不兼容GJC(Gun

java編譯器)

■配置系統(tǒng)變量:

?JAVA_HOMIE:jdk的按照路徑,如

“D:\Java\jdk160_21”

?CLASSPATH

?PATH中添加變量%JAVAHOME%\bin\

^2.AndroidSDK

■官方下載網(wǎng)站是

/sdk/index.html

安裝完成后,將SDK根目錄下面的“platform-tools”

和“tools”添加到系統(tǒng)變量path中

?例如:D:\android-sdk-windows\platform-

tools\;d:\android-sdk-windows\tools;

<*3.EclipseADT

Google針對(duì)Eclipse提供了Android開發(fā)插件ADT。

通過(guò)ADT可以進(jìn)行集成開發(fā),包括代碼的自動(dòng)生成、

調(diào)試、編譯、拖拽界面等功能

■建議在線安裝:

?"Help"—>"lnstallNewSoftware..."

?/android/eclipse/

?:*4.酉己置Eclipse

“Windows"—"Preferences"—"Android”

選擇AndroidSDK根目錄,如"D:\android-sdk-

windows”

建議選擇:eclipse-java-helios-SR2-win32

?代碼風(fēng)格

■智能感知

Android模擬器

可以看出該模擬器分為兩個(gè)部分,

左邊是模擬手機(jī)而右邊是模擬手機(jī)

的鍵盤輸入。

在模擬手機(jī)中內(nèi)置了一些基本的應(yīng)

用程序,如電話薄、短信、打電話

O.

35

?:?Android模擬器功能很強(qiáng),和真機(jī)已經(jīng)是極為

相似了,但是仍然有很多東西是模擬不了的

不支持呼叫和接聽實(shí)際來(lái)電;

■不支持USB連接;

■不支持首頻捕捉;

不能確定電池電量水平和充電狀態(tài);

■不支持藍(lán)牙;

不確定SD卡的插入和彈出;

36

?:?AndroidSDKandAVDManager

■根據(jù)需要?jiǎng)?chuàng)建AVD

?androidlisttargets

?啟動(dòng)AndroidSDKandAVDManager.

?ADB(AndroidDebugBridge)的使用

ADB是一個(gè)管理模擬器的通用工具,ADB功能很多,

例如本機(jī)和模擬機(jī)之間交互數(shù)據(jù)、安裝APK項(xiàng)目等。.

■adbdevices查看當(dāng)前運(yùn)行的模擬器

■adbpush:將系統(tǒng)的文件復(fù)制到模擬器中

?D:\>adbpushd:\test.txt/sdcard/

■adbpull:將模擬器中的文件復(fù)制到系統(tǒng)

?D:\>adbpull/sdcard/test.txtd:\

adbinstall安裝一個(gè)apk應(yīng)用程序

?D:\>adbpushd:\test.apk/sdcard/

?D:\>adbinstalltest.apk

<*DDMS(DalvikDebugMonitorService)

DDMS是一個(gè)可視化的調(diào)試監(jiān)控工具

■文件系統(tǒng)的使用

■屏幕截取

■LogCat

?V:不過(guò)濾輸出所有調(diào)試信息包括VERBOSE、

DEBUG、INFO、WARN、ERROR

?D:debug過(guò)濾器,輸出DEBUG、INFO、WARN、

ERROR調(diào)試信息

?I:info過(guò)濾器,輸出INFO、WARN、ERROR調(diào)試信息

?W:waring過(guò)濾器,輸出WARN和ERROR調(diào)試信息

?E:error過(guò)濾器,只輸出ERROR調(diào)試信息

39

第一個(gè)Android應(yīng)用程序

鉛啦08:34AM

HelloWorld程序AppName

Android版

Hello

World!

40

Android工程的結(jié)構(gòu)目錄

i二Andp—Android工程名

S-src--源代碼文件夾

-:Epkg.com包名稱

Lt1[JjMairiActivity.java?Java源代(碼

B梆gen一自動(dòng)生成的R資源類文件夾

I二fflpkg.com?包名稱

國(guó)臼R.javaA工程自動(dòng)生成的資源索引類

JAndroid1.5

j>工程中SDK類庫(kù)文件

loioandroid,jar-D''andrcud-保存原始資源文件的文件

‘四

assets夾,如mp3等

eihres一>資源文件夾

+drawable-f圖片資源文件夾

由上,1ayout-一布局資源文件夾

values一簡(jiǎn)單配置文件夾

AndroidManifest,xml--配置清單文件

default,properties一項(xiàng)目環(huán)境信息文件

aBl

目proguard,cfg>混淆器配置文件

41

?:?AndroidManifest.xml是Android應(yīng)用程序

中最重要的文件之^

?:?每一個(gè)Android工程都必需有一個(gè)

AndroidManifest.xml文件,該文件是

Android工程的全局配置文件

?:?所有在工程中使用到的組件(Activity、

Service、Contentprovider和Broadcast

Receiver)都要在該文件由聲明

?:?該文件中還要聲明一些權(quán)限及SDK的最低版本信

42

AndroidManifest.xml結(jié)構(gòu)

<?xmlversion=',1.0,,encoding=,,utf-81,?>

<manifest>

<application>

<activity>

<intent-filter>

<action/>

<category/>

</intent-filter>

</activity>

<activity-alias>

<intent-filter></intent-filter>

<meta-data/>

</activity-alias>

<service>

<intent-filterx/intent-filter>

<meta-data/>

</service>

<receiver>

<intent-filterx/intent-filter>

<meta-data/>

</receiver>

<provider>

<grant-uri-permission/>

<meta-data/>

</provider>

<uses-library/>

</application>

<uses-permission/>

<permission/>

?<permission-tree/>

<?<permission-group/>

?<instrumentation/>

<uses-sdk/>

?<uses-configuration/>

?<uses-feature/>

?<supports-screens/>

?</manifest>

43

第一層(〈Manifest〉)]屬性)

<manifest

xmlns:android="/apk/res/androi

d"

package=""

android:sharedUserld="string"

android:sharedUserLabel="stringresource"

android:versionCode="integer"

android:versionName="string"

android:installLocation=["auto'^|"internalOnly"|

"preferExternal"]>

</manifest>

44

?A>xmlns:android

定義android命名空間,一般為

/apk/res/android,這樣使

得Android中各種標(biāo)準(zhǔn)屬性能在文件中使用,提供了大

部分元素中的數(shù)據(jù)。

45

46

Besi

?C>sharedUserld

?:?表明數(shù)據(jù)權(quán)限,因?yàn)槟J(rèn)情況下,Android給

每人APK分配一個(gè)唯一的UserID,所以是默認(rèn)

禁止不同APK訪問(wèn)共享數(shù)據(jù)的。若要共享數(shù)據(jù),

第一句以米用SharePreference方法,第二

和就可以采用sharedUserldY,蔣不同APK

的sharedUser工d都設(shè)為一樣,則這些APK之

間就可以互相共享數(shù)據(jù)了

47

48

Besi

?versionCode

?是給設(shè)備程序識(shí)別版本(升級(jí))用的必須是一個(gè)

interger值代表app更新過(guò)多少次,比如第一

版一般為,之后若要更新版本就設(shè)置為2,3等

oOO

49

?F>versionName

?:?這個(gè)名稱是給用戶看的,你可以將你的APP版本

號(hào)設(shè)置為工」版,后續(xù)更新版本設(shè)置為1.2、2.0

版本等等。。。

Besi

?G、installLocation

?安裝參數(shù),是Android2.2中的一個(gè)新特性,installLocation有三個(gè)值

可以選擇:internalOnly>auto、preferExternal

選擇preferExternal,系統(tǒng)會(huì)優(yōu)先考慮將APK安裝到SD卡上{當(dāng)然最終用

戶可以選擇為內(nèi)部ROM存儲(chǔ)上,如果SD存儲(chǔ)已滿,也會(huì)安裝期內(nèi)部存儲(chǔ)上)

?選擇auto,系統(tǒng)將會(huì)根據(jù)存儲(chǔ)空間自己去適應(yīng)

?選擇internalOnly是指必須安裝到內(nèi)部才能運(yùn)行

主:需要進(jìn)行后臺(tái)類監(jiān)控的APP最好安裝在內(nèi)部,而一些較大的游戲APP

聶好安裝在SD卡上?,F(xiàn)默認(rèn)為安裝在內(nèi)部,如果把APP安裝在SD卡上,

首先得設(shè)置你的level%8,異且妻配亶androickinstallLocation這個(gè)

參驗(yàn)的屬性為preferExternal)

51

第二層(〈Application>):屬性

一個(gè)AndroidManifest.xml中必須含有一個(gè)Application標(biāo)簽,這個(gè)標(biāo)簽聲明了每一個(gè)應(yīng)用程序的組件及其屬

性(如icon,label,permission等)

opplicationandroid:allowClearUserData=["true"|"false"]

android:allowTaskReparenting=["true"|"false"]

android:backupAgent="string"

android:debuggable=["true"|"false"]

android:description=,'stringresource"

android:enabled=["true"|"false"]

android:hasCode=["true"|"false"]

android:icon="drawableresource"

android:killAfterRestore=[,ltrue"|"false"]

android:label="stringresource"

android:manageSpaceActivity="string"

android:name="string"

android:permission="string"

android:persistent=["true"|"false"]

android:process="string"

android:restoreAnyVersion=["true"|"false"]

android:taskAffinity="string"

android:theme="resourceortheme">

</application>

52

■*A、androidzallowClearUserDataC^rue1

or'false1)

?:?用戶是否能選擇自行清除數(shù)據(jù),默認(rèn)為true,程

序管理器包含一個(gè)選擇允許用戶清除數(shù)據(jù)。當(dāng)為

true時(shí),用戶可自己清理用戶數(shù)據(jù),反之亦然

53

54

Besi

?android:backupAgent

?:?這也是Android2.2中的一個(gè)新特性,設(shè)置該

APP的備份,屬性值應(yīng)該是一個(gè)完整的類名,如

ject.TestCase,此屬性并沒有默認(rèn)

值,并且類名必須得指定(就是個(gè)備份工具,將

數(shù)據(jù)備份到云端的操作)

55

Besa

■?:*D、android:debuggable

?:?這個(gè)從字面上就可以看出是什么作用的,當(dāng)設(shè)置

為true時(shí),表明該APP在手機(jī)上可以被調(diào)試。

默認(rèn)為false,在false的情況下調(diào)試該APP,就

會(huì)報(bào)以下錯(cuò)誤:

DeviceXXXrequiresthatapplicationsexplicitelydeclarethemselvesas

debuggableintheirmanifest.

ApplicationXXXdoesnothavetheattribute'debuggable'settoTRUEinits

manifestandcannotbedebugged.

56

?E、android:description/androicl:label

?:?此兩個(gè)屬性都是為許可提供的,均為字符串資源,當(dāng)用

戶去看許可列表(androicklabel)或者某個(gè)許可的詳細(xì)

信息(android[description)時(shí),這些字符串資源就

可以顯示給用戶。label應(yīng)當(dāng)盡量簡(jiǎn)短,之需要告知用戶

該許可是在保護(hù)什么功能就行。而description可以用

于具體描述獲取該許可的程序可以做哪些事情,實(shí)際上

讓用戶可以知道如果他們同意程序獲取該權(quán)限的話,該

程序可以做什么。我們通常用兩句話來(lái)描述許可,第一

句描述該許可,第二句警告用戶如果批準(zhǔn)該權(quán)限會(huì)可能

有什么不好的事情發(fā)生

57

?F>android:enabled

?:?Android系統(tǒng)是否能夠?qū)嵗搼?yīng)用程序的組

件,如果為true,每個(gè)組件的enabled屬性決

定那個(gè)組件是否可以被enabled。如果為

false,它覆蓋組件指定的值;所有組件都是

disabledo

58

*G、androidzhasCodeCtrue1or'false')

?:?表示此APP是否包含任何的代碼,默認(rèn)為true,若為

false,則系統(tǒng)在運(yùn)行組件時(shí),不會(huì)去嘗試加載任何的

APP代碼

?:?一個(gè)應(yīng)用程序自身不會(huì)含有任何的代碼,除非內(nèi)置組件

類,比如Activity類,血類使用^AliasActivity類,

當(dāng)然這是個(gè)罕見的現(xiàn)象

*(在Android2.3可以用標(biāo)準(zhǔn)C來(lái)開發(fā)應(yīng)用程序,可在

androidManifest.xml市將止匕庸性設(shè)置為false,因?yàn)?/p>

這個(gè)APP本身已經(jīng)不含有任何的JAVA代碼了)

59

60

?:?工、android:killAfterRestore

進(jìn)程是否可以中途中止

<manifestxmlns:android="/apk/res/android"

android:sharedUserld="android.uid.system">

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name"

android:allowClearUserData="false"android:process="system"

android:killAfterRestore="false">

Besi

*K、androidmame

?為應(yīng)用程序所實(shí)現(xiàn)的Application子類的全名。

當(dāng)應(yīng)用程序進(jìn)程開始時(shí),該類在所有應(yīng)用程序組

件之前被實(shí)例化。

?:?若該類(比方androidMain類)是在聲明的

package卞,則可以直接聲響

android:name="androidMain”,但此類是

在package下面的子包的話,就必須聲明為圣

路徑或androickname="package名稱■子包

名成.androidMain”

62

?L>android:permission

?:?設(shè)置許可名,這個(gè)屬性若在〈application〉上

定義的話,是一個(gè)給應(yīng)用程序的所有組件設(shè)置許

可的便捷方式,當(dāng)然它是被各組件設(shè)置的許可名

所覆蓋的

63

64

Besi

*N、android:process

?:?應(yīng)用程序運(yùn)行的進(jìn)程名,它的默認(rèn)值為

〈manifest〉元素里設(shè)置的包名,當(dāng)然每個(gè)組

件都可以通過(guò)設(shè)置該屬性來(lái)覆蓋默認(rèn)值。如果你

想兩個(gè)應(yīng)用程序共用一個(gè)進(jìn)程的話,你可以設(shè)置

他們的android:process相同,但前提條件是

他們共享一個(gè)用戶工D及被賦予了相同證書的時(shí)

65

?O>android:restoreAnyVersion

?:?同樣也是android2.2的一個(gè)新特性,用來(lái)表明

應(yīng)用是否準(zhǔn)備嘗試恢復(fù)所有的備份,甚至該備份

是比當(dāng)前設(shè)備上更要新的版本,默認(rèn)是false

66

?P>android:taskAffinity

?:?擁有相同的affinity的Activity理論上屬于相同

的Task,應(yīng)用,序默認(rèn)的affinity的名字是

〈manifest〉元素中設(shè)定的package名

67

?Q>android:theme

?:?是一個(gè)資源的風(fēng)格,它定義了一個(gè)默認(rèn)的主題風(fēng)

格給所有的activity,當(dāng)然也可以在自己的

theme里面去設(shè)置它,有點(diǎn)類似style。

68

工程中的配置AndroidManifest.xml

<?xmlversion="1.0"encoding="utf-8"?>

<manifest

xmlns:android="/apk/res/android"

package=""

android:versionCode="l"

android:versionName="1.0">

<uses-sdkandroid:minSdkVersion="3"/>

opplicationandroid:icon="@drawable/icon"

android:label="@string/app_name">

octivityandroid:name=".MainActivity"

android:label="@string/app_name">

<intent-filter>

<actionandroid:name="ent.action.MAIN"/>

<category

android:name=^ent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

69

:?AndroidManifest.xml文件的根元素是manifest,

包含了xmlns:android、package、

androickversionCode和androickversionName

共4個(gè)屬性

xmlns:android定義了Android的命名空間,值為

http:〃/apk/res/android

■package定義了應(yīng)用程序的包名稱

androickversionCode定義了應(yīng)用程序的版本號(hào),是一個(gè)整

數(shù)值,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論