文法
<application android:allowTaskReparenting=["true" | "false"]
android:backupAgent="string"
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: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:supportsRtl=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:uiOptions=["none" | "splitActionBarWhenNarrow"]>
.. .
</application>
父元素
<manifest>
子項目
<activity>
<activity-alias>
<service>
<receiver>
<provider>
<uses-library>
描述
定義這個應用。這個元素包含定義了每個應用組件的子項目,擁有能影響所有應用組件的屬性。這些屬性中的大部分(如icon, label, permission,process, taskAffinity, 和allowTaskReparenting)都對特定組件元素的對應屬性設定預設值。其它屬性(如debuggable, enabled,description, 和allowClearUserData)是對這個應用整體進行設定,這些屬性不能被具體的組件重寫。
屬性
android:allowTaskReparenting
這個應用定義的activities是否能從啟動它們的task移動到和它們有關聯的task(當接下來這個task到前台的時候)-如果“true”,則能移動,否則它們必須和啟動它們的任務待到一起-“false”。預設值是“false”。
<activity>元素有它自己的能重寫這個屬性值的android:allowTaskReparenting屬性。更多內容參見這個屬性。
android:backupAgent
實現應用backup agent的類的名稱,這個類是BackupAgent的子類。這個屬性值應該是完整的類名(例如,“com.example.project.MyBackupAgent”)。然而,有一個簡寫,如果這個名稱的第一個字母是點(例如,“.MyBackupAgent”),那麼它會追加到在<manifest>元素中定義的包名的後面。
這個屬性沒有預設值,必須指定。
android:debuggable
是否這個應用可調式,即使用使用者模式在裝置上運行時-如果可以,則為“true”,否則為“false”。預設值是“false”。
android:description
這個應用的使用者可讀文本,同應用的label相比,它有更多或更長的敘述性內容。這個值必須通過string資源的引用來指定。和label不同的是,它不能為raw串。沒有預設值。
android:enabled
是否android系統能初始這個應用的組件-如果能,則為“true”;否則為“false”。如果這個值是“true”,那麼每個組件自身的enabled屬效能決定這個組件是否enabled。如果這個值是“false”,它會重寫指定組件的值;所有的組件都是disabled的。
預設值是“true”。
android:hasCode
是否這個應用程式套件含代碼-如果包含,則為“true”,否則為“false”。當它的值為“false”時,在運行組件時系統就不會設法裝載任何應用代碼。預設值是“true”。
如果它只是使用內建群組件類,那麼應用自身就不會有任何代碼。例如,使用了AliasActivity類的activity,這種情況很少發生。
android:hardwareAccelerated
是否對所有的activity和這個應用中所有的視圖啟用硬體加速功能-如果應該啟用,則為“true”,否則為“false”。
如果你已經設定minSdkVersion或targetSdkVersion到“14”或者更高,那麼這個值為“true”;否則,它的值為“false”。
從Android3.0(API Level 11)開始,硬體加速渲染器就對應用可用,這個功能主要用來提升大部分通用2D圖形操作的執行效能。當這個渲染器啟用時,大部分Canvas,Paint,Xfermode,ColorFilter,Shader和Camera的操作就會加速。總的來說,這就會產生平滑的動畫、平滑的滾動以及提升響應速度,甚至對那些沒有明確說明使用架構的OpenGL 庫的應用都有效。
需要注意的是,並非所有的OpenGL 2D操作都會加速。如果你啟用了硬體加速器,你需要測試你的應用以保證它能正確無誤的使用渲染器。
關於這方面的更多資訊,參見Hardware Acceleration嚮導。
android:icon
這個應用的表徵圖,同時也是這個應用的每個組件的預設表徵圖。參見<activity>、<activity-alias>、<service>、<receiver>和<provider>組件的各自的獨立icon屬性。
這個屬性必須設定為包含圖片的drawable資源的引用(例如:“@drawable/icon”)。沒有預設的表徵圖。
android:killAfterRestore
在出現問題時,這個應用是否在完整的系統復原操作已經完成後停止。單包恢複操作絕對不會導致這個應用會被關掉。
一般來說,當這個電話在安裝時,全系統復原操作只會出現一次。第三方應用一般不會用這個屬性。
預設值是true,意味著在全系統復原操作期間這個應用已經完成操作後,它將會停止。
android:largeHeap
是否你應用的進程應當在更大的Dalvik堆中建立。這會應用到建立這個應用的所有進程。如果你使用共用的使用者ID來允許多個應用使用同一個進程,則它只會應用到第一個裝載到進程中的應用,同時它們必須全部使用這個選項,否則將會出現不可預知的結果。
大部分應用都不需要這樣做,而是把焦點關注在如何減少它們記憶體使心率來提升效能。由於某些裝置還依賴於它整體的記憶體大小,所以啟用這項也不能保證安裝時可用記憶體會增加。
為了在運行時查看可用記憶體,可以使用getMemoryClass()或getLargeMemoryClass()方法。
android:label
統一地使用者可讀的應用標籤,同時也是每個應用組件的預設標籤。參見<activity>、<activity-alias>、<service>、<receiver>和<provider>組件的各自的獨立label屬性。
這個標籤應當設定為對string資源的引用,以便它能像使用者介面中的其它字串一樣本地化。然而,為了開發應用方便,你也可以直接使用raw串(寫入程式碼)。
android:logo
這個應用的logo,同時也是activities的預設logo。
這個屬性必須設定為包含圖片的drawable資源的引用(例如:“@drawable/logo”)。沒有預設logo。
android:manageSpaceActivity
Activity子類的完整標示符名稱,系統能運行這個子類讓使用者來管理裝置上應用的記憶體佔用。這個activity也應該用<activity>元素來定義。
android:name
實現這個應用的application子類的完整名稱。當這個應用的進程啟動時,這個類會在這個應用的所有組件之前初始化。
這個子類是可選的;大部分應用都不需要。在這個application的子類不存在時,android會使用最基本的Application類的執行個體。
android:permission
用戶端同這個應用互動時需要的許可權的名稱。這個屬性是為這個應用的所有組件設定許可權的最方便的方式。它能通過獨立的組件自身來重寫。
android:persistent
是否這個應用應當隨時保持運行-如果應當則為“true”,否則為“false”。預設是“false”。一般來說,應用不用設定這個標記;persistence模式在特定的系統應用中使用。
android:process
所有的應用組件應當啟動並執行進程的名稱。每個組件都能通過它自身的process屬性來重寫這個預設值。
預設情況下,當應用的第一個組件需要運行時,Android會對應用建立一個進程。所有的組件都運行在這個進程中。這個預設的進程名匹配在manifest中設定的包名。
通過設定其他應用能共用的進程名稱,你能為運行在同一個進程中的兩個應用的組件做準備-只是在如果兩個應用也共用同一個使用者ID並通過相同的認證來簽名的條件下。
如果分配的名稱用冒號(:)開始,那麼一個新的,對應用私人的進程就在需要它的時候建立。如果進程名字以小寫字母開始,那麼一個全域的進程就被建立。這個全域的進程能被其它應用共用,降低資源消耗。
android:restoreAnyVersion
表名應用準備嘗試備份資料的恢複,即使是這個備份是由比在當前裝置上安裝的應用程式更新的版本儲存的。設定這個屬性為true意味著即使當新版本採取了不相容的資料時,也允 許備份管理器嘗試進行恢複操作。因此,使用時要訊息!
這個屬性的預設值是false。
android:supportsRtl
聲明是否你的應用支援right-to-left(RTL)布局。
如果設定為true,並且targetSdkVersion設定了17或更高版本,大量的RTL APIs就會通過系統被啟用和使用,所以你的應用就可以顯示RTL布局。如果設定為false或targetSdkVersion設定了16或更低版本,這個RTL APIs就會被忽略或無效,並且不管使用者當前選擇了什麼方向,你的應用都以相同的方式運行(也就是你的布局總是left-to-right)。
這個屬性的預設值是false。
這個屬性在API Level 17中被添加。
android:taskAffinity
應用到這個應用的所有activities的affinity名稱,除了那些通過它們自己的taskAffinity屬性設定了不同的值的組件。
預設情況下,應用中的所有activities共用同一個affinity。這個affinity名稱匹配在<manifest>元素中定義的包名。
android:theme
對這個應用當中的所有activities聲明預設主題的資源的引用。每個activity本身也能通過它自己的theme屬性重寫這個預設值。更多資訊,參見Stylesand Themes嚮導。
android:uiOptions
activity UI的額外選項。
值必須是下面當中的一種。
值
描述
“none”
沒有額外的UI選項,這是預設值。
“splitActionBarWhenNarrow”
當受限於水平空間時(就像在手機豎屏時),在這個螢幕的底部添加一個bar用來在ActionBar中顯示action項。不是在螢幕的頂部action bar裡顯示少量的action項,而是為了這個action項將這個action bar分成頂部導航部分和底部導航部分。這不僅對這個action項,而且也對導航和頂部的標題元素保證了可用的合理數量的空間。功能表項目不能分成兩個bar;它們總是一起出現。
關於這個action bar的更多資訊,參見ActionBar開發人員嚮導。
這個屬性在API Level 14中被添加。