chapter5-使用Android Manifest文件定义应用程序-HWW.ppt_第1页
chapter5-使用Android Manifest文件定义应用程序-HWW.ppt_第2页
chapter5-使用Android Manifest文件定义应用程序-HWW.ppt_第3页
chapter5-使用Android Manifest文件定义应用程序-HWW.ppt_第4页
chapter5-使用Android Manifest文件定义应用程序-HWW.ppt_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,5.1配置AndroidManifest文件5.2管理你的应用程序标识5.3强制指定应用程序的系统需求5.4注册Activity和其他应用程序组件5.5使用许可权限5.6探索Manifest文件的其他参数,Android工程使用一个特殊的配置文件来定义应用程序的设置,被称为AndroidManifest文件。它所定义的设置包括:应用程序的名称、版本,应用程序所需的许可权限,以及组成应用程序的各个组件。,使用AndroidManifest文件定义应用程序,Chapter5,5.1.5使用Instrumentation标签页管理测试工具Instrumentation标签页允许开发人员声明用于监控应用程序的一切工具类。,5.1.6手工编辑Manifest文件Android应用程序的Manifest文件是一种特定格式的XML文件。可以通过点击AndroidManifest.xml标签页来手工编辑这个XML文件。如:示例5.1.6,5.1.3使用Application标签页管理应用程序和Activity设置Application标签页包含应用程序范围的设置,包括应用程序标签、图标,以及应用程序组件的信息,如Activity、IntentFilter以及包括服务、IntentFilter、内容提供器在内的设置信息。,5.1.4使用Permission标签页强制指定应用程序权限Permission标签页包含应用程序所需的所有许可权限规则。它还可以用来指定为应用程序创建的自定义许可权限。,5.1.2使用Manifest标签页配置包范围(package-wide)的设置Manifest标签页配置包范围的设置,包括包名、版本信息和支持的AndroidSDK信息。,5.1.1使用Eclipse编辑Manifest文件编辑器将Manifest信息组织成如下几个组:Manifest标签;Application标签;Permissions标签;Instrumentation标签;AndroidManifest.xml标签。,AndroidManifest文件名为AndroidManifest.xml,它必须包含在Android工程的最顶层。Android系统使用文件中的信息来实现以下功能:安装和升级应用程序包;向用户显示应用程序细节,如应用程序名称、描述和图标;指定应用程序的系统需求,包括所支持的AndroidSDK,所需的硬件配置,以及应用程序所依赖的平台特性(如使用多点触控);运行应用程序的Activity;管理应用程序的许可权限;配置其他的高级应用程序参数,包括作为服务、广播接收器,或者内容提供器的配置细节;开启某些应用程序设置,如是否允许调试,是否为应用程序测试使用配置工具等。,Android应用程序的Manifest文件为一种特定格式的XML文件,它必须伴随每一个Android应用程序。这一文件包含标识应用程序身份的重要信息,在其中定义了应用程序的名称、版本信息和应用程序所依赖的应用程序组件,以及应用程序运行所需的许可权限和其他的应用程序配置信息。,5.1配置AndroidManifest文件,5.2.2设置应用程序的名称和图标AndroidManifest文件中的标记可以用来设置应用程序的总体设置,如应用程序图标(android:icon)以及友好名称friendlyname(android:label)。也可以在该标记内设定其他可选的属性,如应用程序描述(android:description),以及是否支持设备调试(android:debuggable=”true”)等。,5.2.1指定应用程序的版本为应用程序指定版本可以帮助减少版本混乱与疑惑,同时也能让产品支持与升级变得容易。标记内定义了两种版本属性:版本名称和版本号。版本名称(android:versionName)是由开发人员定义的、用户易懂的版本属性。当用户管理设备上的应用程序,或从市场上买下载应用程序时,版本名称信息将呈现给用户。开发人员则通过版本信息跟踪应用程序在开发领域内的版本。Android操作系统使用版本号(android:versionCode)来管理应用程序的升级,版本号是一个数值属性。,应用程序的AndroidManifest文件定义了应用程序的属性。包名必须在AndroidManifest文件中的标记内,使用package属性予以定义。,5.2管理你的应用程序标识,5.3.3使用外部库我们可以在AndroidManifest文件中注册任何应用程序链接的共享库。默认地,每一个应用程序被链接到标准Android包(如android:app),并且能够知道自己的包。但是,如果应用程序链接到了其他附加包,那么必须在AndroidManifest文件的标记内使用标记进行注册。例如:这一功能通常用来链接可选的GoogleAPI。,5.3.2.3指定支持的屏幕尺寸Android平台根据屏幕尺寸将屏幕分成了几个类型(小、普通和大),同时也可以由像素密度划分(低、中和高)。应用程序可以针对特定的屏幕尺寸和像素密度提供自定义的资源。标记可以用来指定应用程序所支持的Android屏幕类型。例如,如果应用程序支持QVGA(小)和HVGA(普通)屏幕,不考虑像素密度,那么标记可以配置如下:,标记常用来指定应用程序所支持的OpenGLES版本。默认情况下,所有应用程序使用OpenGLES1.0,但如果你的应用程序需要更新版本的OpenGLES的支持,则需要在AndroidManifest文件中指定这一特性:标记的android:glEsVersion属性可以用来进行这一设置。,5.3.2.2指定需要的设备特性标记可以用来指定应用程序正常运行所需的Android特性。Android操作系统并不强制要求应用程序具有这些设置,但某些发布渠道(publicationchannels)。如AndroidMarket,则需要根据这些信息来筛选应用程序,从而满足特定用户的需求。如果应用程序需要多种特性的支持,那么就要为每一种特性创建一个标记。例如,某个需要光传感器(lightsensor)和接近传感器(proximitysensor)支持的应用程序可以定义两个标记:,5.3.2强制指定应用程序平台需求AndroidManifest文件使用以下几个标记来指定所支持或需要的系统特性和硬件配置。5.3.2.1指定支持的输入方式5.3.2.2指定需要的设备特性5.3.2.3指定支持的屏幕尺寸,5.3.2.1指定支持的输入方式标记可以用来指定应用程序所支持的输入方式。对于five-waynavigation、硬件键盘、键盘类型都有不同的配置属性;还包括导航设备(directionalpad方向杆、trackball轨迹球、滚轮wheel)以及触屏的设置。在配置属性内部没有“或”逻辑。如果应用程序支持多种输入配置,那么可以配置多个标记,每一个标记对应一个完整的配置。比如,应用程序急需要支持物理键盘,又需要支持触屏,那么可以再Manifest文件中分别定义两个独立的标记:,5.3.1.3指定最大SDK版本通常很少指定应用程序的maxSdkVersion属性。这一属性表示应用程序所支持的最高AndroidSDK版本,它限制了应用程序的向上兼容性。设置这一属性的目的之一就是为了限制安装最新版本SDK的用户使用。例如,有可能某个应用程序只有Beta版是免费的,而需要使用最新SDK的用户付费,这样,通过设置免费版应用程序Manifest文件的maxSdkVersion属性,可以实现对他们安装免费版的限制。但是,如果用户对手机设备的SDK进行了在线升级,那么低于SDK升级之后的应用程序将停止工作,并且不会出现,这样会给用户带来不便,甚至可能会影响到他们在市场上对你应用程序的评价。,5.3.1.2指定目标SDK版本我们应该为应用程序指定targetSdkVersion属性,它表示该应用程序所构建和测试的AndroidSDK版本。例如,如果你的应用程序可以向下兼容到Android1.6(APILevel4),但以Android2.2(APILevel8)作为目标平台且在此基础上进行测试,那么就可以将targetSdkVersion属性指定为8。在AndroidManifest文件中的标记内插入下面的代码:通过为应用程序指定目标SDK版本,即使运行着更高版本的平台,Android操作系统也会尝试将应用程序关联到指定版本的SDK上。,5.3.1.1指定最低SDK版本我们应该为应用程序指定minSdkVersion属性,它表示该应用程序所支持的最低AndroidSDK版本。例如,如果你的应用程序需要AndroidSDK1.6中的API,那么你就需要查看SDK的文档,找到这一版本被定义为APILevel4.所以,在AndroidManifest文件中的标记内插入下面代码:如果你希望你的应用程序能够适应尽量多的手机设备,就需要保证在这些非目标平台(所支持的APILevel低于目标SDK的平台)上进行充分的测试。,标记的每一个属性都是一个整数,它表示与某个AndroidSDK相关联的APILevel。表5.1给出了移植应用程序所需的AndroidSDK版本信息。表5.1移植应用程序所需的AndroidSDK版本信息AndroidSDKVersionAPILevel(ValueasInteger)Android1.0SDK1Android1.1SDK2Android1.5SDK(Cupcake)3Android1.6SDK(Donut)4Android2.0SDK(clair)5Android2.0.1SDK(clair)6Android2.1SDK(clair)7Android2.2SDK(FroYo)8AndroidSDK(Gingerbread)9,5.3.1针对特定SDK版本不同的Android设备上运行着不同版本的Android平台。对于一个应用程序,开发人员必须决定它是要满足尽可能大的用户群体而支持尽可能多的平台版本?还是开发领先于潮流的游戏,需要最新的硬件设备支持?开发人员可以再AndroidManifest文件中使用标记来指定应用程序所支持的Android平台版本。这个标记由3个重要的属性组成。minSdkVersion属性:该属性指定应用程序支持的最低APILevel。targetSdkVersion属性:该属性指定应用程序支持的最佳APILevel。maxSdkVersion属性:该属性指定应用程序支持的最高APILevel。,除了配置应用程序标识以外,AndroidManifest文件还可以用来指定应用程序正常运行所需的系统需求。开发人员可以在AndroidManifest文件中配置的应用程序系统需求包括:应用程序支持的AndroidSDK;应用程序使用的Android平台特性;应用程序需要的Android硬件配置;应用程序支持的屏幕尺寸和像素密度;应用程序链接的外部库。,5.3强制指定应用程序的系统需求,5.4.2.1注册服务和广播接收器(BroadcastReceiver)所有的应用程序组件都需要在AndroidManifest文件中定义。Activity,所有的Service以及BroadcastReceiver都必须在AndroidManifest文件中注册。其中Service使用标记注册,BroadcastReceiver使用标记注册。它们均使用Intent过滤器。5.4.2.2注册内容提供器(ContentProvider)如果应用程序充当了一个ContentProvider,那它就应该能够高效的为其他应用程序提供数据共享服务,那么它必须在AndroidManifest文件中使用标记声明这一能力。配置一个ContentProvider包括决定待分享的数据主体和访问它们所需的许可权限。,上面的IntentFilter使用预定义的称为VIEW的行为来定义,这一行为用于查看特定的内容。同时,它是可导航的(BROWSABLE),并且使用了“geoname”作为其规则,这样,如果某个Uri以“geoname:/”开头,那么带有这一IntentFilter的Activity将会运行。,5.4.2配置其他IntentFilterAndroid操作系统使用IntentFilter来解析隐式的Intent,也就是那些没有指定Activity或待运行的组件的Intent。IntentFilter可以应用于Activity、Services和BroadcastReceiver。IntentFilter使用标记定义,它必须包含至少一个标记,也可以包含其他信息,如和代码段。以下代码是IntentFilter的示例,它应该包含在区段中:,5.4.1使用IntentFilter作为应用程序指派主入口点ActivityActivity可以被指派为主入口,方法是在应用程序的AndroidManifest.xml文件中使用标记的MAINactiontype和LAUNCHERcategory属性来配置intentfilter。下面的XML将名为MainMenuActivity的Activity配置为应用程序的主入口点:,还可以在Activity的名称中使用“.”作为前缀来指定Activity类的作用域:或者可以指定完整的类名:注:必须使用标记定义Activity,否则它将不能运行.,应用程序的每一个Activity都需要在AndroidManifest文件中使用标记予以定义。例如,下面的XML定义了一个名为AudioActivity的Activity类:这一Activity必须在com.androidbook.multimedia包中以类的方式予以定义,也就是在AndroidManifest文件的元素中指定的那个包。,5.4注册Activity和其他应用程序组件,许可权限也可以被细分为若干类型,称作permissiongroups,其描述或警告特定Activity需要许可权限的原因。例如,许可权限会应用于一些Activity,它们可能会暴露敏感的用户数据(位置和个人信息等android.permission-group.LOCATIONandandroid.permissiongroup.PERSONAL_INFO)、访问底层硬件android.permissiongroup.HARDWARE_CONTROLS、进行会使用户付费的操作android.permission-group.COST_MONEY。也可以使用标记引入处于Uri级别的细节权限。,许可权限有3种主要的保护级别:normal、dangerous和signature。normal保护级别是一个针对应用程序细节权限的默认级别。dangerous保护级别用于高风险操作,它们将可能对设备造成不利影响。signature保护级别允许任何使用相同证书签名的应用程序使用其组件。,5.5.2注册应用程序授予其他应用程序的许可权限应用程序也可以使用标记定于属于自己的许可权限。许可权限必须使用android.permission属性进行描述,并且授予某个特定的应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论