`
Irving_wei
  • 浏览: 130361 次
  • 性别: Icon_minigender_1
  • 来自: Heaven
社区版块
存档分类
最新评论

Android笔记(三):AndroidManifest.xml文件介绍

阅读更多

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

此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位置和时间。每当一个activity(或者操作系统)要执行一个操作,例如:打开网页或联系簿时,它创建出一个intent的对象。它能承载一些信息描述了你想做什么,你想处理什么数据,数据的类型,和一些其他信息。Android比较了intent对象中和每个application所暴露的intent-filter中的信息,来找到最合适的activity来处理调用者所指定的数据和操作。

    除了能声明你程序中的Activities, Content Providers, Services, Intent Receivers,你还能指定permissionsinstrumentation(安全控制和测试)在AndroidManifest.xml文件中。

    这是一个简单的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 class=".HelloActivity">

            <intent-filter>

                <action android:value="android.intent.action.MAIN"/>

                <category android:value="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

        

    </application>

    

</manifest>

值得一提一些常用之处:

· 几乎所有的AndroidManifest.xml(以及许多其他Androidxml的文件)在第一个元素中包含了命名空间的声明xmlns:android="http://schemas.android.com/apk/res/android"。这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

· 大部分manifests包含了单个<application>的元素,它定义了所有的application级别组件和属性,并能在package中使用。

· 任何被用户看作顶层应用程序,并能被程序启动器所用的package,需要包含至少一个Activity组件来支持MAIN操作和LAUNCHER种类,如上述代码中所见。

这里是AndroidManifest.xml文件结构的一个详细的列表,描述了所有能被使用的标记。

manifest

    根节点,描述了package中所有的内容。在它之下能放置:

    uses-permission

        请求你的package正常运作所需赋予的安全许可。见SecurityModel来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    permission

        声明了安全许可来限制哪些程序能你package中的组件和功能。见SecurityModel来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    instrumentation

        声明了用来测试此package或其他package指令组件的代码。见Instrumentation来获得许可的更多的信息。一个manifest能包含零个或更多此元素。

    application

        包含packageapplication级别组件声明的根节点。此元素也可包含application中全局和默认的属性,如标签,icon,主题,必要的权限,等等。一个manifest能包含零个或一个此元素(不允许多余一个)。在它之下能放置零个或更多下列组件声明:

        activity

            Activity是用来与用户交互的主要工具。当用户打开一个应用程序的初始页面时一个activity,大部分被使用到的其他页面也由不同的activity所实现并声明在另外的activity标记中。

            注意:每一个activity必须要一个<activity>标记对应,无论它给外部使用或是只用于自己的package中。如果一个activity没有对应的标记,你将不能运行它。

            另外,为了支持运行时迟查找你的activity,你能包含一个或多个<intent-filter>元素来描述你activity所支持的操作:

            

            intent-filter

                声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签,icon和其它信息。

                action

                    组件支持的Intentaction。

                category

                    组件支持的IntentCategory.

                type

                    组件支持的Intentdata MIME type.

                schema

                    组件支持的Intentdata URI scheme.

                authority

                    组件支持的Intentdata URI authority.

                path

                    组件支持的Intentdata URI path.

        receiver

            IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。利用activity标记,你能选择地包含一个或多个receiver所支持的<intent-filter>元素;

        service

            Service是能在后台运行任意时间的组件。利用activity标记,你能选择地包含一个或多个receiver所支持的<intent-filter>元素;

        provider

            ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。

分享到:
评论

相关推荐

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

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

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

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

    Android 如何实现动态申请权限

    OverView 今天在复习的时候,突然复习到我们的相机...我们需要将所有需要申请的权限添加到App/src/main/AndroidManifest.xml文件中。 但是权限也是分为常规的权限和危险的权限的,对于常规的权限我们的只需要在AndroidM

    Android开发自学笔记(二):工程文件剖析

    这个AndroidManifest.xml文件可谓是整个Android工程的灵魂架构师,它不仅定义了你的Android程序运行时所需的功能特性,同时也定义了该Android程序所需权限以及Android核心组件。 这里简单介绍目前我们所遇到最重要的...

    Android笔记之:onConfigurationChanged详解

    从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidManifest.xml申明Activity的广告SDK都会要求加上注明这么一句属性: 代码如下:android:configChanges=”...

    android-google-firebase-common:基于Android Firebase常见AAR版本的Eclipse库项目

    编译器错误要求您使用AndroidManifest.xml Java应用程序包更改${applicationId} 。 有关更多详细信息,请参见标记文档。 要求: Android 8.1 (API 27) SDK Platform 参考: SVN结帐: 文件&gt;导入...&gt;团队&gt;团队...

    Android远程访问Struts2服务器程序(用到Json解析数据)

    注意,因为Android要访问互联网,所以一定要在AndroidManifest.xml中给其赋予访问互联网的权利。 加上 &lt;uses-permission android:name="android.permission.INTERNET"/&gt; 程序运行后,输入admin【用户名】和密码:...

    Google Android SDK开发范例大全(完整版)

    Android 应用程序是连同一个 AndroidManifest.xml 文件一起部署到设备的。AndroidManifest.xml 包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所...

    android 百度地图 定位示例

    4.调用百度地图的APP 需要在 AndroidManifest.xml 添加 android:name="baidumapsdk.demo.DemoApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name" &gt; 这里需要添加key,创建...

    Java源码管理-citrix-mam-sdk-sample-browser-app-android-java:此存储库包含使用MAMSDK进

    请注意,默认情况下,它仅允许HTTPS连接,如果您想连接到HTTP网页,则需要在AndroidManifest.xml文件中修改android:usesCleartextTraffic="false" 。 文献资料 有关如何使用此示例应用程序以及如何对其进行编译的...

    xml2axml:将xml编码为axml并将axml解码为xml-轻松破解Android清单

    java -jar xml2axml e [AndroidManifest-readable-in.xml] [AndroidManifest-bin-out.xml] 解码 java -jar xml2axml d [AndroidManifest-bin-in.xml] [AndroidManifest-readable-out.xml] 笔记该项目基于

    Android学习笔记之ActionBar Item用法分析

    本文实例讲述了Android ...1、在Androidmanifest.xml里面加上 &lt;uses Android:minSdkVersion=11/&gt; 或者 &lt;uses android:targetSdkVersion=11&gt; 要使版本号在3.0以上,这样系统就自动把Menu放在ActionBar上面。

    Android开发自学笔记(六):声明权限和Activity

    Android Project的灵魂大师AndroidManifest.xml终于要登场了,我们可以亲切的称呼它为AM文件,认识和学会配置AM文件则是是学习Android非常重要的基础知识。 AM文件定义了该Android App的需要请求的权限,需要生命的...

    APKTool批处理版l

    那本文就是一篇介绍在windows环境下使用Apktool的笔记。 安装 1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧 2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_...

    Android移动开发应用笔记

    Android系统中有著名的4大组件:Activity、Service、BroadcastReceiver、ContentProvider,4大组件在使用时均要在清单文件AndroidManifest.xml中注册 Activity负责加载View组件并且与用户交互,所有Activity组件均...

    Android微信第三方登录(个人笔记)

    今天在写微信登录,花了半天时间搞定、然后写下自己的笔记,希望帮助更多的人。欢迎各位指教。 微信授权登录,官方说的... AndroidManifest.xml 权限 &lt;!-- 微信权限--&gt; &lt;uses-permission android:name=and

Global site tag (gtag.js) - Google Analytics