AndroidManifest.xml文件詳解

manifest根節點的屬性

package 指定應用的包名,每個應用的包名是唯一的,
android:versionCode 指定應用的版本號,對用戶不可見,對開發人員可用,可通過比較版本號進行應用版本升級。
android:versionName 指定應用的版本名稱,對用戶可見,用戶可以到設置裏查看版本名稱。
android:sharedUserId 用於多個應用之間共享userid,多個應用如果將此屬性設爲同一個值,那麼這些應用就可以共享資源了,詳情見另一篇文章
http://blog.csdn.net/u012481172/article/details/51095658
android:installLocation 應用的安裝位置,有三種選擇,auto、internalOnly 和preferExternal。
android:sharedUserLabel 爲sharedUserId屬性指定標籤,只能是用@string引用,不能直接用字符串。

Application節點屬性

android:name
自定義Application時,需要在此指定

android:theme
應用的主題樣式

android:label
應用描述,此描述會在設置、應用管理裏給用戶看的,不是桌面的app名字,也不是應用中默認的ActionBar的title,桌面上應用的名稱是主Activity的label描述的

android:icon
此圖標就是設置、應用管理裏的應用描述圖標,同時也是桌面上的圖標,如果不設置就會默認使用系統自帶的機器人圖標(不是項目自帶的機器人,是系統原始的圖標)

android:logo
應用的logo,是所有的Activity的Actionbar上的Logo,不是桌面的啓動圖標,也不是設置中應用程序的描述圖標。如果不設置此屬性,就會默認使用icon屬性的圖標,如果icon也沒有設置就會使用系統自帶的圖標

android:permission
設置權限許可,如果此屬性有設置,並且其下的各組件也設置了的就會被覆蓋

android:process
應用程序的進程名,如果不設置就會默認爲package名

android:taskAffinity
設置Activity任務棧的名稱

android:allowTaskReparenting
表示是否允許Activity的task棧遷移,詳情見:http://blog.csdn.net/einarzhang/article/details/6971878

android:hasCode
如果爲false表示程序中沒有任何的java代碼,那麼系統就不會嘗試去加載相關的類,通常當將項目作出libary庫時可以使用此屬性

android:persistent
該應用程序是否應該在任何時候都保持運行狀態,默認爲false。

android:requiredForAllUsers
指定此應用是否需要對所有用戶可用

android:hardwareAccelerated
是否啓用應用加速,在此節點上加入此屬性的話會對整個應用都使用硬件加速,Activity、View也有此屬性設置,查看:http://blog.csdn.net/janronehoo/article/details/7517284

android:vmSafeMode
此屬性用於控制是否使用JIT編譯器,如果你覺得JIT會導致你的程序發生異常你可以關閉他。系統默認是false,也就是默認的就是使用JIT編譯器來提高性能的

android:debuggable
只有此屬性爲true時才允許在手機上進行調試

android:manageSpaceActivity
此屬性相當有用啊,可以控制不讓用戶刪除應用數據,我們可以通過此屬性指定到程序員自己編寫的類去清除指定的數據。指定的Activity也需要註冊見:http://blog.csdn.net/mingli198611/article/details/22671919

android:allowClearUserData
是否允許用戶到應用管理裏手動清除數據,我測試過貌似沒啥效果

android:backupAgent
這個屬性用於定義應用程序備份代理的實現類的名稱,這個類是BackupAgent類的一個子類。它的屬性值應該是完整的Java類的名稱(如,com.example.project.MyBackupAgent)

android:allowBackup
是否允許備份數據,此屬性存在安全風險,如果設爲true,當任意一個usb連接時就可以通過adb獲取備份數據,見:http://www.freebuf.com/articles/terminal/60778.html

android:supportsRtl
此屬性是支持佈局從左到右的佈局,主要是方便開發者去支持阿拉伯語/波斯語等閱讀習慣是從右往左的

android:uiOptions
如果ActionBar的控件不夠就將Actionbar分離開來,將ActionBar放在底部,而不是手機頂部了
android:largeHeap
申請最大內存使用量,但是不是無限的大,他會收到Dalvik的設置限制,至少這個屬性設爲true後比不設置的內存限制要大。
android:neverEncrypt
如果設備的文件系統加密是可以用的,那麼此屬性可以指定是否爲用戶數據進行加密

Activity節點屬性

android:name
Activity名稱
android:label
Activity的ActionBar的title
android:theme
Activity的主題
android:launchMode
Activity啓動模式:standard、singTop、singTask、singInstance,這四種模式,
android:screenOrientation
屏幕方向:landscape橫向、portrait、sensor隨着重力感應而改變方向(此時即使在設置中關閉自動旋轉此屬性依舊有效)、unsensor不隨着重力感應而改變方向,用戶當前首選方向、豎向,其它不常用就不說了。
android:configChanges
指定一個或多個配置變化事件,指定了配置變化之後Activity就會執行onConfigChanged()方法去處理相應的代碼(用戶自己去實現),自從Android 3.2(API 13),在設置Activity的android:configChanges="orientation|keyboardHidden"後,還是一樣 會重新調用各個生命週期的。因爲screen size也開始跟着設備的橫豎切換而改變。所以,在AndroidManifest.xml裏設置的MiniSdkVersion和 TargetSdkVersion屬性大於等於13的情況下,如果你想阻止程序在運行時重新加載Activity,除了設置"orientation", 你還必須設置"ScreenSize"。
android:multiprocess
指定當組件在不同的進程中執行時是否允許有多個實例
android:process
Activity的這個屬性我發現沒什麼卵用啊
android:taskAffinity
關於此屬性的用法,這篇文章說的很詳細:http://blog.csdn.net/chenshijun0101/article/details/9409193
android:allowTaskReparenting
允許Activity從Task棧中轉移
android:finishOnTaskLaunch
是否關閉已打開的activity當用戶重新啓動這個任務的時候
android:finishOnCloseSystemDialogs
當“關閉系統窗口”請求出現時是否銷燬Activity,true爲銷燬
android:clearTaskOnLaunch
當從home界面啓動時是否要將該Activity的task棧清空,意思就是:當我們隊A設置此屬性爲true,然後在A中啓動B,在B顯示的時候按Home鍵,再從桌面點擊應用圖標就會顯示的是A了。
android:noHistory
表示此Activity不在Stack中有任何記錄,比如對A(假設A是MainActivity)設置此屬性爲true,然後在A啓動B,再按返回就回到桌面了。
android:excludeFromRecents
設爲true時,此Activity就不會顯示在最近任務列表中。
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章