`

应用程序Manifest介绍

阅读更多

 

 每一个

 

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

 

 

 

它包含组件(ActivityServiceContent ProviderBroadcast Receiver)的节点,这些组件构成了整个应用程序。并且使用Intent FilterPermission,来决定如何相互影响以及对其他应用程序的影响。

 

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

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

 

application

manifest文件只能包含一个application节点。通过特性设定,指明了应用程序的titleicontheme等元数据。同时,它又可以表现为一个容器,容纳ActivityServiceContent ProviderBroadcast 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标签一样,为应用程序中用到的ServiceService的细节将在第8章描述)类定义一个service标签。service标签同样支持Intents-filter子标签,用来允许后期运行时的绑定。

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

  

 

 

provider

provider标签用来标明应用程序中的Content ProviderContent 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类为运行时测试ActivityService提供了框架。它们提供了钩子,用来监视应用程序以及和系统资源的交互。为程序中定义的测试类创建节点。

 

<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文件中来。

0
0
分享到:
评论

相关推荐

    应用程序使用XP风格,xpstyle.manifest文件

    `xpstyle.manifest`文件是一个XML文档,它包含了应用程序所需的资源和元数据,告诉操作系统如何呈现应用程序的视觉效果。在VC项目中集成`xpstyle.manifest`,可以使应用程序在不支持或禁用视觉样式的老版Windows系统...

    解决提示“由于应用程序配置不正确,应用程序未能启动..”的错误

    标题中的“由于应用程序配置不正确,应用程序未能启动..”是一个常见的错误信息,通常在尝试运行某些依赖于特定组件或库的Windows应用程序时遇到。这个错误可能是由多种原因引起的,包括但不限于缺少必要的运行时库...

    应用程序无法启动,因为应用程序的并行配置不正确 的原因及解决办法

    标题 "应用程序无法启动,因为应用程序的并行配置不正确" 是一个常见的错误提示,通常出现在Windows操作系统中,当用户尝试运行某些依赖于特定版本的.NET Framework或其他组件的应用程序时。这个错误表明应用程序的...

    VC++程序界面美化(xpstyle.Manifest)

    2. **应用程序清单(Application Manifest)**:在Windows Vista及更高版本中,应用程序清单文件(.manifest)用于定义应用程序的行为,如启用或禁用视觉样式、指定所需的运行时环境等。在VC++项目中,通过添加一个...

    [VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”

    [VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题” 今天在准备发布用VS2005写的那个程序时,拷贝到我同事机器上,双击突然出现了“由于应用程序的配置不正确,...

    如何让Win7_下的桌面应用程序以管理员权限运行

    Win7 下桌面应用程序以管理员权限运行的配置方法 ...这个机制使得即使是以管理员权限登录,应用程序默认情况下...通过配置 Application Manifest File,我们可以指定应用程序的权限级别,并让应用程序以管理员权限运行。

    清单文件.manifest

    本文将深入探讨清单文件的功能、作用以及如何在VS2005环境下提升应用程序的管理员权限。 清单文件是XML格式的文档,它包含了应用程序运行所需的各种元数据,例如程序的版本信息、依赖的组件、所需的权限等级等。在...

    Manifest详解

    * `&lt;manifest&gt;`:根元素,包含了所有的应用程序信息。 * `&lt;application&gt;`:定义了应用程序的组件,包括 Activity、Service、ContentProvider 和 BroadcastReceiver。 * `&lt;uses-permission&gt;`:定义了应用程序所需的...

    Manifest生成器

    在Windows操作系统中,Manifest文件是一种XML文档,它提供了应用程序的元数据,尤其是在处理用户界面(UI)视觉样式和权限管理时。在WinXP时代,VB6(Visual Basic 6)开发的应用程序默认不支持Windows XP的 Aero ...

    Java应用程序转化成exe文件的N种方法

    本文将详细介绍将Java应用程序(通常为JAR文件)转化为exe文件的多种方法,从简单的命令行工具到专业软件解决方案,旨在帮助开发者根据自身需求选择最合适的转化策略。 #### 方法一:使用JAR文件直接运行 JAR文件...

    深入浅出 Android Google手持设备应用程序设计 电子书 pdf

    1. **Android系统架构**:书中首先介绍了Android系统的整体架构,包括Linux内核、硬件抽象层、系统库、应用程序框架以及各种应用程序。理解这一层次结构对于开发高效的应用至关重要。 2. **Android应用程序基础**:...

    manifest.json(文档标准格式).rar

    manifest.json 文件是Web应用程序、Chrome扩展程序以及许多现代软件平台中的一个重要组成部分,它定义了应用的基本元数据,有助于浏览器或操作系统理解应用的功能、资源和行为。这个文件通常以JSON(JavaScript ...

    Android中获取应用程序列表信息

    在Android系统中,获取应用程序列表信息是开发过程中常见的需求,比如构建应用管理界面或实现某些特定功能。以下将详细介绍如何通过编程方式实现这四个主要目标: 1. **Android中获取所有应用程序列表信息** 要...

    mt.exe 导入manifest信息的工具

    用来导入manifest信息的工具

    cache manifest本地存储实际应用demo

    应用程序缓存三个优点: 1,离线浏览 - 用户可在应用离线时使用它们 2,速度 - 已缓存资源加载得更快 3,减少服务器负载 - 浏览器将只从...如需启用应用程序缓存,请在文档的 &lt;html&gt; 标签中包含 manifest 属性:

    Android应用程序开发宝典-基于TE&OK6410;.pdf

    通过以上内容的详细介绍,我们可以看出,《Android应用程序开发宝典-基于TE&OK6410》不仅仅是一本简单的技术指南,它还涵盖了从开发环境搭建到应用程序调试的全过程,旨在帮助开发者全面掌握Android应用程序开发的...

    jquery-manifest.js

    然而,随着Web应用程序变得越来越复杂,管理前端资源的依赖关系变得至关重要。这就是jQuery Manifest插件(jquery-manifest.js)发挥作用的地方。本文将深入探讨这个插件的核心概念、工作原理以及实际应用场景,帮助...

    Html5应用程序缓存(Cache manifest)

    HTML5应用程序缓存(Cache Manifest)是一种利用浏览器缓存机制来存储网站资源的规范,允许Web应用在离线状态下仍然可以访问网站的资源。通过该机制,能够优化网站的加载速度,并减少对服务器资源的消耗。下面是...

    manifest_exe

    首先,manifest文件,全称是“应用程序清单”或“应用程序配置文件”,它是XML格式的文件,包含了关于应用程序运行时需要的信息,如版本号、依赖库、所需的权限级别等。在Windows Vista及更高版本中,manifest文件被...

    Android应用程序设计

    在Android应用程序设计中,开发者需要掌握一系列技术和工具来创建功能丰富的移动应用。本主题主要聚焦于Android系统的架构、开发环境的搭建以及应用的基本组件。以下是对这个主题的详细阐述: 一、Android系统架构 ...

Global site tag (gtag.js) - Google Analytics