AndroidManifest.xml學習
每個應用的根目錄中都必須包含一個 AndroidManifest.xml 檔案(且檔名精確無誤)。清單檔案向 Android 系統提供應用的必要資訊,系統必須具有這些資訊方可執行應用的任何程式碼。
AndroidManifest.xml的主要功能
- 為應用的 Java 軟體包命名。軟體包名稱充當應用的唯一識別符號。
- 描述應用中的元件,釋出其功能。
- 確定託管應用的程序
- 宣告應用必須具備哪些許可權才能訪問 API 中受保護的部分並與其他應用互動。還宣告其他應用與該應用元件互動所需具備的許可權
- 宣告應用所需的最低 Android API 級別
- 列出應用必須連結到的庫
檔案約束
- 元素: 只有 <manifest> 和 <application> 元素是必需的,它們都必須存在並且只能出現一次。其他大部分元素可以出現多次或者根本不出現。但清單檔案中必須至少存在其中某些元素才有用。同一級別元素通常不分先後順序。
- 屬性: 從某種意義上說,所有屬性都是可選的。但是,必須指定某些屬性,元素才可實現其目的。
- 宣告類名: 許多元素對應著Java物件,name必須包含著完整的路徑,如果以“.”開頭,則是在package屬性指定的路徑下面。當啟動元件啟動時,Android系統會建立已命名子類的例項,如果未指定的字類,則會建立基類的例項。
- 多個值: 如果可以指定多個值,則幾乎總是在重複此元素,而不是列出單個元素內的多個值。
- 資源值: 某些屬性的值可以顯示給使用者。
- 字串值: 如果屬性值為字串,則必須使用雙反斜槓 (\\) 轉義字元。
Intent過濾器
Intent 是一系列用於描述所需操作的資訊(Intent 物件),其中包括要執行操作的資料、應執行操作的元件類別以及其他相關說明。Android 系統會查詢合適的元件來響應 intent,根據需要啟動元件的新例項,並將其傳遞到 Intent 物件。
圖示和標籤
對於可以顯示給使用者的小圖示和文字標籤,大量元素具有 icon 和 label 屬性。
許可權
許可權是一種限制,用於限制對部分程式碼或裝置上資料的訪問。施加限制是為了保護可能被誤用以致破壞或損害使用者體驗的關鍵資料和程式碼。每種許可權均由一個唯一的標籤標識。標籤通常指示受限制的操作。
如果應用需要訪問受許可權保護的功能,則必須在清單中使用 <uses-permission> 元素宣告應用需要該許可權。將應用安裝到裝置上之後,安裝程式會通過檢查簽署應用證書的頒發機構並(在某些情況下)詢問使用者,確定是否授予請求的許可權。如果授予許可權,則應用能夠使用受保護的功能。否則,其訪問這些功能的嘗試將會失敗,並且不會向用戶傳送任何通知。
庫
每個應用均連結到預設的 Android 庫,該庫中包括用於開發應用(以及通用類,如 Activity、服務、intent、檢視、按鈕、應用、ContentProvider)的基本軟體包。但是,某些軟體包駐留在自己的庫中。如果應用使用來自其中任一軟體包的程式碼,則必須明確要求其連結到這些軟體包。清單必須包含單獨的 <uses-library> 元素來命名其中每個庫。庫名稱可在軟體包的文件中找到。