`
yutinglong
  • 浏览: 66459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android应用程序中Manifest.java文件的介绍(转)

阅读更多

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

分享到:
评论

相关推荐

    7个Android应用程序源代码.rar

    在给定的压缩包"7个Android应用程序源代码.rar"中,包含的资源是一个文本文件"a.txt"。虽然没有提供具体的应用程序源代码,但我们可以根据Android应用程序开发的基础知识进行详细的讲解。 Android应用程序是由Java...

    AppCache,Android应用程序磁盘缓存.zip

    Android应用程序磁盘缓存则是Android系统为了提高应用性能和用户体验而引入的一种机制,它将经常使用的数据存储在设备的本地磁盘上,下次应用需要时可以直接从缓存读取,避免了网络延迟或IO操作的开销。 Android...

    安卓反解manifest文件

    在Android应用开发中,`AndroidManifest.xml`文件是至关重要的,它被称为“应用程序的清单”文件,包含了应用程序的所有元数据,如应用名称、版本信息、权限声明、活动(Activity)、服务(Service)、广播接收器...

    Android应用源码闹钟程序.zip

    在本项目"Android应用源码闹钟程序.zip"中,我们拥有一个用于开发Android应用程序的源代码示例,特别关注的是一个闹钟程序。这个源码对于那些希望深入理解Android平台上的闹钟功能以及如何利用Java编程语言实现这些...

    Android应用架构外文翻译.doc

    在Android应用开发中,架构设计是至关重要的,因为它决定了应用程序的可维护性、扩展性和性能。本文将深入探讨Android应用架构的一些核心概念,以Lars Vogel的文章"Android Application Architecture"为蓝本进行解读...

    android应用程序基础

    ### Android应用程序基础 #### 1. Android应用程序框架 Android应用程序框架是构成Android应用程序的基本结构,它定义了应用程序如何与Android操作系统交互以及如何管理和控制应用程序的行为。Android应用开发主要...

    Wrox.Beginning.Android.4.Application.Development.Mar.2012

    Android应用程序的用户界面(UI)主要通过XML布局文件来创建。书中详细介绍了各种布局管理器,如线性布局、相对布局、表格布局等,以及如何使用控件如按钮、文本框、图片视图等。同时,还会讲解主题和样式,以实现...

    Android应用源码SdCard读写文件实例.zip

    这个"Android应用源码SdCard读写文件实例.zip"压缩包提供了一个示例,帮助开发者理解如何在Android应用程序中实现这一功能。 首先,我们需要了解Android对存储权限的管理。在Android 6.0(API级别23)及更高版本,...

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

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

    Android监听应用程序安装和卸载.docx

    在Android开发中,有时我们需要监控应用程序的安装和卸载事件,以便执行相应的操作,如更新数据库、发送通知或执行其他自定义逻辑。以下是如何在Android中实现这一功能的详细步骤: 首先,我们需要创建一个...

    Android应用程序开发 代码与PPT

    【Android应用程序开发】是IT领域中的一个重要分支,主要关注如何在Android操作系统上构建和设计交互式的移动应用。Android系统基于Linux内核,由Google主导并开放源码,为开发者提供了丰富的API和工具来创建功能...

    Android 安卓手机(android)wifi传送文件源码.zip

    该压缩包文件“Android 安卓手机(android)wifi传送文件源码.zip”似乎包含了一个Android应用程序的源代码,这个程序可能用于通过Wi-Fi在安卓设备间无线传输文件。尽管压缩包中的文件名都是.jpg格式,这可能表示...

    android应用程序开发流程要点.pdf

    Android应用程序开发流程涉及多个关键点,包括Java基础知识、开发环境搭建、应用目录结构、新应用创建、四大组件以及界面UI元素的理解、应用程序的工作机制,以及常用功能接口的熟悉。以下是对这些要点的详细说明: ...

    《Android程序设计与应用》PDF

    2. **Java语言基础**:Android应用程序主要使用Java语言编写,因此理解Java语法和面向对象编程概念至关重要。书中会涵盖变量、数据类型、控制结构、类和对象等基本概念。 3. **Android架构和组件**:Android系统由...

    android投票程序Poll代码.rar

    通过分析这个程序的源码,我们可以学习到Android应用开发中的几个关键知识点。 1. **用户界面(UI)设计**:项目中的界面设计使用了Android的布局组件,如`LinearLayout`、`RelativeLayout`或`ConstraintLayout`,...

    Android Email程序源码.rar

    1. **Android 应用程序结构**:首先,你会了解到一个标准的Android应用的基本架构,包括`MainActivity`、`Manifest.xml`文件、各种`Activity`、`Service`、`BroadcastReceiver`等组件的组织方式。 2. **UI设计**:...

    Android反编译工具集合.zip

    它的应用程序通常以APK(Android Package)格式分发,这是一种包含所有必要组件(如.dex字节码文件、资源文件、manifest.xml等)的打包文件。 2. **Java**:Android应用主要使用Java语言编写,因为Android SDK支持...

    android文件读写权限

    在Android应用开发中,文件读写权限是至关重要的一个环节,因为这关乎到应用程序能否正常地存储和访问数据。Android操作系统采用严格的权限管理系统,确保应用只能在其被授权的范围内操作。下面将详细介绍Android中...

    android 系统签名文件(signapk.jar).rar

    在Android系统中,签名文件是确保应用程序安全性和完整性的关键组成部分。`signapk.jar`工具是Android开发过程中用于对APK文件进行签名的工具,它允许开发者或系统集成者为第三方应用添加签名,以使它们能够在设备上...

    Android-PWA-Wrapper,android包装器,用于从支持脱机的渐进式web应用程序创建本地android应用程序.zip

    Android-PWA-Wrapper 是一个开源项目,其主要目标是帮助开发者将支持离线功能的渐进式Web应用程序(PWA)转化为原生的Android应用程序。这个工具为开发者提供了一个便捷的方式,让他们能够利用已有的PWA,通过简单的...

Global site tag (gtag.js) - Google Analytics