ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:27.13KB ,
资源ID:9904187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9904187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AndroidManifestxml文件详解要点.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AndroidManifestxml文件详解要点.docx

1、AndroidManifestxml文件详解要点AndroidManifest.xml文件详解每个应用程序在它的根目录中都必须要有一个AndroidManifest.xml文件。这个清单把应用程序的基本信息提交给Android系统,在应用程序的代码能够运行之前,这个信息系统必须建立。以下是清单文件要做的一些事情:1.用Java包给应用程序命名。这个包名是应用程序的唯一标识;2.描述应用程序的组件-组成应用程序的Activity、Service、Broadcast Receiver以及Content Provider。它要用每个组件的实现类来命名,并向外发布对应组件功能(例如,组件所能处理的In

2、tent消息)。这些声明会让Android系统了解应用程序中组件,以及这些组件被加载的条件。3.判断哪些进程是主应用程序组件。4.声明应用程序所必须的权限,以便能够访问被保护的API,以及能够跟其他应用程序进行交互。5.为了跟应用程序组件进行交互,还声明了其他要求有的权限。6.列出了能够提供应用程序运行时的分析和其他信息的Instrumentation类。只有在开发和测试应用程序时才在清单文件中声明这些类,在应用程序被发布之前,要删除这些类。7.声明应用程序所要求的最小的Android API级别。8.列出应用程序必须链接的外部库。Manifest文件的结构下图中包含了清单文件的一般性结构,并

3、且包含所有能包含的元素。每个元素所带有的全部元素会在它们各自的文档中介绍。 . . . . . . . . . 以下按字母顺序列出了清单文件中的所有元素,这些元素时Android系统法定元素,不能添加自定义的元素或属性。AndroidManifest.xml文件详解(二)文件约定某些约定和规则普遍适用于清单中的所有元素和属性:元素只用和元素时必须的,而且这两个元素在文件中只能出现一次。其他元素则可以多次出现在清单中,或者根本就不出现-但是为了构建一个有意义的清单,必须要在清单中声明某些元素。一个元素所包含的任何声明,包括它所包含的其他元素,所有的值都是通过属性来设置的,而不是用夹在开闭元素之间

4、的字符数据。相同级别的元素通常是没有顺序的。例如,、元素可以是任意顺序的。(元素是个例外,它必须放在它所代表的元素的后面。)属性在正式的含义中,所有的属性都是可选的,但是,为了达成目的,必须要给元素指定一些属性。对于真正的可选属性,会指定发生在特殊情况下的默认值或状态。除了根元素的一些属性之外,其他所有属性的命名都带有android:前缀-例如,android:alwaysRetainTaskState。因为这个前缀是通用的,所以本文档在提到属性名时,通常会忽略这个前缀。声明类名称许多元素都对应着Java对象,包括代表应用程序自己的元素,以及基本的组件-、等。如果要定义子类,那么这些子类几乎总

5、是继承以下组件类:Activity、Service、BroadcastReceiver、ContentProvider。子类是通过name属性来声明的。这个名称必须是完整Java包名。例如,下例演示了Service子类的声明方法: . . . . . . 但是,也可以使用简略的表达方式,用”.”符号做为name属性值的第一个字符。在Android系统解析是会在”.”符号前追加包名(包名是在元素的package属性中声明的)。下例的声明方法与上例的结果相同: . . . . . . 在启动组件时,Android会创建这个命名子类的一个实例对象。如果没有指定子类,那么就会创建一个基类的实例对象。多

6、个值的设定如果要给一个元素指定多个值,那么几乎总是重复使用这个元素,而不是在一个元素中列出多个值。如: . . .资源值的设定有一些属性值是能够显示给用户的-例如,Activity的标题和图标。这些属性值应该被本地化,并因此要设置在资源或主题中。资源值是用下列格式来表示的:package:type:name如果资源与应用在同一个包中,那么package的名称可以被忽略,type是资源的类型-如“string”或“drawable”,name是标识指定资源的名称。例如:来自主题的值是用类似的方式来表示的,但是要以?开始,而不是:?package:type:nameString值的设定当属性值是一

7、个字符串是,符号要用于字符转义-如n表示在此处换行,uxxxx表示xxxx是Unicode字符。AndroidManifest.xml文件详解(三)文件功能以下章节介绍清单文件是如何反映Android的某些功能的。Intent过滤器应用程序的核心组件(Activity、Service、Broadcast Receiver)都是通过Intent对象来激活的。Intent对象绑定了所期望的操作的信息说明-包括要操作的数据、执行操作的组件类别、以及其他相关的指令。Android会定位一个合适的组件来响应Intent对象的请求,如果需要它启动这个组件的一个新的实例,并且把Intent对象传递给这个实例

8、。组件通过Intent过滤器来公布它们所具有的能力-组件所能响应的Intent对象的类型。因此Android系统在启动组件之前,必须了解组件能够处理那些Intent对象,Intent过滤器要在清单文件的元素中指定。明确命名目标组件的Intent对象,会激活那个组件,过滤器并不扮演一个角色,但是如果没有指定目标组件名称的Intent对象要想激活一个组件,那么它必须能够通过这个组件的一个过滤器来传递。图标和标题许多元素有icon和label属性,这两个属性能够声明显示给用户的小图标和文本标签。还有一些属性有description属性,这个属性值用于在屏幕上显示一些比较长的解释性的文本。例如元素就有

