AndroidManifest.xml 最全详解
时间: 2023-09-03 22:06:08 浏览: 175
AndroidManifest.xml是Android应用程序的核心配置文件,它描述了应用程序的基本信息和特性,如应用程序的名称、版本、图标、启动组件、权限等等。在这里,我将为您提供一个AndroidManifest.xml的详解,包括其结构、元素和属性。
## 结构
AndroidManifest.xml文件的结构如下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0">
<!-- Application components (activities, services, etc.) -->
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".MyService"
android:exported="false"
android:enabled="true"/>
<receiver
android:name=".MyReceiver"
android:exported="false"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>
<!-- Permissions -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
</manifest>
```
## 元素和属性
### manifest元素
`<manifest>`元素是AndroidManifest.xml文件的根元素,它包含了以下属性:
- `package`:应用程序的包名,它必须是唯一的。
- `android:versionCode`:应用程序的版本号,用于区分不同版本。
- `android:versionName`:应用程序的版本名,用来显示给用户。
### application元素
`<application>`元素描述了整个应用程序的信息,包括应用程序的图标、名称、主题等。它包含了以下属性:
- `android:allowBackup`:是否允许备份应用程序的数据,默认为true。
- `android:icon`:应用程序的图标。
- `android:label`:应用程序的名称。
- `android:theme`:应用程序的主题。
### activity元素
`<activity>`元素描述了应用程序的一个活动,它包含了以下属性:
- `android:name`:活动的类名。
- `android:label`:活动的名称。
- `android:theme`:活动的主题。
`<activity>`元素还可以包含一个或多个`<intent-filter>`元素,每个`<intent-filter>`元素描述了该活动能够响应的一类Intent。例如,以下代码表示该活动可以响应ACTION_MAIN和CATEGORY_LAUNCHER的Intent,即该活动是应用程序的启动活动。
```xml
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
```
### service元素
`<service>`元素描述了应用程序的一个服务,它包含了以下属性:
- `android:name`:服务的类名。
- `android:exported`:服务是否允许其他应用程序调用,默认为false。
- `android:enabled`:服务是否启用,默认为true。
### receiver元素
`<receiver>`元素描述了应用程序的一个广播接收器,它包含了以下属性:
- `android:name`:广播接收器的类名。
- `android:exported`:广播接收器是否允许其他应用程序发送广播调用,默认为false。
- `android:enabled`:广播接收器是否启用,默认为true。
`<receiver>`元素还可以包含一个或多个`<intent-filter>`元素,每个`<intent-filter>`元素描述了该广播接收器能够响应的一类Intent。例如,以下代码表示该广播接收器可以响应BOOT_COMPLETED的Intent,即在设备启动完成后自动启动该应用程序。
```xml
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
```
### uses-permission元素
`<uses-permission>`元素描述了应用程序需要的权限,它包含了以下属性:
- `android:name`:权限的名称。
例如,以下代码表示该应用程序需要访问联系人和相机的权限。
```xml
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
```
## 总结
AndroidManifest.xml是Android应用程序的核心配置文件,它描述了应用程序的基本信息和特性。本文介绍了AndroidManifest.xml的结构、元素和属性,希望能够帮助您更好地理解和使用AndroidManifest.xml。
阅读全文