Android Manifest之<application>元素中文註釋

語法
    <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中被添加。

You May Also Like