9、这三个属性,这样在用户询问是否授予应用程序所请求权限时,就可以用一个icon代表权限、label代表权限名称、description来详细说明权限的内容,并把这些信息展示给用户。在任何情况下,在容器型元素中设置的icon和label都会成为它所包含的所有子元素的默认的icon和label设置。这样,在元素中设置的icon和label属性值就会成为每个应用程序组件的默认icon和label值。针对一个组件的icon和label设置也会有同样的效果-例如,一个元素中设置的icon和label属性值,会成这个中每个元素的默认设置。如果元素设置了一个label属性,但是元素以及它的都没有设置这个属性,

10、那么这个元素的label属性值会作为和元素的label属性的默认值。给Intent过滤器设置的icon和label属性被用于代表一个组件,不管什么时候,过滤器都会用这两个属性来向用户展示组件所能满足的功能。例如,带有android.intent.action.MAIN和android.intent.category.LAUNCHER操作的一个过滤器,会把对应的Activity做应用程序的启动界面来处理,也就是说,它应该作为Android应用程序启动器中一个应用程序来显示,因此这个过滤器中的icon和label的属性设置应该显示在Launcher中。权限permission是一种约束,它限制了对

11、设备上的数据或部分代码的访问。施加权限是为了保护关键的数据和代码不被滥用,防止给用户带来不好的用户体验。每种权限都会有一个唯一的标签来标识。通常,标签指明了要约束的操作。例如:android.permission.CALL_EMERGENCY_NUMBERSandroid.permission.READ_OWNER_DATAandroid.permission.SET_WALLPAPERandroid.permission.DEVICE_POWER一个功能能够通过多个权限来施加保护。如果应用程序需要访问一个被权限保护的功能,那么它必须在清单文件中用元素来声明其要求的权限。然后,在应用程序被安装

12、到设备上时,Android安装器会通过检查应用程序的数字证书,以及询问用户,来确定是否要授予应用程序所请求的权限。如果权限请求被接受,那么应用程序就能够使用被保护的功能,否则,在试图访问那些受保护的功能时就会失败,而且不会给用户任何提示。应用程序也可以有保护它自己的组件(Activity、Service、Broadcast Receiver、Content Provider)。通常可以利用Android系统中定义的权限(在android.Manifest.permission类中列出的权限),也可以利用其它应用程序声明的权限,还可以定义自己的权限。用元素来声明一个新的权限。例如,一个Activ

13、ity可以通过下列方法来保护: . . . . . . 要注意的是,在这个例子中,不仅使用元素声明了一个DEBIT_ACCT权限,而且还用元素申请了一个DEBIT_ACCT权限。为了让应用程序的其他组件能够启动这个被保护的Activity,即使这种保护是应用程序自己施加的,也必须要这样申请。在同一个例子中,如果permission属性设置了另外一种权限(如android:permission.CALL_EMERGENCY_NUMBERS),那么就没有必要再用元素来声明它了。但是依然有必要使用元素来进行必要的申请。元素为一组在代码中定义的权限声明了一个命名空间,并且元素为这个权限组定义了一个标签

14、,这个标签在向用户展示权限时,只会影响到权限的分组。元素没有指定哪个权限属于该组,它只是给出了一个组名。一个权限通过比较元素的permissionGroup属性值来确定其分组。外部类库每个应用程序都会链接默认的Android类库,包括构建程序的基本程序包(如,Activity、Service、Intent、View、Button、Application、ContentProvider等等)。但是,有些包会驻留在它们自己的类库中,如果应用要使用这些包中的代码,就必须明确的要求链接这些类库。对于每个要链接的类库,清单文件中必须包含单独的元素。AndroidManifest.xml文件详解(acti

15、on)语法(SYNATX):包含于(CONTAINED IN):说明(DESCRIPTION):给Intent过滤器添加一个操作。一个元素必须包含一个或多个元素,如果一个也没有包含,那么就不会有Intent对象通过过滤器。属性(ATTRIBUTES):android:name它定义了操作的名称。在Intent类中用ACTION_string常量定义一些标准的操作。要把这些操作跟这个属性关联,就要把前置的ACTION_字符串换成“android.intent.action.”。例如,对于ACTION_MAIN操作,要使用android.intent.action.MAIN来作为属性值,对于ACT

16、ION_WEB_SEARCH操作,要使用android.intent.action.WEB_SEATCH来作为属性值。对于自定义的操作,最好使用包名来作为前缀,以确保唯一性。例如,TRANSMOGRIFY操作可以像下例这样定义:引入版本(INTRODUCED IN):API级别1AndroidManifest.xml文件详解(activity)(一)语法(SYNATX):activityandroid:allowTaskReparenting=true|false android:alwaysRetainTaskState=true|false android:clearTaskOnLaunc

17、h=true|false android:configChanges=mcc,mnc,locale, touchscreen,keyboard,keyboardHidden, navigation,screenLayout,fontScale,uiMode, orientation,screenSize,smallestScreenSize android:enabled=true|false android:excludeFromRecents=true|false android:exported=true|false android:finishOnTaskLaunch=true|fal

18、se android:hardwareAccelerated=true|false android:icon=drawable resource android:label=string resource android:launchMode=multiple|singleTop| singleTask|singleInstance android:multiprocess=true|false android:name=string android:noHistory=true|false android:permission=string android:process=string an

19、droid:screenOrientation=unspecified|user|behind| landscape|portrait| reverseLandscape|reversePortrait| sensorLandscape|sensorPortrait| sensor|fullSensor|nosensor android:stateNotNeeded=true|false android:taskAffinity=string android:theme=resource or theme android:uiOptions=none|splitActionBarWhenNarrow android:windowSoftInputMode=stateUnspecified, stateUnchanged,stateHidden, stateAlwaysHidden,stateVisible,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1