`
ishelf
  • 浏览: 106369 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

(转)android manifest.xml中元素含义

阅读更多

转自http://blog.csdn.net/wbw1985/archive/2009/11/24/4862319.aspx





  是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
  --------------------------------------------------------------------------------------
  android:alwaysRetainTaskState
  是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态
  --------------------------------------------------------------------------------------
  android:clearTaskOnLanunch
比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Q
--------------------------------------------------------------------------------------
android:configChanges
当配置list发生修改时, 是否调用 onConfigurationChanged() 方法  比如 "locale|navigation|orientation".
--------------------------------------------------------------------------------------

activity 是否可以被实例化,
--------------------------------------------------------------------------------------

是否可被显示在最近打开的activity列表里
--------------------------------------------------------------------------------------
android:exported
是否允许activity被其它程序调用
--------------------------------------------------------------------------------------
android:finishOnTaskLaunch
是否关闭已打开的activity当用户重新启动这个任务的时候
--------------------------------------------------------------------------------------
android.icon
--------------------------------------------------------------------------------------
android:label
--------------------------------------------------------------------------------------
android:launchMode
activity启动方式,  "standard" "singleTop"  "singleTask" "singleInstance"  其中前两个为一组, 后两个为一组
--------------------------------------------------------------------------------------
android:multiprocess
允许多进程
--------------------------------------------------------------------------------------
android:name

--------------------------------------------------------------------------------------
android:onHistory
是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的
--------------------------------------------------------------------------------------
android:permission
--------------------------------------------------------------------------------------
android:process
一个activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。中的元素process属性能够为所有组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。  如果这个属性被分配的名字以:开头,当这个activity运行时, 一个新的专属于这个程序的进程将会被创建。 如果这个进程名以小写字母开头,这个activity将会运行在全局的进程中,被它的许可所提供。
--------------------------------------------------------------------------------------

activity显示的模式,  "unspecified" 默认值  "landscape" 风景画模式,宽度比高度大一些  "portrait" 肖像模式, 高度比宽度大。  "user" 用户的设置  "behind"  "sensor" "nosensor"

android:stateNotNeeded

--------------------------------------------------------------------------------------

activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系

android:theme
activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序, 参见元素的theme属性
--------------------------------------------------------------------------------------

activity主窗口与软键盘的交互模式, 自从API level 3 被引入

以下转自http://www.chinaup.org/docs/devel/bblocks-manifest.html

AndroidManifest.xml 文件

AndroidManifest.xml是每一个应用都需要的文件, 位于应用根目录下,它 描述了程序包的全局变量, 包括暴露的应用组件(activities, services等等)和为每个组件的实现类, 什么样的数据可以操作, 以及在什么地方运行。

这个文件的一个重要方面就是是其中的intent过滤器(intent filters)。 这些过滤器描述了何时何种情况下让活动(activity) 启动。 当一个activity(或是操作系统)想要执行一个动作, 例如打开一个Web页或是打开一个联系人选取屏幕,它将会创建一个Intent对象。 该对象包含了很多几个描述符(descriptors), 描述了你想做什么操作, 你想处理什么数据, 数据的类型, 以及一些其他的信息。 Android将Intent对象中的信息与所有应用暴露的intent过滤器比较, 找到一个最能恰当处理请求者要求的数据和动作(action)的activity。关于intents的更多信息在Intent页可以找到。

除了声明应用的活动(Activities),内容管理器( Content Providers),服务( Services), 和 Intent 接收器(Intent Receivers), 你也可以在AndroidManifest.xml文件中指定权限和instrumentation(安全控制和测试). 请查看AndroidManifest了解这个标签和他们的属性。

如下是一个简单的AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.my_domain.app.helloactivity">
        
    <application android:label="@string/app_name">
    
        <activity android:name=".HelloActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        
    </application>
    
</manifest>
 需要注意的一些通用事项:

  • 几乎所有的AndroidManifest.xml 文件(同其他的Android文件一样)都会在其第一个元素(element)中包含一个命名空间的声明xmlns:android="http://schemas.android.com/apk/res/android" 。 该声明使标准Android属性在该文件中可用,这些属性为文件中的xml元素提供了大部分数据。.

  • 大多数的manifests包含一个<application>元素, 该元素定了这个程序包内所有应用层面上可用的组件和属性。

  • 所有需要可以从应用程序启动器(program launcher)中呈现给用户的顶层应用都至少需要包括一个活动(Activity)组件,它用来支持MAIN action 和显示在LAUNCHER 目录中。

下面列出了AndroidManifest.xml 这个文件详细的结构大纲, 描述了所有可用标签。

<manifest>
文件根节点。 描述了程序包的所有内容。 在其节点下面内可以放置:
<uses-permission>
请求一个安全授权, 你的程序包必须被授予该权限才能正确的操作。参见看安全模块( Security Model)文档以了解有关授权的更多信息。 一个manifest可以包含零个或多个这样的节点。
<permission>
声明一个安全授权,它 用来限制哪些应用可以访问你的(或别的)程序包内的组件和特有功能(feature)。参见看安全模块( Security Model)文档以了解有关授权的更多信息。一个manifest可以包含零个或多个这样的节点。
<instrumentation>
声明一个instrumentation 组件可用于测试这一个或别的包的代码。更详细内容参见Instrumentation 。一个manifest可以包含零个或多个这样的节点。
<application>
声明程序包内应用级别组件的根节点。 该节点能够描述应用程序的全局(和/或)默认属性, 例如标签, 图标, 主题, 需要的权限, 等等。 一个manifest可以包含零个或一个这样的节点(多个application 节点是不允许的)。 在该节点下, 可以包含零个或多个以下每个组件的声明:
<activity>
活动(Activity) 是应用与用户交互的最主要机制。当一个应用运行的时候, 用户看到的第一个屏幕就是activity。 此外, 用户所使用的其他绝大多数屏幕也是由独立的活动实现的,它们由额外活动tag声明。

注意: 无论活动是外部可见还是仅在程序包内使用,在manifest中每一个活动必须在定义一个 <activity>标签。如果活动在manifest 中没有匹配的标签,那么你无法启动它。</activity>

此外,为了支持运行时活动查找,你可以包含一个或多个 <intent-filter>元素来描述该活动支持的动作(actions)。</intent-filter>

<intent-filter>
以一个IntentFilter的形式声明组件所支持的特定的一组 Intent 值。除了可以在此元素下指定的各种值,也可以在此对属性(atttibutes)进行赋值以支持唯一的标签(label),图标(icon),和所描述动作(action)的其它信息。
<action>
该组件支持的 Intent action
<category>
该组件支持的Intent目录(Intent category)。
<data>
该组件支持的 Intent data MIME typeIntent data URI schemeIntent data URI authority, 或 Intent data URI path

你也可把一个或多个meta-data 与你的活动(activity)关联,其它客户端(clients)可以取得这些meta-dada以获得关于这个活动的任意信息。

<meta-data>
向活动(activity)添加新的元数据(meta data),客户端可以通过ComponentInfo.metaData获取该数据。
<receiver>
一个BroadcastReceiver 可以使应用接收数据变化和行为发生的通知,即使这个应用没有在运行也同样可以。同activity 标签一样, 你可以选择包含一个或多个该receiver支持<intent-filter>元素或<meta-data>值。更多信息参见活动(activity)的<a href="http://www.chinaup.org/docs/devel/bblocks-manifest.html#intent-filter" style="color: rgb(0, 0, 204); outline-style: none; ">&lt;intent-filter&gt;</a> 和 <a href="http://www.chinaup.org/docs/devel/bblocks-manifest.html#meta-data" style="color: rgb(0, 0, 204); outline-style: none; ">&lt;meta-data&gt;</a>描述。</meta-data></intent-filter>
<service>
服务(Service )是一个在后台可以运行任意长时间的组件。 同activity 标签一样, 你可以选择包含一个或多个该服务支持<intent-filter>元素或<meta-data>值。更多信息参见活动(activity)的<a href="http://www.chinaup.org/docs/devel/bblocks-manifest.html#intent-filter" style="color: rgb(0, 0, 204); outline-style: none; ">&lt;intent-filter&gt;</a>和 <a href="http://www.chinaup.org/docs/devel/bblocks-manifest.html#meta-data" style="color: rgb(0, 0, 204); outline-style: none; ">&lt;meta-data&gt;</a> 描述。</meta-data></intent-filter>
<provider>
组件管理器(ContentProvider)用来管理持久数据和向其它应用发布数据的组件。你也可以按照活动的(activity’s)<meta-data>中描述附加一个或多 <a href="http://www.chinaup.org/docs/devel/bblocks-manifest.html#meta-data" style="color: rgb(0, 0, 204); outline-style: none; ">&lt;meta-data&gt;</a> 值。</meta-data>
分享到:
评论

相关推荐

    android Manifest.xml详解

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

    二进制AndroidManifest.xml修改神器~

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

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

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

    AndroidManifest.xml解析

    在Android应用开发中,AndroidManifest.xml文件扮演着至关重要的角色。它是每个Android程序的核心配置文件,位于应用程序的根目录下,用于定义应用程序的全局特性,包括应用程序组件、权限控制、测试设置等关键信息...

    AndroidManifest.xml的详细参考说明

    AndroidManifest.xml是每个Android应用程序的核心配置文件,它包含应用程序运行所需的重要信息,如应用的元数据、组件声明、权限请求等。以下是对AndroidManifest.xml的详细参考说明。 一、关于AndroidManifest.xml...

    纯java读取Apk信息,贡献全源码,可读取程序.apk中的AndroidManifest.xml所有信息

    在Android开发中,有时我们需要获取APK文件的详细信息,如应用名、版本号、权限等,这通常涉及对APK文件内部的AndroidManifest.xml文件进行解析。本篇将详细介绍如何仅使用Java代码,不依赖任何外部工具(如aapt)来...

    android-xml.rar_android

    在Android开发中,XML(eXtensible Markup Language)是一种重要的数据存储和交换格式,尤其在应用程序的资源管理和布局设计方面扮演着核心角色。本文将深入探讨XML在Android中的使用,包括XML解析方法和它在Android...

    AndroidManifest.xml文件剖析.doc

    首先,AndroidManifest.xml文件的根元素是`&lt;manifest&gt;`,在此之下,包含了以下几个主要部分: 1. **包名(package)**:如`package="cn.android123.demo"`,这是应用的唯一标识,用于区分不同的应用。 2. **版本...

    Manifest详解

    AndroidManifest.xml 是 Android 应用程序中最重要的文件之一,它位于项目的根目录,描述了应用程序中的组件、权限、Intent-filter 和其他配置信息。下面是对 AndroidManifest.xml 的详细解释: 一、...

    AndroidManifest.xml+G+÷

    大多数Android的XML文件,包括AndroidManifest.xml,都会包含一个`xmlns:android`声明,定义了Android特有的属性,使得我们可以使用这些属性来设置元素的特性。 9. **文件结构**: - `manifest`: 根节点,包含...

    android的XML使用

    在Android开发中,XML(eXtensible Markup Language)是一种重要的数据格式,广泛用于界面布局、资源文件和数据存储等方面。本篇文章将深入探讨Android中XML的使用,涵盖其在不同场景下的应用。 首先,XML在Android...

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

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

    android 5.认识Android Application

    在XML布局文件中,我们可以使用`@drawable/`前缀来引用资源,如`android:src="@drawable/ok"`,并使用`layout_width`和`layout_height`属性设置组件的大小。 在代码中,通过引用R.java中的资源ID,可以指定Activity...

    android手把手教你开发launcher.pdf

    Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget 和其他桌面元素。下面我们将一步步指导您如何开发一个自己的 Launcher,並使其替代系统的默认 Launcher。 了解 Android ...

    AndroidManifest.xml配置文件解析

    在Android应用开发中,`AndroidManifest.xml`是一个至关重要的配置文件,它定义了应用程序的基本属性、所需的权限、组件以及它们如何与其他应用交互。这个文件是每个Android应用的基础,且必须包含在项目的根目录下...

    Android使用XML自定义软键盘效果

    用户可以通过设置来选择或切换输入法,开发者需要在Manifest.xml中声明`InputMethodService`,并在服务类中注册对应的XML布局。 6. **自定义键盘的交互** 除了基本的按键,还可以添加功能键如删除、空格、回车等...

    Java读取android apk信息

    在Android开发中,有时我们需要...- 应用元数据提取:解析XML元素以获取应用名、版本信息、依赖库等。 以上就是纯Java读取Android APK信息的基本原理和技术细节,开发者可以根据这些知识实现自己的APK信息读取工具。

Global site tag (gtag.js) - Google Analytics