5.1 Manifest配置文件概述
1. 伴隨每一個Android應用程序
2. 定義了應用程序的名稱、版本信息和應用程序所依賴的應用程序組件,以及應用程序所需要的許可權限和其他配置信息
3. 功能:
1)安裝和升級應用程序包
2)向用戶顯示應用程序細節
3)指定應用程序的系統需求
4)運行應用程序的Activity
5)管理應用程序的許可權限
6)配置其他高級應用程序參數,包括服務和廣播或是內容提供器
7)開啓某些應用程序設置。
5.2 application
application包括了Android應用程序的所有Activity、Service、Provider以及Receiver。每當創建上述一個的時候,都需要在application標籤內進行聲明。
<activity android:name="net.xuqiang.app.TestActivity" android:label="@string/test" ></activity>
代碼片段5.2.1 activity聲明
注意:android:name中的值也可以使用作用域來指定,例如,如果在package中聲明瞭net.xuqiang.app,那麼在android:name中可以聲明爲:.TestActivity。(注意前面的點)。
application指定默認的主入口,則需要intent-filter標記的聲明:
<activity
android:name="net.xuqiang.app.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
代碼片段5.2.2 設定該activity爲默認程序入口
注意:必須聲明Activity,如果你想要新建立一個活動頁面,也就是說,你想要一個Activity正常運行,必須要在Manifest配置文件中註冊activity標籤。
對於其他的intent過濾器,它可以應用與Activity、Service和BroadcastReceiver。對於應用了intent的組件,則稱該組件爲開放的。可以接受任何發送至Android系統的、匹配規則的Intent。具體的信息後面會詳細談到,在此超出範圍不做詳談。
5.3 uses-permission
這個標籤所表示的是應用程序的許可權限,譬如開發者所創建的應用程序需要聯網的功能,則在該標籤中需要欠佳聯網的許可。
<uses-permission android:name="android.permission.INTERNET"/>
代碼片段5.3.1 聯網許可權限
注意:新建立Android工程的時候,默認沒有任何的權限。一旦賦予應用程序權限,那麼必須是顯示的添加,而且,在用戶安裝的過程中,會被告知應用程序所需的所有權限。
另:這些許可聲明可以在android.Manifest.permission類中被找到
5.4 uses-sdk
指定SDK的版本,它存在三種屬性。
1. minSdkVersion屬性:最低可支持的APILevel
2. targetSdkVersion屬性:最佳的APILevel
3. maxSdkVersion屬性:最高可支持的APILevel
注意:往往Android Market都是通過這個標籤來刪選應用程序提供給不同需要的用戶。
另:一般不指定maxSdkVersion,因爲在指定它之後,可能會導致一系列的問題。
5.5 uses-configuration
用來指定應用程序所支持的輸入方式。
例如:如果需要觸摸輸入和筆輸入均支持,可以如下配置。
<uses-configuration android:reqHardKeyboard="true"android:reqTouchScreen="finger"/>
<uses-configuration android:reqHardKeyboard="true"android:reqTouchScreen="stylus"/>
代碼片段5.5.1 uses-configuration配置方式
5.6 uses-feature
指定需要的設備特性,因爲並不是所有的設備都支持所有的Android功能。比如多點觸控的問題。
而該標籤則可以用來指定應用程序正常運行所需的Android特性。一旦你的程序需要某些特性支持,則需要爲每一種特性創建一個uses-feature標記。
例如:
<uses-feature android:name="android.hardware.sensor.light"/>
<uses-feature android:name="android.hardware.sensor.proximity"/>
代碼片段5.6.1 uses-feature標籤配置使用