AndroidManifest.xml文件详解(application)
http://blog.csdn.net/think_soft/article/details/7557101
語法(SYNATX):
?
? ? ? ? ? ? ?android:allowBackup=["true" | "false"]
? ? ? ? ? ? ?android:backupAgent="string"
? ? ? ? ? ? ?android:banner="drawable resource"
? ? ? ? ? ? ?android:debuggable=["true" | "false"]
? ? ? ? ? ? ?android:description="string resource"
? ? ? ? ? ? ?android:enabled=["true" | "false"]
? ? ? ? ? ? ?android:hasCode=["true" | "false"]
? ? ? ? ? ? ?android:hardwareAccelerated=["true" | "false"]
? ? ? ? ? ? ?android:icon="drawable resource"
? ? ? ? ? ? ?android:isGame=["true" | "false"]
? ? ? ? ? ? ?android:killAfterRestore=["true" | "false"]
? ? ? ? ? ? ?android:largeHeap=["true" | "false"]
? ? ? ? ? ? ?android:label="string resource"
? ? ? ? ? ? ?android:logo="drawable resource"
? ? ? ? ? ? ?android:manageSpaceActivity="string"
? ? ? ? ? ? ?android:name="string"
? ? ? ? ? ? ?android:permission="string"
? ? ? ? ? ? ?android:persistent=["true" | "false"]
? ? ? ? ? ? ?android:process="string"
? ? ? ? ? ? ?android:restoreAnyVersion=["true" | "false"]
? ? ? ? ? ? ?android:requiredAccountType="string"
? ? ? ? ? ? ?android:restrictedAccountType="string"
? ? ? ? ? ? ?android:supportsRtl=["true" | "false"]
? ? ? ? ? ? ?android:taskAffinity="string"
? ? ? ? ? ? ?android:testOnly=["true" | "false"]
? ? ? ? ? ? ?android:theme="resource or theme"
? ? ? ? ? ? ?android:uiOptions=["none" | "splitActionBarWhenNarrow"]
? ? ? ? ? ? ?android:usesCleartextTraffic=["true" | "false"]
? ? ? ? ? ? ?android:vmSafeMode=["true" | "false"] >
? ? . . .
</application>
?
?
被包含于(CONTAINED IN):
<manifest>
能夠包含的元素(CAN CONTAIN):
<activity>
<activity-alias>
<service>
<receiver>
<provider>
<meta-data>
說明(DESCRIPTION):
這個元素用于應(yīng)用程序的 聲明。它包含了每個應(yīng)用程序組件所聲明的子元素,并且還有能夠影響所有組件的屬性。其中的很多屬性(如icon、label、permission、 process、taskAffinity和allowTaskReparenting)會給組件元素中對應(yīng)的屬性設(shè)置默認(rèn)值。其他的給是應(yīng)用程序整體設(shè) 置的值(如debuggable、enabled、description、allowClearUserData),并且這些屬性值不能被組件的屬性所 覆蓋。
屬性(ATTRIBUTES):
Android:allowTaskReparenting
當(dāng)一個與當(dāng)前任務(wù)有親緣 關(guān)系的任務(wù)被帶到前臺時,用這個屬性來指定應(yīng)用程序中定義的Activity能否從他們當(dāng)前的任務(wù)中轉(zhuǎn)移到這個有親緣關(guān)系的任務(wù)中。如果設(shè)置為true, 則能夠轉(zhuǎn)移,如果設(shè)置為false,則應(yīng)用程序中的Activity必須保留在它們所在的任務(wù)中。默認(rèn)值是false。
<activity>元素有它們自己的allowTaskReparenting屬性,它能夠覆蓋<application>元素中的設(shè)置。
?
android:allowBackup?
android:backupAgent
這個屬性用于定義應(yīng)用程 序備份代理的實現(xiàn)類的名稱,這個類是BackupAgent類的一個子類。它的屬性值應(yīng)該是完整的Java類的名稱 (如,com.example.project.MyBackupAgent)。但是,也可以使用用”.”符號開頭的簡稱 (如,.MyBackupAgent),系統(tǒng)會把<manifest>元素中指定的包名追加到”.”符號的前面。
android:debuggable
這個屬性用于指定應(yīng)用程序是否能夠被調(diào)試,即使是以用戶模式運行在設(shè)備上的時候。如果設(shè)置為true,則能夠被調(diào)試,否則不能調(diào)試,默認(rèn)值是false。
android:description
這個屬性用于定義應(yīng)用程序相關(guān)的用戶可讀文本,它要比應(yīng)用程序標(biāo)簽更長、更詳細(xì)。它的的值必須被設(shè)置成一個字符串資源的引用。跟label屬性不一樣,label屬性可以使用原生的字符串。這個屬性沒有默認(rèn)值。
android:enabled
這個屬性用于指定 Android系統(tǒng)能否實例化應(yīng)用程序組件。如果設(shè)置為true,這個可以實例化其組件,否則不能夠?qū)嵗H绻@個屬性被設(shè)置為true,那么就會使用 每個組件自己enabled屬性的設(shè)置來判斷其是否能夠被實例化。如果這個屬性被設(shè)置為false,它會覆蓋其所有組件自己指定的值,應(yīng)用程序中的所有組 件都會被禁用。
默認(rèn)值是true。
android:hasCode
這個屬性用于設(shè)置應(yīng)用程序是否包含了代碼,如果設(shè)置為true,則包含代碼,否則不包含任何代碼。在這個屬性被設(shè)置為false的時候,系統(tǒng)在加載組件的時候不會試圖加載任何應(yīng)用程序的代碼。默認(rèn)值是true。
如果應(yīng)用程序沒有使用任何應(yīng)用內(nèi)置組件類以外的組件,那么這個應(yīng)用程序就不會有任何自己的代碼,像使用AliasActivity類的Activity,是很少發(fā)生的。
android:hardwareAccelerated
這個屬性用于設(shè)置能夠給應(yīng)用程序中的所有Activity和View對象啟用硬件加速渲染。如果設(shè)置為true,則應(yīng)該啟用,如果設(shè)置為false,則不會啟用。默認(rèn)值是false。
從Android3.0 開始,應(yīng)用程序可以使用硬件加速的OpenGL渲染器,來改善很多共同的2D圖形操作的性能。當(dāng)硬件加速渲染被啟動的時候,在Canvas、Paint、 Xfermode、ColorFilter、Shader和Camera中的大多數(shù)操作都會被加速。這樣會使動畫、滾動更加平滑,并且會改善整體的響應(yīng)效 果,即使應(yīng)用程序沒有明確的使用框架的OpenGL類庫。
要注意的是,不是所有的OpenGL 2D操作都會被加速。如果啟用了硬件加速渲染器,就要對應(yīng)用程序進(jìn)行測試,以確保使用渲染器時不發(fā)生錯誤。
android:icon
這個屬性用于設(shè)置應(yīng)用程 序的整個圖標(biāo),以及每個應(yīng)用組件的默認(rèn)圖標(biāo)。對于<activity>、<activity- alias>、<service>、<service>、<receiver> 和<provider>元素,請看它們各自的icon屬性。
設(shè)置這個屬性時,必須要引用一個包含圖片的可繪制資源(例如,“@drawable/icon”)。沒有默認(rèn)的圖標(biāo)。
android:killAfterRestore
這個屬性用于指定在全系統(tǒng)的恢復(fù)操作期間,應(yīng)用的設(shè)置被恢復(fù)以后,對應(yīng)的問題程序是否應(yīng)該被終止。單包恢復(fù)操作不會導(dǎo)致應(yīng)用程序被關(guān)掉。全系統(tǒng)的復(fù)原操作通常只會發(fā)生一次,就是在電話被首次建立的時候。第三方應(yīng)用程序通常不需要使用這個屬性。
默認(rèn)值是true,這意味著在全系統(tǒng)復(fù)原期間,應(yīng)用程序完成數(shù)據(jù)處理之后,會被終止。
?
android:largeHeapMost apps should not need this and should instead focus on reducing their overall memory usage for improved performance. Enabling this also does not guarantee a fixed increase in available memory, because some devices are constrained by their total available memory.
To query the available memory size at runtime, use the methods getMemoryClass() or getLargeMemoryClass().
無論您的應(yīng)用程序的進(jìn)程應(yīng)該是一個多大的Dalvik堆。這適用于為應(yīng)用程序創(chuàng)建的所有進(jìn)程。它只適用于加載到進(jìn)程中的第一個應(yīng)用程序,如果你使用一個共享的用戶身份證,允許多個應(yīng)用程序使用一個進(jìn)程,他們都必須使用此選項一致或他們將有不可預(yù)測的結(jié)果。
大多數(shù)應(yīng)用程序不應(yīng)該需要這個,而應(yīng)該把重點放在減少對性能的整體內(nèi)存使用上。啟用此也不保證可用內(nèi)存的固定增加,因為一些設(shè)備被其總可用內(nèi)存限制。
查詢可用的內(nèi)存大小在運行時,使用的方法getmemoryclass()或getlargememoryclass()。
?
?
android:label
這個屬性用于設(shè)置應(yīng)用程 序整體的用戶可讀的標(biāo)簽,并也是每個應(yīng)用程序組件的默認(rèn)標(biāo)簽。對于<activity>、<activity- alias>、<service>、<receiver>和<provider>元素,請看它們各自的 label屬性。
設(shè)置這個屬性值時,應(yīng)該引用一個字符串資源。以便它能夠跟用戶界面中的其他字符串一樣能夠被本地化。但是為了應(yīng)用程序開發(fā)的便利,也能夠用原生的字符串來設(shè)置。
android:logo
這個屬性用于給整個應(yīng)用程序設(shè)置一個Logo,而且它也是所有Activity的默認(rèn)Logo。
設(shè)置這個屬性時,必須要引用一個包含圖片的可繪制資源(如:“@drawable/logo”)。沒有默認(rèn)的Logo。
android:manageSpaceActivity
這個屬性定義了一個完整的Activity子類的名字,系統(tǒng)能夠把這個名字加載到由用戶管理被應(yīng)用程序所占用的設(shè)備上的內(nèi)存。這個Activity也應(yīng)該用<activity>元素來聲明。
android:name
這整個屬性用完整的Java類名,給應(yīng)用程序定義了一個Application子類的實現(xiàn)。當(dāng)應(yīng)用程序進(jìn)程被啟動時,這個類在其他任何應(yīng)用程序組件被實例化之前實例化。
這個子類實現(xiàn)是可選的,大多數(shù)應(yīng)用程序不需要一個子類的實現(xiàn)。如果沒有實現(xiàn)自己的子類,Android系統(tǒng)會使用基本的Application類的一個實例。
android:permission
這個屬性定義了一個權(quán)限,為了跟應(yīng)用程序進(jìn)行交互,客戶端必須要有這個權(quán)限。這個屬性是為給所有的應(yīng)用程序組件設(shè)置權(quán)限提供了便利的方法。它能夠被獨立組件所設(shè)置的permission屬性所覆蓋。
android:persistent
這個屬性用戶設(shè)置應(yīng)用程序是否應(yīng)該時刻保持運行狀態(tài),如果設(shè)置為true,那么就保持,否則不保持。默認(rèn)值是false。普通的應(yīng)用程序不應(yīng)該設(shè)置這個屬性,持久運行模式僅用于某些系統(tǒng)級的應(yīng)用程序。
android:process
這個屬性用于定義一個進(jìn)程名稱,應(yīng)用程序的所有組件都應(yīng)該運行在這個進(jìn)程中。每個組件都能夠用它自己process屬性的設(shè)置來覆蓋這個<application>元素中的設(shè)置。
默認(rèn)情況下,當(dāng)應(yīng)用程序的第一個組件需要運行時,Android系統(tǒng)就會給這個應(yīng)用程序創(chuàng)建一個進(jìn)程。然后,應(yīng)用中的所有組件都運行在這個進(jìn)程中。默認(rèn)的進(jìn)程名是跟<manifest>元素中設(shè)置的包名進(jìn)行匹配的。
通過設(shè)置這個屬性,能夠跟另外一個應(yīng)用程序共享一個進(jìn)程名,能夠把這兩個應(yīng)用程序中的組件都安排到同一個進(jìn)程中運行---但是僅限于這兩個應(yīng)用程序共享一個用戶ID,并且?guī)в邢嗤臄?shù)字證書。
如果這個進(jìn)程名稱用“:”開頭,那么在需要的時候,就會給應(yīng)用程序創(chuàng)建一個新的、私有的進(jìn)程。如果進(jìn)程名用小寫字符開頭,就會用這個名字創(chuàng)建一個全局的進(jìn)程,這個全局的進(jìn)程能夠被其他應(yīng)用程序共享,從而減少資源的使用。
android:restoreAnyVersion
設(shè)置這個屬性表示應(yīng)用程序準(zhǔn)備嘗試恢復(fù)任何備份的數(shù)據(jù)集,即使備份比設(shè)備上當(dāng)前安裝的應(yīng)用程序的版本要新。這個屬性設(shè)置為true,即使是在版本不匹配而產(chǎn)生數(shù)據(jù)兼容性提示的時候,也會允許備份管理來恢復(fù)備份的數(shù)據(jù),所以要謹(jǐn)慎使用。
這個屬性的默認(rèn)值是false。
android:taskAffinity
這個屬性給應(yīng)用的所有的Activity設(shè)置了一個親緣關(guān)系名,除了那些用它們自己的taskAffinity屬性設(shè)置不同親緣關(guān)系的組件。
默認(rèn)情況下,應(yīng)用程序中的所有Activity都會共享相同的親緣關(guān)系,親緣關(guān)系的名稱跟由<manifest>元素設(shè)置的包名相同。
android:theme
這個屬性給應(yīng)用程序中所有的Activity設(shè)置默認(rèn)的主題,屬性值要引用一個樣式資源。每個獨立的Activity的主題會被它們自己的theme屬性所覆蓋。
android:uiOptions
這個屬性設(shè)置了Activity的UI的額外選項。它必須是下表中的一個值:
| 值 | 說明 |
| none | 默認(rèn)設(shè)置,沒有額外的UI選項。 |
| splitActionBarWhenNarrow | 在水平空間受到限制的時 候,會在屏幕的底部添加一個用于顯示ActionBar中操作項的欄,例如:在縱向的手持設(shè)備上。而不是在屏幕頂部的操作欄中顯示少量的操作項。它會把操 作欄分成上下兩部分,頂部用于導(dǎo)航選擇,底部用于操作項目。這樣就會確保可用的合理空間不僅只是針對操作項目,而且還會在頂部給導(dǎo)航和標(biāo)題留有空間。菜單 項目不能被分開到兩個欄中,它們要顯示在一起。 |
被引入的版本(INTRODUCED IN):
API Level 1
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangxia/p/4958298.html
總結(jié)
以上是生活随笔為你收集整理的AndroidManifest.xml文件详解(application)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主外键创建
- 下一篇: Android系统共享一套sdk