AndroidManifest檔案標籤總結
AndroidManifest.xml檔案與build.gradle在Android專案中都是兩大靈魂人物,在專案中的地位舉足輕重。熟練掌握AndroidManifest檔案的配置,就能在整個專案的開發中有更強大的把控力。
-
manifest標籤:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.dev">
package 宣告包名;
xmlns 名稱空間的宣告,使得各種Android系統級的屬效能讓我們使用。
installLocation 程式的安裝位置,
有三個值可以選擇:internalOnly、auto、preferExternal
分別為只能裝內建記憶體中、可相互轉移,優先裝入SD卡中。

uses-configuration標籤
這個屬性用於指定該應用程式所需要的硬體和軟體功能。
<uses-configuration android:reqFiveWayNav=["true" | "false"] android:reqHardKeyboard=["true" | "false"] android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"] android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"] android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
supports-screens標籤
宣告應用支援的解析度型別
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
resizeable 是否可以調整尺寸,增加螢幕適配的相容性
anyDensity 是否包含了能夠適用於任何螢幕密度的資源。
uses-permission標籤
應用所需許可權的宣告,常用許可權宣告
<!-- 用於進行網路定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用於訪問GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 獲取運營商資訊,用於支援提供運營商資訊相關的介面 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用於訪問wifi網路資訊,wifi資訊會用於進行網路定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 這個許可權用於獲取wifi的獲取許可權,wifi資訊會用來進行網路定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用於訪問網路,網路定位需要上網 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 用於讀取手機當前的狀態 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 寫入擴充套件儲存,向擴充套件卡寫入資料,用於寫入快取定位資料 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 撥打電話 --> <uses-permission android:name="android.permission.CALL_PHONE" /> <!-- 呼叫相機 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 呼叫閃光燈 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <!-- 震動器 --> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 讀取通訊錄 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
application標籤
設定應用整體屬性
name 設定Application
label 設定應用名
icon 啟動圖示
theme 應用統一theme
largeHeap 請求開闢更大的應用記憶體
hardwareAccelerated 全域性開啟硬體加速。不推薦在application中開啟,非要開可以在單獨使用的activity標籤中開,避免過大記憶體開銷。
debuggable 指定應用程式是否能夠被除錯
process 這個屬性用於定義一個程序名稱
activity標籤
screenOrientation 設定當前Activity固定螢幕方向
configChanges 配置的內容變化是否重啟生命週期
launchMode 設定當前Activity啟動模式
exported 設定該activity是否可以被其他應用啟動,設定為true也可以直接啟動就進入該activity
windowSoftInputMode 共9個屬性,可以分別為軟鍵盤設定始終隱藏,始終顯示,大小調整等型別
taskAffinity 指定在任務棧的標識
hardwareAccelerated 開啟硬體加速
meta-data標籤
這個元素用name-value對的格式給其父元件提供任意可選的資料。
比如各種第三方sdk設定key使用的方式。
<!-- 友盟Key配置 --> <meta-data android:name="UMENG_APPKEY" android:value="" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> <!-- 高德地圖 --> <meta-data android:name="com.amap.api.v2.apikey" android:value="" />