標籤:
每個android項目都包含一個AndroidMainfest.xml檔案,它包含了組成應用程式的每一個Acitivity、Service、Content Provider和Broadcast Receiver的節點,並使用Intent Filter 和許可權來確定這些組件之間以及這些組件和其他應用程式是如何互動的。
1.根節點manifest:
package屬性:當前應用的包名
versionCode屬性:將當前應用程式的版本定義為一個整數,每次版本迭代時,該數字都會增加
versionName屬性:定義一個顯示給使用者的公用版本號碼
installLocation屬性:指定是否允許(或者首選)將應用程式安裝到外部儲存空間(通常為SD卡)。其值可以為:preferExternal或auto,使用前者,只要有可能就會把應用程式安裝在外部儲存空間上,後者則由系統決定。若不指定installLocation屬性,則將當前應用安裝到內部儲存空間,而不能將其移動到外部儲存空間。
如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.csc.mydemo"
android:versionCode="1"
android:versionName="1.0 Beta"
android:installLocation=”preferExternal”>
</manifest>
2.manifest的常見子節點:
1)uses-sdk:
如:<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="14" />
minSdkVersion屬性:指定應用要求的最低SDK版本,未指定,則預設為1
maxSdkVersion屬性:最高SDK版本,一般最好不要指定,除非知道應用在更新版本的平台上肯定不能正確運行。
targetSdkVersion屬性:用於指定開發與測試中所使用的平台版本。即使應用程式沒有使用任何新的API,也應當將目標SDK設為最新的平台版本,這被認為是一種最佳實務。
2)uses-permission:
配置應用程式所需要的許可權,在安裝應用程式時,設定的所有許可權將會告訴給使用者,由他們來決定是否同意安裝使用。
如:<uses-permission android:name="android.permission.INTERNET"/>需要網路許可權
3)instrumentation:
單元測試時,用到
如:<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.csc.demo" />指定要測試的包名
4)application:
一個mainfest檔案只能有一個application節點,它的屬性和子節點都比較常用
3.application節點:
如:<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
icon屬性:指定當前應用程式的表徵圖
label屬性:指定當前應用程式的標題
1)activity子節點:
<activity
android:name=".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>
應用程式中用到的每一個Activity都要求有一個Activity子節點,啟動一個沒有在Manifest中定義的Activity時都會拋出一個運行時異常。每個Activity節點都允許使用intent-filter子節點來定義用於啟動該Activity的Intent。
name屬性:指定Activity類的名字
2)service子節點:應用程式使用的service
3)provider子節點:應用程式使用的Content Provider
4)receiver子節點:引用程式使用的Broadcast Receiver
5)uses-library子節點:用於指定應用程式需要的共用庫
android菜鳥學習筆記3----關於AndroidMainfest.xml