AndroidManifest.xml配置文件對於Android應用開發來講是很是重要的基礎知識,經過配置文件能夠大概的瞭解整個項目。java
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.oschina.designapp" android:versionCode="29" android:versionName="1.0.0.4" > </manifest>
<manifest>
AndroidManifest.xml配置文件的根元素,必須包含一個<application>元素而且指定xlmns:android和package屬性。xlmns:android指定了Android的命名空間,默認狀況下是「http://schemas.android.com/apk/res/android」;而package是標準的應用包名,也是一個應用進程的默認名稱,即「net.oschina.designapp」 就是一個標準的Java應用包名,咱們爲了不命名空間的衝突,通常會以應用的域名來做爲包名。固然還有一些其餘經常使用的屬性須要注意一下,好比android:versionCode是給設備程序識別版本用的,必須是一個整數值表明app更新過多少次;而android:versionName則是給用戶查看版本用的,須要具有必定的可讀性,好比「1.0.0」這樣的。android
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />
<uses-sdk>web
指定app所須要的android sdk的版本,一般有個最低版本號,目標版本號。最高版本號可不寫。app
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission> 聲明應用所使用的權限。在android中,必須聲明權限,才能使用相應的功能。學習
<permission>ui
權限聲明標籤,定義了供給<uses-permission>使用的具體權限,一般狀況下咱們不須要爲本身的應用程序聲明某個權限,除非須要給其餘應用程序提供可調用的代碼或者數據,這個時候你才須要使用<permission>標籤。該標籤中提供了android:name權限名標籤,權限圖標android:icon以及權限描述android:description等屬性,另外還能夠和<permission-group>以及<permission-tree>配合使用來構造更有層次的、更有針對性權限系統。spa
<uses-configuration>與<uses-feature>
這兩個標籤都是用於描述應用所須要的硬件和軟件特性,以便防止應用在沒有這些特性的設備上安裝。<uses-configuration>標籤中,好比有些設備帶有D-pad或者Trackball這些特殊硬件,那麼android:reqFiveWayNav屬性就須要設置爲true;而若是有一些設備帶有硬件鍵盤,android:reqHardKeyboard也須要被設置爲true。另外,若是設備須要支持藍牙,咱們可使用<uses-feature android:name="android.hardware.bluetooth" />來支持這個功能。這兩個標籤主要用於支持一些特殊的設備中的應用。code
<supports-screens>
對於一些應用或者遊戲來講,只能支持某些屏幕大小的設備或者在某些設備中的效果比較好,咱們就會使用<supports-screens>標籤來指定支持的屏幕特徵。其中比較重要的屬性包括:屏幕自適應屬性android:resizeable,小屏(android:smallScreens)、中屏(android:normalScreens)、大屏(android:largeScreens)和特大屏(android:xlargeScreens)支持屬性,按屏幕渲染圖像屬性android:anyDensity以及最小屏幕寬度屬性android:requiresSmallestWidthDp等。 orm
<application>
應用配置的根元素,位於<manifest>下層,包含全部與應用有關配置的元素,其屬性能夠做爲子元素的默認屬性,經常使用的屬性包括:應用名android:label,應用圖標android:icon,應用主題android:theme等。 xml
<activity>
Activity活動組件(即界面控制器組件)的聲明標籤,Android應用中的每個Activity都必須在AndroidManifest.xml配置文件中聲明,不然系統將不識別也不執行該Activity。<activity>標籤中經常使用的屬性有:Activity對應類名android:name,對應主題android:theme,加載模式android:launchMode(詳見2.1.3.4節),鍵盤交互模式android:windowSoftInputMode等,其餘的屬性用法你們能夠參考Android SDK文檔學習。另外,<activity>標籤還能夠包含用於消息過濾的<intent-filter>元素,固然還有可用於存儲預約義數據的<meta-data>元素。
<service>
Service服務組件的聲明標籤,用於定義與描述一個具體的Android服務,主要屬性有:Service服務類名android:name,服務圖標android:icon,服務描述android:label以及服務開關android:enabled等。關於Service服務組件的概念和用法請參考2.1.4.2節的內容。
<receiver>
Boardcast Receiver廣播接收器組件的聲明標籤,用於定義與描述一個具體的Android廣播接收器,其主要屬性和<service>標籤有些相似:Boardcast Receiver接收器類名android:name,接收器圖標android:icon,接收器描述android:label以及接收器開關android:enabled等。關於Boardcast Receiver廣播接收器組件的概念和用法請參考2.1.4.3節的內容,