优秀的编程知识分享平台

网站首页 > 技术文章 正文

Android 清单文件简介(android的清单文件)

nanyue 2024-09-12 15:50:14 技术文章 9 ℃

在 Android 系统启动应用组件之前,系统必须通过读取应用的清单文件 (AndroidManifest.xml) 确认组件存在。您的应用必须在此文件中声明其所有组件,该文件必须位于应用项目目录的根目录中。

除了声明应用的组件外,清单文件还有许多其他作用,如:

  • 确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限。
  • 声明应用使用或需要的硬件和软件功能,如相机、蓝牙服务或多点触摸屏幕。
  • 声明应用需要链接的 API 库(Android 框架 API 除外),如 Google 地图库
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <!-- 声明权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
  
      <!-- 声明相机硬件 -->
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />

    <!-- 声明蓝牙服务 -->
    <uses-feature
        android:name="android.hardware.bluetooth"
        android:required="true" />

    <!-- 声明多点触摸屏幕 -->
    <uses-feature
        android:name="android.hardware.touchscreen.multitouch"
        android:required="true" />

    <!-- 定义应用的组件(Activity、Service等) -->
    <application>

       <uses-library
            android:name="com.google.android.maps"
            android:required="true" />
        
    </application>
</manifest>

声明组件

您必须使用以下元素声明所有应用组件:

  • Activity 的 <activity> 元素。
  • 服务的 <service> 元素。
  • 广播接收器的 <receiver> 元素。
  • 内容提供程序的 <provider> 元素。

如果未在清单文件中声明源代码中包含的 Activity、服务和内容提供程序,则这些组件对系统不可见,因此也永远不会运行。不过,您可以 BroadcastReceiver 对象的形式,在清单中声明或在代码中动态创建广播接收器;以及通过调用 registerReceiver(),在系统中注册广播接收器。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.myapp">

  <application>

    <!-- 声明 Activity -->
    <activity
      android:name=".MainActivity"
      android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <!-- 声明 Service -->
    <service
      android:name=".MyService"
      android:exported="false">

      <!-- 在这里可以包含与该 Service 相关的其他配置 -->
    </service>

    <!-- 声明 BroadcastReceiver -->
    <receiver
      android:name=".MyReceiver"
      android:exported="false">

      <!-- 在这里可以包含与该 BroadcastReceiver 相关的其他配置 -->
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
      </intent-filter>
    </receiver>

    <!-- 声明 ContentProvider -->
    <provider
      android:name=".MyContentProvider"
      android:authorities="com.example.myapp.provider"
      android:exported="false">

      <!-- 在这里可以包含与该 ContentProvider 相关的其他配置 -->
    </provider>


  </application>
</manifest>
最近发表
标签列表