AndroidManifest.xml 是 Android 应用的清单文件,它包含了应用程序的关键信息,例如应用程序的包名、活动、权限和服务等。
包配置
最外层的配置 manifest
,这个配置项定义了应用程序的包名,是应用的唯一标识符,示例如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.knowledgedict"
android:versionCode="1"
android:versionName="1.0">
...
</manifest>
versionCode
是一个整数,用于表示应用程序的版本号,用于比较不同版本。
versionName
是一个字符串,表示应用程序的版本名称。
第二层配置
权限声明
使用 <uses-permission>
配置项声明应用需要访问的权限,如网络访问、设备硬件等。
示例如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.knowledgedict"
android:versionCode="1"
android:versionName="1.0">
<!--用于进行网络定位-->
<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.WRITE_EXTERNAL_STORAGE" />
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
...
</manifest>
应用配置项
<application>
配置项在 AndroidManifest.xml 文件中定义了应用程序的全局配置信息,它影响整个应用的行为和特性。
<application android:name=".MyApplication" ...>
...
</application>
application 具体配置项
元数据标签
<meta-data>
标签是 AndroidManifest.xml 文件中用于包含与应用程序、组件或权限相关的元数据(metadata)信息的元素。它允许你在清单文件中嵌入一些额外的数据,以供应用程序在运行时访问和使用。
<meta-data android:name="com.amap.api.v2.apikey" android:value="${AMAP_KEY}">
</meta-data>
活动声明
<activity>
配置项用于声明应用的活动,包括活动的名称、启动方式、图标等。
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
服务声明
<service>
配置项用于声明应用的后台服务,包括服务的名称、启动方式等。
<service android:name=".MyService" />
广播接收器声明
<receiver>
配置项用于声明应用的广播接收器,包括接收器的名称、过滤器(Intent Filter)等。
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>