您的位置:首页 > 移动开发 > Android开发

android应用程序Manifest文件简介

2016-04-15 21:22 746 查看
每个Android项目都包含一个Manifest(清单)文件--Android Manifest.xml,它存储在项目层次中的最底层,Manifest可以定义应用程序及其组件和需求的结构和元数据。它包含了组成应用程序的每一个Activity,Service,Content Provider和Broadcast Receiver的节点,并使用Intent Filter(筛选器)和权限来确定这些组件之间以及这些组件和其他应用程序时如何交互的。

Manifest文件还可以指定应用程序的元数据(如他的图标,版本号,或者主题)以及额外的顶层节点,这些节点可以用来制定必须的安全权限和单元测试,以及定义硬件,屏幕和平台支持要求。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.apple.servicetest">


Manifest文件由一个根manifest标签构成,该标签带有一个被设为项目包的package属性,它通常包含一个xmlns:android属性来提供文件内使用的某些系统属性.

应用程序Manifest文件详解:

使用versionCode属性可将当前的应用程序版本定义为一个整数,每次版本迭代的时候,这个数字都会增加,使用versionName可定义一个显示个用户的公共版本号。

下面我们来分析一下manifest标签包含的一些节点(node),他们定义了组成应用程序组件,安全设置,测试类和需求。

uses-sdk 这个节点用于定义想要正确地运行应用程序,设备上必须具备有的最低和最高的SDK版本,以及为应用程序设计的目标SDK,这分别使用通过使用minSDLKVersion,maxSDKVersion和targetSDKVersion属性设置,最低SDK版本指定了包含应用程序中使用的API的最低版本,如果没有指定最低SDK版本,其默认值为1,在这种情况下,如果应用程序视图调用不可用的API,那么就会失败,最高SDK版本用于定义想要支持的最高SDK版本,目标SDK版本属性用于指定你在开发和测试应用程序时使用的平台,设置目标SDK版本会告诉系统不需要为支持该版本而进行任何前向和后项兼容性更改,

minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"


uses-cnfiguration 使用uses-configuration节点可以指定应用程序支持的每个输入机制组合,一般不需要包含这个节点。

reqFiveWayNav 如果要求输入设备能够向上,向下,向左,向右导航,并能够单击当前的选项,那么需要将这个属性指定为true.

reqHardKeyboard 如果应用程序需要硬件键盘,则将此属性制定为true.

user-feature Android 可以在各种各样的硬件平台上运行,可以使用多个uses-feature 节点来指定应用程序需要的每个硬件功能,这样可以避免将应用程序安装到不包含必要的硬件功能的设备上,可以要求支持兼容可选的任意硬件,目前可选的硬件功能包括:

音频:用于要求低延迟音频管道的应用程序。

蓝牙:用于蓝牙传输的应用程序。

摄像头 用于要求有摄像头的应用程序

位置 用于需要基于位置的服务的应用程序。

麦克风 用于需要音频输入的应用程序

电话服务 指定需要一般性的电话服务,或者特定的无线发送方式

触摸屏 指定应用程序需要指定的触摸屏类型

USB 用于需要支持USB host 或者accessory 模式的应用程序。

wi-fi 用于需要支持wifi网络的应用程序。

uses-permission 作为安全模型的一部分,uses-permission标签声明了应用程序需要,在安装程序的时候,你设定的所有权限将会告诉给用户,由他们来决定同意与否,应用程序组件也可以创建权限来限制对共享应用程序组件的访问,为此,可以使用现有的平台权限,也可以在Manifest中定义自己的权限,

instrumentation instrumentation类提供一个测试框架,用来在应用程序运行时测试应用程序组件。

application 一个Manifest只能包含一个application节点,它使用各种属性来制定应用程序的各种元数据(包括标题,图标,和图标)

application 节点还可以作为一个包含了Activity,Service,Content Provider和Broadcast Receiver节点的容器,它包含的这些节点指定了应用程序组件。

activity 应用程序内的每一个activit都要求有一个activity标签。每一个intent-filter子标签来定义用于启动该activity的intent.

<activity android:name=".HomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


service 和activity标签一样,需要为应用程序中使用的每一个service 类添加一个service标签,service标签也支持使用intent-filter子标签允许运行时迟绑定。

provider provider标签用来指定应用程序中的每一个Conetent Provider,用来管理数据库访问和共享。

receiver 通过添加receiver标签,可以注册一个Broadcast Receiver 而不用事先启动应用程序。

uses-library 用于指定该应用程序需要的共享库 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: