版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版道德與法治八年級(jí)上冊(cè)第四單元 第九課《樹立總體國(guó)家安全觀》檢測(cè)卷
- 承臺(tái)基坑回填施工技術(shù)交底
- 西南名校聯(lián)盟2021屆高考地理3+3+3備考診斷性聯(lián)考卷一
- 2024年高溫金屬氧化物濕敏傳感器項(xiàng)目發(fā)展計(jì)劃
- 2024年視覺傳感器合作協(xié)議書
- 蕪湖市裝修材料采購(gòu)合同
- 食品加工廠裝修安全
- 洗浴中心裝修清包工協(xié)議
- 高效煤炭配送運(yùn)輸服務(wù)合同
- 船舶制造融資居間合同范例
- 教師業(yè)務(wù)考試試題
- 第3節(jié)-地球的自轉(zhuǎn)公開課教案課件
- “數(shù)字城市”公共智慧底座項(xiàng)目解決方案
- 科學(xué)五年級(jí)上冊(cè)3.2.用水計(jì)量時(shí)間3
- 國(guó)開2024年秋《機(jī)電控制工程基礎(chǔ)》形考任務(wù)3答案
- 第一單元名著導(dǎo)讀《艾青詩(shī)選》 課件 2024-2025學(xué)年統(tǒng)編版語(yǔ)文九年級(jí)上冊(cè)
- 2021-2022學(xué)年北京市昌平區(qū)八年級(jí)(上)期中數(shù)學(xué)試卷(A卷)(附答案詳解)
- 2024年全國(guó)職業(yè)院校技能大賽中職組(母嬰照護(hù)賽項(xiàng))考試題庫(kù)(含答案)
- 2023年蘇教版小學(xué)到年級(jí)語(yǔ)文課本上的所有必背古詩(shī)詞
- 【W(wǎng)EZO】2024社交媒體全球使用趨勢(shì)報(bào)告
- 中國(guó)高血壓防治指南(2024年修訂版)解讀(總)
評(píng)論
0/150
提交評(píng)論