每个安卓应用项目必须在根目录中加入 AndroidManifest.xml
文件,它到底是什么,到底有什么作用?
作用:
一个清单文件,向 Android 构建工具、Android 操作系统和 Google Play(应用市场) 描述应用的基本信息。
- 声明应用的软件包名称,应用的ID。
构建项目时,构建工具会使用软件包名称代码实体的位置;
编译完成后,package 属性还可表示应用的通用唯一应用 ID
,用作系统和 Google Play 上的唯一应用标识符。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >
...
</manifest>
- 声明应用的组件( Activity、Service、BroadcastReceiver和内ContentProvider)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >
<application
android:name=".MyApplication">
<activity android:name=".MyActivity" />
<service android:name=".MyService" />
<receiver android:name=".MyReceiver" />
<provider android:name=".MPprovider" />
</application>
</manifest>
- 声明权限,包括应用为访问系统或其他应用的受保护部分所需的权限,以及其他应用想要访问此应用其必须拥有的权限。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >
// 该应用所需要/申请的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
// 访问该应用所需要的权限
<permission android:name="android.permission.MINE"/>
</manifest>
- 声明应用需要的硬件和软件功能。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true" />
</manifest>
- 声明设备兼容性(Android版本要求)。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" >
<uses-sdk
android:maxSdkVersion="29"
android:minSdkVersion="21"
android:targetSdkVersion="28" />
</manifest>
- 声明一些其他资源或属性,如应用/组件的主题,图标和标签等;组件的一些特性和功能等。
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="com.example.test">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
网友评论