AndroidManifest.xml文件詳解(application)


http://blog.csdn.net/think_soft/article/details/7557101

語法(SYNATX):

 

<application android:allowTaskReparenting=["true" | "false"]
             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):

這個元素用於應用程序的 聲明。它包含了每個應用程序組件所聲明的子元素,並且還有能夠影響所有組件的屬性。其中的很多屬性(如icon、label、permission、 process、taskAffinity和allowTaskReparenting)會給組件元素中對應的屬性設置默認值。其他的給是應用程序整體設 置的值(如debuggable、enabled、description、allowClearUserData),並且這些屬性值不能被組件的屬性所 覆蓋。

屬性(ATTRIBUTES):

Android:allowTaskReparenting

當一個與當前任務有親緣 關系的任務被帶到前台時,用這個屬性來指定應用程序中定義的Activity能否從他們當前的任務中轉移到這個有親緣關系的任務中。如果設置為true, 則能夠轉移,如果設置為false,則應用程序中的Activity必須保留在它們所在的任務中。默認值是false。

<activity>元素有它們自己的allowTaskReparenting屬性,它能夠覆蓋<application>元素中的設置。

 

android:allowBackup
Whether to allow the application to participate in the backup and restore infrastructure. If this attribute is set to false, no backup or restore of the application will ever be performed, even by a full-system backup that would otherwise cause all application data to be saved via adb. The default value of this attribute is true.
是否允許備份應用的數據,默認是true,當備份數據的時候,它的數據會被備份下來。如果設為false,那么絕對不會備份應用的數據,即使是備份整個系統。

 

android:backupAgent

這個屬性用於定義應用程 序備份代理的實現類的名稱,這個類是BackupAgent類的一個子類。它的屬性值應該是完整的Java類的名稱 (如,com.example.project.MyBackupAgent)。但是,也可以使用用”.”符號開頭的簡稱 (如,.MyBackupAgent),系統會把<manifest>元素中指定的包名追加到”.”符號的前面。

android:debuggable

這個屬性用於指定應用程序是否能夠被調試,即使是以用戶模式運行在設備上的時候。如果設置為true,則能夠被調試,否則不能調試,默認值是false。

android:description

這個屬性用於定義應用程序相關的用戶可讀文本,它要比應用程序標簽更長、更詳細。它的的值必須被設置成一個字符串資源的引用。跟label屬性不一樣,label屬性可以使用原生的字符串。這個屬性沒有默認值。

android:enabled

這個屬性用於指定 Android系統能否實例化應用程序組件。如果設置為true,這個可以實例化其組件,否則不能夠實例化。如果這個屬性被設置為true,那么就會使用 每個組件自己enabled屬性的設置來判斷其是否能夠被實例化。如果這個屬性被設置為false,它會覆蓋其所有組件自己指定的值,應用程序中的所有組 件都會被禁用。

默認值是true。

android:hasCode

這個屬性用於設置應用程序是否包含了代碼,如果設置為true,則包含代碼,否則不包含任何代碼。在這個屬性被設置為false的時候,系統在加載組件的時候不會試圖加載任何應用程序的代碼。默認值是true。

如果應用程序沒有使用任何應用內置組件類以外的組件,那么這個應用程序就不會有任何自己的代碼,像使用AliasActivity類的Activity,是很少發生的。

android:hardwareAccelerated

這個屬性用於設置能夠給應用程序中的所有Activity和View對象啟用硬件加速渲染。如果設置為true,則應該啟用,如果設置為false,則不會啟用。默認值是false。

從Android3.0 開始,應用程序可以使用硬件加速的OpenGL渲染器,來改善很多共同的2D圖形操作的性能。當硬件加速渲染被啟動的時候,在Canvas、Paint、 Xfermode、ColorFilter、Shader和Camera中的大多數操作都會被加速。這樣會使動畫、滾動更加平滑,並且會改善整體的響應效 果,即使應用程序沒有明確的使用框架的OpenGL類庫。

要注意的是,不是所有的OpenGL 2D操作都會被加速。如果啟用了硬件加速渲染器,就要對應用程序進行測試,以確保使用渲染器時不發生錯誤。

android:icon

這個屬性用於設置應用程 序的整個圖標,以及每個應用組件的默認圖標。對於<activity>、<activity- alias>、<service>、<service>、<receiver> 和<provider>元素,請看它們各自的icon屬性。

設置這個屬性時,必須要引用一個包含圖片的可繪制資源(例如,“@drawable/icon”)。沒有默認的圖標。

android:killAfterRestore

這個屬性用於指定在全系統的恢復操作期間,應用的設置被恢復以后,對應的問題程序是否應該被終止。單包恢復操作不會導致應用程序被關掉。全系統的復原操作通常只會發生一次,就是在電話被首次建立的時候。第三方應用程序通常不需要使用這個屬性。

默認值是true,這意味着在全系統復原期間,應用程序完成數據處理之后,會被終止。

 

android:largeHeap
Whether your application's processes should be created with a large Dalvik heap. This applies to all processes created for the application. It only applies to the first application loaded into a process; if you're using a shared user ID to allow multiple applications to use a process, they all must use this option consistently or they will have unpredictable results.

