【android】5、清单文件

清单文件:
1、在android系统启动应用组件之前,系统必须通过读取应用的AndroidMainfest.xml配置文件确认组件存在。应用必须要此文件中声明所有组件,且该文件必须在项目目录的根目录中。
2、清单文件的其他作用:
①确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限
②确定应用使用的api,声明应用所需的最低api级别
③声明应用使用或需要的硬件、软件功能,如相机、蓝牙服务等
④声明应用需要链接的api库(android框架api除外),如google地图
⑤其他功能

3、清单文件的主要任务是告知系统有关应用组件的信息。如声明activity:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:icon="@drawable/app_icon.png" ... >
        <activity android:name="com.example.project.ExampleActivity"
                  android:label="@string/example_label" ... >
        </activity>
        ...
    </application>
</manifest>

在<application>元素中,android:icon属性指向标识应用的图标所对应的资源。
在<activity>元素中,android:name属性指定Activity子类的完全限定类名,android:label属性指定作用activity的用户可见标签的字符串。

通过如下方式声明所有应用组件:
activity: <activity>元素
服务:<service>
广播接受者<receiver>
内容提供程序<provider>
注:只有广播接收器可以在清单文件中声明或在代码中动态创建(如 BroadcaseReceiver对象)并通过调用registerReceiver()在系统中注册

4、声明组件功能:
可以使用intent来启动activity、服务和广播接收器。可以通过在intent中显式命名目标组件来执行此操作。不过intent的真正强大之处在于隐式Intent概念。隐式intent的作用无非式描述要执行的操作,让系统能够在设备上找到可以执行该操作的组件,并启动该组件,如果有多个组件可以执行intent所描述的操作,则由用户选择使用哪一个组件。
系统通过将接受到intent于设备上其他应用的清单文件中提供的Intent过滤器进行比较来确定可以响应intent的组件。
当在应用的配置文件中声明activity时,可以选择性加入声明activity功能的intent过滤器,以便响应自其他应用intent。

例如,如果您开发的电子邮件应用包含一个用于撰写新电子邮件的 Activity,则可以像下面这样声明一个 Intent 过滤器来响应“send” Intent(以发送新电子邮件):

<manifest ... >
    ...
    <application ... >
        <activity android:name="com.example.project.ComposeEmailActivity">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <data android:type="*/*" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
</manifest>

然后,如果另一个应用创建了一个包含ACTION_SEND 操作的 Intent,并将其传递到 startActivity(),则系统可能会启动您的 Activity,以便用户能够草拟并发送电子邮件。

猜你喜欢

转载自blog.csdn.net/J675620982/article/details/78611585
今日推荐