`
zhiweiofli
  • 浏览: 515388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

(转)android中Manifest.xml文件的介绍

阅读更多

每一个Android应用程序包含一个manifest文件——AndroidManifest .xml,保存在工程的根目录中。该文件定义了应用程序的结构和元数据以及它们的组件。

它包含组件(Activity,Service,Content Provider和Broadcast Receiver)的节点,这些组件构成了整个应用程序。并且使用Intent Filter和Permission,来决定如何相互影响以及对其他应用程序的影响。

它同样提供了特性来指定应用程序的元数据(像icon或者theme等),另外,还提供了高层节点用来安全设定和单元测试。如下描述:

manifest文件由标签作为根,包含了package特性,来设定工程的包名。它通常还包含xmlns:android特性,来导入命名空间,提供一些系统特性。一个典型的manifest节点如下面的XML片段所示:

 

<manifest xmlns:android=http://schemas.android.com/apk/res/android

package=”com.my_domain.my_app”>

[ ... manifest nodes ... ]
</manifest>


 

 

 

标签包含了应用程序组成部分们的节点,它们是应用程序的组件,安全设定和测试类。下面的列表给出了可获得的manifest标签节点的概要以及XML片段的演示:

❑ application

manifest文件只能包含一个application 节点。通过特性设定,指明了应用程序的title,icon,theme等元数据。同时,它又可以表现为一个容器,容纳Activity,Service,Content Provider,Broadcast Receiver的标签。

 

<application android:icon=”@drawable/icon”

android:theme=”@style/my_theme”>

[ ... application nodes ... ]
</application>


 

 

❑ activity

应用程序中显示的Activity都需要定义一个activity标签,通过android:name特性来指定类名。它必须包含启动 Activity和其他一些屏幕或对话框中用到的Activity。尝试启动一个没有在manifest中定义的Activity会引发一个运行时异常。 每一个Activity节点支持intent-filter子标签来指定哪些Intents启动Activity。

 

<activity android:name=”.MyActivity” 
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

和activity标签一样,为应用程序中用到的Service(Service的细节将在第8章描述)类定义一个service标签。service标签同样支持Intents-filter子标签,用来允许后期运行时的绑定。

 

<service android:enabled=”true” android:name=”.MyService”>

 </service>

 

 

❑ provider

provider标签用来标明应用程序中的Content Provider。Content Provider用来管理数据库的存取以及应用程序间的共享(第6章中有练习)。

 

<provider android:permission=”com.paad.MY_PERMISSION”

android:name=”.MyContentProvider”

android:enabled=”true”

android:authorities=”com.paad.myapp.MyContentProvider”>

</provider>


 

❑ receiver

通过添加receiver标签,你可以在还未启动应用程序之前注册一个Broadcast Receiver。如你在第5章中所见,Broadcast Receiver就像一个全局的事件监听者,一旦注册,就会在应用程序广播相应的Intents时执行。通过在manifest中注册Broadcast Receiver,当相应的Intent被广播了,应用程序就会自动地启动,并且注册的Broadcast Receiver会运行。

 

<receiver android:enabled=”true”

android:label=”My Broadcast Receiver”

android:name=”.MyBroadcastReceiver”>

</receiver>

 

 

❑ uses-permission

作为安全模型的一部分,uses-permission标签申明了应用程序正确运作所需要的授权。这些授权,包括在安装期间用户是否有权操作。设备 本身中包含的许多Android服务需要授权,尤其是那些需要花钱或安全相关的服务(例如电话,收发SMS,或使用本地的服务等)。如下所示,第三方程 序,包括你的,在提供共享的程序组件的使用权力之前都可以指定授权。

 

<uses-permission 
android:name=”android.permission.ACCESS_LOCATION”>

</uses-permission>

 

 

❑ permission

在你限制应用程序组件的使用之前,你需要在manifest文件中定义一个授权。使用permission标签创建授权定义。应用程序组件通过增加 android:permission特性来使用它。其他应用程序在使用那些后保护的组件之前,也需要在各自的manifest文件中包含uses- permission。

使用permission标签,你可以指定授权的等级(normal, dangerous, signature, signatureOrSystem),标签以及描述(定义在外部资源的字符串,解释得到授权的风险)等。

 

<permission android:name=”com.paad.DETONATE_DEVICE”

android:protectionLevel=”dangerous”

android:label=”Self Destruct”

android:description=”@string/detonate_description”>

</permission>

 

 

❑ instrumentation

Instrumentation类为运行时测试Activity和Service提供了框架。它们提供了钩子,用来监视应用程序以及和系统资源的交互。为程序中定义的测试类创建节点。

 

<instrumentation android:label=”My Test”

android:name=”.MyTestClass”

android:targetPackage=”com.paad.aPackage”>

</instrumentation>
 

 

关于manifest和每个节点的更加详细描述参见:

http://code.google.com/android/devel/bblocks-manifest.html

ADT的新工程向导在创建新工程的同时自动的创建了manifest文件。当你为应用程序引入新的组件时,才会回到manifest文件中来。

 

原文作者:xirihanlin

原文链接:http://www.cnblogs.com/xirihanlin/archive/2009/07/17/1525625.html

分享到:
评论

相关推荐

    Manifest.xml文件的作用和简单使用

    ### Manifest.xml 文件的作用和简单使用 ...通过以上介绍可以看出,`AndroidManifest.xml` 文件在 Android 开发中扮演着极其重要的角色,它是连接应用与操作系统的关键桥梁,确保了应用的正常运行和良好的用户体验。

    Android 中Manifest.xml文件详解

    Android 中Manifest.xml文件详解 Android 中的Manifest.xml文件是每一个Android项目必备的文件,它存储在项目层次中的最底层,定义了应用程序及其组件的结构和元数据。它包含了组成应用程序的每一个组件(活动、...

    android Manifest.xml详解

    ### Android Manifest.xml ...以上是对 Android `Manifest.xml` 文件中几个重要属性的详细介绍。这些属性的合理配置对于优化应用性能、提升用户体验具有重要作用。开发者应根据实际应用的需求灵活选择和使用这些属性。

    AndroidManifest.xml反编译工具

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它包含了应用程序的基本配置和元数据,如应用的包名、所需权限、启动活动、服务、接收器等。本话题将详细探讨`AndroidManifest.xml`的反编译工具...

    二进制AndroidManifest.xml修改神器~

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它定义了应用程序的基本属性、权限、组件(如Activity、Service、BroadcastReceiver和ContentProvider)以及它们之间的关系。本资源,"二进制...

    Android学习笔记之AndroidManifest.xml文件解析

    `AndroidManifest.xml` 是 Android 应用的核心配置文件,它位于应用项目的根目录下。该文件主要用于描述应用的基本信息及其组件,比如 Activity、Service、BroadcastReceiver 和 ContentProvider 等。此外,`...

    基于Manifest.xml中不要出现重复的uses permission的说明

    在Android应用程序开发中,`Manifest.xml`文件是一个至关重要的组件,它是应用程序的元数据中心,包含了许多关于应用的信息,如所需的权限、应用组件、版本信息等。`uses-permission`标签是`AndroidManifest.xml`中...

    androidMainfest.xml文件分析

    AndroidManifest.xml 是每个 Android 程序中必须的文件,位于整个项目的根目录,描述了 package 中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。AndroidManifest....

    反编译AndroidManifest等xml文件

    在Android应用开发中,XML文件扮演着至关重要的角色。AndroidManifest.xml是应用程序的配置文件,它定义了应用的基本属性、所需的权限、活动(Activity)、服务(Service)以及其他组件。而布局文件(layout.xml)则...

    AndroidManifest.xml信息查看工具

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的文件,它定义了应用程序的基本属性、权限、组件(如活动、服务、广播接收器和内容提供者)以及它们之间的关系。这款名为“AndroidManifest.xml信息查看...

    androidmanifest.xml文件详解

    `AndroidManifest.xml` 是每个 Android 应用项目中的核心配置文件,位于项目的根目录下。该文件主要用于描述应用的基本信息及其内部组件,例如 Activity、Service、BroadcastReceiver 和 ContentProvider 等,并且还...

    EG25-G的so库和apn-config.xml

    最后,`manifest.xml`文件在Android系统中是应用程序或库的清单文件,它描述了组件的元数据,比如应用的名称、版本、权限需求等。在这个上下文中,`manifest.xml`可能是针对EG25-G模块的组件或者库的清单,可能包含...

    AndroidManifest.xml文件详解

    通过上述结构和属性的介绍,我们可以了解到 `AndroidManifest.xml` 在 Android 应用开发中的核心作用。它是连接应用程序组件与 Android 系统的重要桥梁,确保应用程序能够按照预期运行,并且能够充分利用设备资源。...

    AndroidManifest.xml文件详解.ppt

    AndroidManifest.xml可以理解为android的一个注册表文件,在这个文件中,我们可以声明我们自己定义的权限,这个工程被赋予的权限已经所有应用组件的相关配置工作。Manifest, 描述:根节点,用来描述.apk文件,...

    Androidmanifest.xml文件分析

    AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的...

Global site tag (gtag.js) - Google Analytics