眾所周知,應用程序中的每一個UI都是通過Activity類的一個或者多個拓展實現的。在桌面開發環境中,Activity相當於Form,來布局和顯示信息,以及影響用戶的動作。Mainifest可以定義應用程序及其組件和需求的結構和元數據。即它包含了組成應用程序的每一個Activity、Service、Content Provider等等的節點。
Mainifest文件由一個根標簽構成,該標簽帶有一個被設為項目包的package屬性。它通過包含一個xmlns:android屬性來提供文件內使用的某些系統屬性。versionCode屬性定義當前的應用程序版本號,每次版本迭代時都會增加。versionName定義一個顯示給用戶看的公共版本號。它通過使用installLocation屬性,設置其值為preferExternal或者是auto,還可以指定是否允許將應用程序安裝在內部存儲器或者是外部存儲器上,若不指定,則安裝到內部存儲器。
<users-sdk>這個節點定義設備上必須具有的最低和最高的SDK版本,以及為應用程序設計的目標SDK,分別通過minSDKVersion、maxSDKVersion、targetSDKVersion屬性設置。
<users-configuration>指定應用程序支持的每個輸入機制的組合,比如需要特殊輸入控制的游戲等等,可以單獨拿出來研究一下;
<users-feature>使用多個此節點來指定應用程序需要的每個硬件功能。這樣可以避免將應用程序安裝到不包含必要功能的硬件設備上。例如NFC:<users-feature android:name="android.hardware.nfc" />由此可以定義指定的硬件兼容。完整列表
http://developer.android.com/guide/topics/manifest/uses-feature-element.html#featuures-reference
<supports-screens>設定應用程序針對哪些屏幕尺寸進行了設計和測試。當不支持時,系統可能會應用“兼容”模式來顯示應用程序。
<uses-permission>標簽聲明了應用程序需要。在安裝程序的時候,你設定的所有權限都會告訴用戶,由他們來決定同意與否;
<application>一個Mainifest只能包含一個application節點。它使用各種屬性來指定應用程序的各種元數據。還可以作為一個包含Activity、Service等等節點的容器。
<activity>應用程序內的每一個Activity都需要有一個這個標簽。並使用android:name來指定這個Activity類的名稱。每一個activity都可以使用<intent-filter>子標簽來定義用於啟動該Activity的Intent;