Most 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().

無論您的應用程序的進程應該是一個多大的Dalvik堆。這適用於為應用程序創建的所有進程。它只適用於加載到進程中的第一個應用程序,如果你使用一個共享的用戶身份證,允許多個應用程序使用一個進程,他們都必須使用此選項一致或他們將有不可預測的結果。

大多數應用程序不應該需要這個,而應該把重點放在減少對性能的整體內存使用上。啟用此也不保證可用內存的固定增加,因為一些設備被其總可用內存限制。

查詢可用的內存大小在運行時,使用的方法getmemoryclass()或getlargememoryclass()。

 

 

android:label

這個屬性用於設置應用程 序整體的用戶可讀的標簽,並也是每個應用程序組件的默認標簽。對於<activity>、<activity- alias>、<service>、<receiver>和<provider>元素,請看它們各自的 label屬性。

設置這個屬性值時,應該引用一個字符串資源。以便它能夠跟用戶界面中的其他字符串一樣能夠被本地化。但是為了應用程序開發的便利,也能夠用原生的字符串來設置。

android:logo

這個屬性用於給整個應用程序設置一個Logo,而且它也是所有Activity的默認Logo。

設置這個屬性時,必須要引用一個包含圖片的可繪制資源(如:“@drawable/logo”)。沒有默認的Logo。

android:manageSpaceActivity

這個屬性定義了一個完整的Activity子類的名字,系統能夠把這個名字加載到由用戶管理被應用程序所占用的設備上的內存。這個Activity也應該用<activity>元素來聲明。

android:name

這整個屬性用完整的Java類名,給應用程序定義了一個Application子類的實現。當應用程序進程被啟動時,這個類在其他任何應用程序組件被實例化之前實例化。

這個子類實現是可選的,大多數應用程序不需要一個子類的實現。如果沒有實現自己的子類,Android系統會使用基本的Application類的一個實例。

android:permission

這個屬性定義了一個權限,為了跟應用程序進行交互,客戶端必須要有這個權限。這個屬性是為給所有的應用程序組件設置權限提供了便利的方法。它能夠被獨立組件所設置的permission屬性所覆蓋。

android:persistent

這個屬性用戶設置應用程序是否應該時刻保持運行狀態,如果設置為true,那么就保持,否則不保持。默認值是false。普通的應用程序不應該設置這個屬性,持久運行模式僅用於某些系統級的應用程序。

android:process

這個屬性用於定義一個進程名稱,應用程序的所有組件都應該運行在這個進程中。每個組件都能夠用它自己process屬性的設置來覆蓋這個<application>元素中的設置。

默認情況下,當應用程序的第一個組件需要運行時,Android系統就會給這個應用程序創建一個進程。然后,應用中的所有組件都運行在這個進程中。默認的進程名是跟<manifest>元素中設置的包名進行匹配的。

通過設置這個屬性,能夠跟另外一個應用程序共享一個進程名,能夠把這兩個應用程序中的組件都安排到同一個進程中運行---但是僅限於這兩個應用程序共享一個用戶ID,並且帶有相同的數字證書。

如果這個進程名稱用“:”開頭,那么在需要的時候,就會給應用程序創建一個新的、私有的進程。如果進程名用小寫字符開頭,就會用這個名字創建一個全局的進程,這個全局的進程能夠被其他應用程序共享,從而減少資源的使用。

android:restoreAnyVersion

設置這個屬性表示應用程序准備嘗試恢復任何備份的數據集,即使備份比設備上當前安裝的應用程序的版本要新。這個屬性設置為true,即使是在版本不匹配而產生數據兼容性提示的時候,也會允許備份管理來恢復備份的數據,所以要謹慎使用。

這個屬性的默認值是false。

android:taskAffinity

這個屬性給應用的所有的Activity設置了一個親緣關系名,除了那些用它們自己的taskAffinity屬性設置不同親緣關系的組件。

默認情況下,應用程序中的所有Activity都會共享相同的親緣關系,親緣關系的名稱跟由<manifest>元素設置的包名相同。

android:theme

這個屬性給應用程序中所有的Activity設置默認的主題,屬性值要引用一個樣式資源。每個獨立的Activity的主題會被它們自己的theme屬性所覆蓋。

android:uiOptions

這個屬性設置了Activity的UI的額外選項。它必須是下表中的一個值:

說明

none

默認設置,沒有額外的UI選項。

splitActionBarWhenNarrow

在水平空間受到限制的時 候,會在屏幕的底部添加一個用於顯示ActionBar中操作項的欄,例如:在縱向的手持設備上。而不是在屏幕頂部的操作欄中顯示少量的操作項。它會把操 作欄分成上下兩部分,頂部用於導航選擇,底部用於操作項目。這樣就會確保可用的合理空間不僅只是針對操作項目,而且還會在頂部給導航和標題留有空間。菜單 項目不能被分開到兩個欄中,它們要顯示在一起。

被引入的版本(INTRODUCED IN):

API Level 1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM