1. 程式人生 > >Android官方文件—APP清單(

Android官方文件—APP清單(

<application>

語法:

<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:resizeableActivity=["true" | "false"]
             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>

包含於:

可包含:

說明:

申請的宣告。此元素包含子元素,這些子元素宣告每個應用程式的元件,並具有可影響所有元件的屬性。其中許多屬性(例如icon,label,permission,process,taskAffinity和allowTaskReparenting)為元件元素的相應屬性設定了預設值。其他(例如,debuggable,enabled,description和allowClearUserData)為應用程式整體設定值,並且不能被元件覆蓋。

屬性:

android:allowTaskReparenting

無論應用程式定義的活動是否可以從啟動它們的任務移動到任務,它們都對下一個任務接下來時具有親和力 - 如果它們可以移動則為“true”,如果它們必須保留則為“false”他們開始的任務。預設值為“false”。

<activity>元素有自己的allowTaskReparenting屬性,可以覆蓋此處設定的值。有關更多資訊,請參閱該屬性。

android:allowBackup

是否允許應用程式參與備份和還原基礎結構。如果此屬性設定為false,則不會執行應用程式的備份或還原,即使是全系統備份也會導致所有應用程式資料都通過adb儲存。此屬性的預設值為true。

android:backupAgent

實現應用程式備份代理程式的類的名稱,BackupAgent的子類。屬性值應該是完全限定的類名(例如,“com.example.project.MyBackupAgent”)。但是,作為簡寫,如果名稱的第一個字元是句點(例如,“。MyBackupAgent”),則它將附加到<manifest>元素中指定的包名稱。

沒有預設值。必須指定名稱。

android:banner

可繪製資源,為其關聯專案提供擴充套件圖形橫幅。與<application>標籤一起使用可為所有應用程式活動提供預設橫幅,或使用<activity>標籤為特定活動提供橫幅。

系統使用橫幅來表示Android TV主螢幕中的應用程式。由於橫幅僅顯示在主螢幕中,因此只應由具有處理CATEGORY_LEANBACK_LAUNCHER意圖的活動的應用程式指定。

必須將此屬性設定為對包含影象的可繪製資源的引用(例如“@ drawable / banner”)。沒有預設橫幅。

請參閱電視設計指南的UI模式中的橫幅,並在“電視應用入門”中提供主螢幕橫幅以獲取更多資訊。

android:debuggable

是否可以除錯應用程式,即使在使用者模式下在裝置上執行 - 如果可以,則為“true”,否則為“false”。預設值為“false”。

android:description

關於應用程式的使用者可讀文字,比應用程式標籤更長,更具描述性。必須將該值設定為對字串資源的引用。與標籤不同,它不能是原始字串。沒有預設值。

android:enabled

Android系統是否可以例項化應用程式的元件 - 如果可以,則為“true”,否則為“false”。如果值為“true”,則每個元件的enabled屬性確定是否啟用該元件。如果值為“false”,則它將覆蓋特定於元件的值;所有元件都被禁用。

預設值是true”。

android:hasCode

應用程式是否包含任何程式碼 - 如果是,則為“true”,否則為“false”。當值為“false”時,系統在啟動元件時不會嘗試載入任何應用程式程式碼。預設值是true”。

只有當應用程式只使用內建元件類(例如使用AliasActivity類的活動)時,應用程式才會擁有自己的任何程式碼,這種情況很少發生。

android:hardwareAccelerated

是否應為此應用程式中的所有活動和檢視啟用硬體加速渲染 - 如果應啟用則為“true”,否則為“false”。如果您將minSdkVersion或targetSdkVersion設定為“14”或更高,則預設值為“true”;否則,它是“假的”。

從Android 3.0(API級別11)開始,應用程式可以使用硬體加速的OpenGL渲染器,以提高許多常見2D圖形操作的效能。啟用硬體加速渲染器後,Canvas,Paint,Xfermode,ColorFilter,Shader和Camera中的大多數操作都會加速。即使對於未明確使用框架的OpenGL庫的應用程式,這也可以實現更平滑的動畫,更平滑的滾動以及更好的響應性。

請注意,並非所有OpenGL 2D操作都會加速。如果啟用硬體加速渲染器,請測試應用程式以確保它可以無錯誤地使用渲染器。

有關更多資訊,請閱讀硬體加速指南。

android:icon

整個應用程式的圖示,以及每個應用程式元件的預設圖示。檢視<activity>,<activity-alias>,<service>,<receiver>和<provider>元素的各個圖示屬性。

必須將此屬性設定為對包含影象的可繪製資源的引用(例如“@ drawable / icon”)。沒有預設圖示。

android:isGame

該應用程式是否是遊戲。系統可以將分類為遊戲的應用程式組合在一起,或者將它們與其他應 預設值為false。

android:killAfterRestore

是否應在完整系統還原操作期間恢復其設定後終止相關應用程式。單包恢復操作永遠不會導致應用程式關閉。首次設定電話時,全系統還原操作通常只發生一次。第三方應用程式通常不需要使用此屬性。

預設值為true,這意味著在應用程式在完整系統還原期間處理完資料後,它將終止。

android:largeHeap

是否應使用大型Dalvik堆建立應用程式的程序。這適用於為應用程式建立的所有程序。它僅適用於載入到程序中的第一個應用程式;如果您使用共享使用者ID以允許多個應用程式使用程序,則它們都必須始終如一地使用此選項,否則它們將具有不可預測的結果。

大多數應用程式不應該需要這個,而應該專注於減少其總體記憶體使用量以提高效能。啟用此功能也不能保證可用記憶體的固定增加,因為某些裝置受其總可用記憶體的限制。

要在執行時查詢可用的記憶體大小,請使用方法getMemoryClass()或getLargeMemoryClass()。

android:label

作為整體的應用程式的使用者可讀標籤,以及每個應用程式元件的預設標籤。請參閱<activity>,<activity-alias>,<service>,<receiver>和<provider>元素的各個標籤屬性。

應將標籤設定為對字串資源的引用,以便它可以像使用者介面中的其他字串一樣進行本地化。但是,為了方便您開發應用程式,它也可以設定為原始字串。

android:logo

整個應用程式的徽標,以及活動的預設徽標。

必須將此屬性設定為對包含影象的可繪製資源的引用(例如“@ drawable / logo”)。沒有預設徽標。

android:manageSpaceActivity

系統可以啟動的Activity子類的完全限定名稱,以允許使用者管理裝置上應用程式佔用的記憶體。還應使用<activity>元素宣告活動。

android:name

為應用程式實現的Application子類的完全限定名稱。啟動應用程式程序時,將在任何應用程式的元件之前例項化此類。

子類是可選的;大多數應用程式不需要一個。在沒有子類的情況下,Android使用基本Application類的例項。

android:permission

客戶端必須具有的許可權的名稱才能與應用程式進行互動。此屬性是設定適用於所有應用程式元件的許可權的便捷方式。可以通過設定各個元件的許可權屬性來覆蓋它。

有關許可權的更多資訊,請參閱簡介中的“許可權”部分和另一個文件“安全性和許可權”。

android:persistent

應用程式是否應始終保持執行 - 如果應該,則為“true”,否則為“false”。預設值為“false”。應用程式通常不應設定此標誌;永續性模式僅適用於某些系統應用程式。

android:process

應該執行應用程式的所有元件的程序的名稱。每個元件都可以通過設定自己的程序屬性來覆蓋此預設值。

預設情況下,Android會在第一個元件需要執行時為應用程式建立一個程序。然後所有元件都在該過程中執行。預設程序的名稱與<manifest>元素設定的包名稱匹配。

通過將此屬性設定為與另一個應用程式共享的程序名稱,您可以安排兩個應用程式的元件在同一程序中執行 - 但前提是這兩個應用程式還共享一個使用者ID並使用相同的證書進行簽名。

如果分配給此屬性的名稱以冒號(':')開頭,則在需要時會建立一個專用於應用程式的新程序。如果程序名稱以小寫字元開頭,則會建立該名稱的全域性程序。可以與其他應用程式共享全域性程序,從而減少資源使用。

android:restoreAnyVersion

表示應用程式已準備好嘗試還原任何備份資料集,即使備份是由應用程式的較新版本儲存而不是當前安裝在裝置上。將此屬性設定為true將允許備份管理器嘗試還原,即使版本不匹配表明資料不相容也是如此。謹慎使用!

此屬性的預設值為false。

android:requiredAccountType

指定應用程式執行所需的帳戶型別。如果您的應用需要帳戶,則此屬性的值必須與您的應用使用的帳戶身份驗證器型別(由AuthenticatorDescription定義)相對應,例如“com.google”。

預設值為null,表示應用程式可以在沒有任何帳戶的情況下工作。

由於受限制的配置檔案當前無法新增帳戶,因此指定此屬性會使您的應用程式不受限制配置檔案的影響,除非您還宣告具有相同值的android:restrictedAccountType。

警告:如果帳戶資料可能會洩露個人身份資訊,請務必宣告此屬性並保留android:restrictedAccountType null,以便受限制的配置檔案無法使用您的應用訪問屬於所有者使用者的個人資訊。

此屬性已在API級別18中新增。

resizeableActivity

指定應用程式是否支援多視窗顯示。您可以在<activity>或<application>元素中設定此屬性。

如果將此屬性設定為true,則使用者可以在分屏和自由形式模式下啟動活動。如果將該屬性設定為false,則該活動不支援多視窗模式。如果此值為false,並且使用者嘗試以多視窗模式啟動活動,則活動將佔據整個螢幕。

如果您的應用面向API級別24或更高級別,但未指定此屬性的值,則該屬性的值預設為true。

此屬性已在API級別24中新增。

android:restrictedAccountType

指定此應用程式所需的帳戶型別,並指示允許受限制的配置檔案訪問屬於所有者使用者的此類帳戶。如果您的應用需要帳戶,並且允許受限制的個人資料訪問主要使用者的帳戶,則此屬性的值必須與您的應用使用的帳戶身份驗證器型別(由AuthenticatorDescription定義)相對應,例如“com.google”。

預設值為null,表示應用程式可以在沒有任何帳戶的情況下工作。

警告:指定此屬性允許受限制的配置檔案將您的應用與屬於所有者使用者的帳戶一起使用,這可能會洩露個人身份資訊。如果帳戶可能會顯示個人詳細資訊,則不應使用此屬性,而應宣告android:requiredAccountType屬性,以使您的應用對受限制的配置檔案不可用。

此屬性已在API級別18中新增。

android:supportsRtl

宣告您的應用程式是否願意支援從右到左(RTL)佈局。

如果設定為true且targetSdkVersion設定為17或更高,則系統將啟用並使用各種RTL API,以便您的應用程式可以顯示RTL佈局。如果設定為false或者targetSdkVersion設定為16或更低,則RTL API將被忽略或無效,並且無論與使用者的Locale選項關聯的佈局方向如何,您的應用都將表現相同(您的佈局將始終保持不變-to-右)。

此屬性的預設值為false。

此屬性已在API級別17中新增。

android:taskAffinity

一個關聯名稱,適用於應用程式中的所有活動,但與其自己的taskAffinity屬性設定不同關聯的活動除外。有關更多資訊,請參閱該屬性。

預設情況下,應用程式中的所有活動共享相同的關聯。該關聯的名稱與<manifest>元素設定的包名稱相同。

android:testOnly

指示此應用程式是否僅用於測試目的。例如,它可能會暴露自身之外的功能或資料,這會導致安全漏洞,但對測試很有用。這種應用程式只能通過adb安裝。

android:theme

對樣式資源的引用,該資源定義應用程式中所有活動的預設主題。單個活動可以通過設定自己的主題屬性來覆蓋預設值。有關更多資訊,請參閱樣式和主題開發人員指南。

android:uiOptions

活動UI的額外選項。

必須是以下值之一。

Value Description
"none" 沒有額外的UI選項。這是預設值。
"splitActionBarWhenNarrow" 當受限於水平空間時(例如在手機上處於縱向模式時),在螢幕底部新增一個條以在應用欄(也稱為操作欄)中顯示操作項。應用欄分為頂部導航部分和操作項底部欄,而不是顯示在螢幕頂部的應用欄中的少量操作項。這樣可以確保合理的空間不僅可用於操作項,還可用於頂部的導航和標題元素。選單項不會分成兩個欄;他們總是一起出現。

有關應用欄的更多資訊,請參閱新增應用欄培訓課程。

此屬性已在API級別14中新增。

android:usesCleartextTraffic

指示應用程式是否打算使用明文網路流量,例如明文HTTP。預設值是true”。

當屬性設定為“false”時,平臺元件(例如,HTTP和FTP堆疊,DownloadManager,MediaPlayer)將拒絕應用程式使用明文流量的請求。強烈建議第三方圖書館遵守此設定。避免明文流量的關鍵原因是缺乏機密性,真實性和防止篡改:網路攻擊者可以竊聽傳輸的資料並在不被檢測的情況下對其進行修改。

此標誌在盡力而為的基礎上得到尊重,因為根據提供給他們的訪問級別,不可能阻止來自Android應用程式的所有明文流量。例如,沒有預期Socket API將遵循此標誌,因為它無法確定其流量是否為明文。但是,來自應用程式的大多數網路流量由更高級別的網路堆疊/元件處理,這些堆疊/元件可以通過從ApplicationInfo.flags或NetworkSecurityPolicy.isCleartextTrafficPermitted()讀取此標誌來獲得此標誌。

注意:WebView不支援此標誌。

在應用程式開發期間,StrictMode可用於識別來自應用程式的任何明文流量:請參閱StrictMode.VmPolicy.Builder.detectCleartextNetwork()。

此屬性已在API級別23中新增。

如果存在Android網路安全配置,則在Android N及更高版本上將忽略此標誌。

android:vmSafeMode

指示應用程式是否希望虛擬機器(VM)以安全模式執行。預設值為“false”。

此屬性是在API級別8中新增的,其中值“true”禁用了Dalvik實時(JIT)編譯器。

此屬性在API級別22中進行了調整,其中值“true”禁用了ART提前(AOT)編譯器。

引入於:

API Level 1

參閱: