Android manifest 标签学习

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

Android Manifest 的xml语言描述的开头。?xml 这里是申明文件类型,这申明的是XML文件,同时描述了 版本和支持的编码格式。

xmlns:android 
定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

package 
指定本应用内java主程序包的包名,它也是一个应用进程的默认名称

<application>

一个

AndroidManifest.xml

中必须含有一个

Application

标签,这个标签声明了每一个应用程

序的组件及其属性

(

icon,label,permission

)

一个

AndroidManifest.xml

中必须含有一个

Application

标签,这个标签声明了每一个应用程

序的组件及其属性

(

icon,label,permission

)

一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等),应用配置的根元素,包含所有与应用有关配置的元素,其属性可以作为包含默认属性的子元素,常用的属性包括:应用名android:label,应用图标android:icon,应用主题android:theme等。

子元素:

android:name 
为应用程序所实现的Application子类的全名。当应用程序进程开始时,该类在所有应用程序组件之前被实例化。  
若该类(比方androidMain类)是在声明的package下,则可以直接声明android:name="androidMain",但此类是在package下面的子包的话,就必须声明为全路径或android:name="package名称.子包名成.androidMain"

android:process 
应用程序运行的进程名,它的默认值为<manifest>元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。如果你想两个应用程序共用一个进程的话,你可以设置他们的android:process相同,但前提条件是他们共享一个用户ID及被赋予了相同证书的时候

android:taskAffinity  
 拥有相同的affinity的Activity理论上属于相同的Task,应用程序默认的affinity的名字是<manifest>元素中设定的package名。

android:theme 
是一个资源的风格,它定义了一个默认的主题风格给所有的activity,当然也可以在自己的theme里面去设置它,有点类似style。

<activity>

Activity的声明标签,《?是application的一子元素》,Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。<activity>标签中常用的属性有:Activity对应类名android:name,对应主题android:theme,加载模式android:launchMode,键盘交互模式android:windowSoftInputMode。另外,<activity>标签还可以包含<intent-filter>元素,当然还有可用于存储预定义数据的<meta-data>元素。

<activity-alias>

Activity组件别名的声明标签,简单来说就是Activity的快捷方式,属性android:targetActivity表示的就是其相关的Activity名,当然必须是前面已经声明过的Activity。Activity别名也是一个独立的Activity,可以拥有自己的<intent-filter>和<meta-data>元素。

<intent-filter>

<intent-filter>元素可以放在<activity>、<activity-alias>、<service>和<receiver>元素标签中,来区分可用于处理消息的Activity控制器、Service服务和广播接收器Broadcast Receiver。另外,我们还知道Intent消息还包含有名称、动作、数据、类别等几个重要属性。这点与该标签的写法也有一定的关系,比如<intent-filter>中必须包含有<action>元素,即用于描述具体消息的名称;<category>标签则用于表示能处理消息组件的类别,即该Action所符合的类别;而<data>元素则用于描述消息需要处理的数据格式,我们甚至还可以使用正则表达式来限定数据来源。

<meta-data>

用于存储预定义数据,和<intent-filter>类似,<meta-data>也可以放在<activity>、<activity-alias>、<service>和<receiver>这四个元素标签中。Meta数据一般会以键值对的形式出现,个数没有限制,而这些数据都将被放到一个Bundle对象中,程序中我们则可以使用ActivityInfo、ServiceInfo甚至ApplicationInfo对象的metaData属性中读取。

<service>
Service服务组件的声明标签,用于定义与描述一个具体的Android服务,主要属性有:Service服务类名android:name,服务图标android:icon,服务描述android:label以及服务开关android:enabled等。

<receiver>
Boardcast Receiver广播接收器组件的声明标签,用于定义与描述一个具体的Android广播接收器,其主要属性和<service>标签有些类似:Boardcast Receiver接收器类名android:name,接收器图标android:icon,接收器描述android:label以及接收器开关android:enabled等。

<provider>

<provider>标签除了和其他组件相同的android:name、android:icon和android:label等基础属性之外,还提供了用于支持其功能的特殊属性,如:内容提供者标识名称android:authorities,对指定URI授予权限标识android:grantUriPermission以及具体的读、写权限,即android:readPermission和android:writePermission等。

<permission>和 <uses-permission> 以及<application> 都是同级的,           
<permission> 是定义应用的权限,如:
 android:permission="com.android.testpermission"
<uses-permission>是声明应用需要访问权限,如:
<uses-permission android:name="com.android.testpermission"></uses-permission>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值