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

Android项目目录结构介绍(续)——AndroidManifest.xml文件介绍

2014-12-01 10:14 701 查看

AndroidManifest.xml文件概况

AndroidManifest.xml清单文件是每个Android项目所必需的,它是整个Android应用的全局描述文件。AndroidManifest.xml清单文件说明了该应用的名称、所使用的图标以及包含的组件等。

AndroidManifest.xml清单文件通常可以包含如下信息:

应用程序的包名,该包名将会作为该应用的唯一标识。
应用程序所包含的组件,如Activity、Service、BroadcastReceiver和ContentProvider等。
应用程序兼容的最低版本。
应用程序使用系统所需的权限声明。
其他程序访问该程序所需要的权限声明。

不管是Eclipse的ADT工具还是android.bat命令,它们所创建的Android项目都有一个AndroidManifest.xml文件。随着项目地开发,需要对AndroidManifest.xml文件进行适当地修改。

下面看一份简单的AndroidManifest.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<!-- package 指定该应用的包名,该包名可用于唯一地表示该应用
versionCode 版本代号,面向开发人员的
versionName 版本名称,面向用户的
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.fx.theday"
android:versionCode="1"
android:versionName="1.0" >
<!-- minSdkVersion 程序可以运行的最低系统版本
targetSdkVersion 程序可以运行的目标版本
-->
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<!-- 声明应用运行需要的权限
这里声明了振动和开机启动的权限
-->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<!-- name  Application子类的全限定名称。可以缺省。
icon 整个应用的图标,还是每个组件的默认图标。这个属性值必须被设置为drawable资源的引用。没有默认值。
label 应用标签,并且是应用的每个组件的默认标签。
theme  为应用下的组件定义一个引用自样式资源的主题。
-->
<application
android:name="com.fx.theday.app.BaseApplication"
android:icon="@drawable/ic_logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 定义Android应用的一个组件:Activity
name 组件的名称,为组件的包名和类名组合成的全限定类名
-->
<activity
android:name="com.fx.theday.activity.MainActivity"
android:label="@string/app_name" >
<!-- 一个Intent Filter,用来过滤哪些Intent可以启动该Activity
-->
<intent-filter>
<!-- 指定该Activity是程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载应用时运行该Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>


AndroidManifest.xml文件中配置应用程序权限

1.用<uses-permission.../>标签声明权限

一个Android应用可能需要权限才能调用Android系统的功能;一个Android应用也可能被其他应用调用,因此它也需要声明调用自身所需要的权限。

因此,在AndroidManifest.xml文件中可以声明两种权限:

(1). 声明应用正常工作所需要的权限

通过为<manifest.../>元素添加<uses-permission.../>子元素即可声明该应用正常工作所需要的权限。

例如在<manifest.../>元素里添加如下代码:

<!-- 声明应用需要振动的权限-->
<uses-permission android:name="android.permission.VIBRATE" />




(2) 声明调用该应用所需的权限:

通过为应用的各组件元素,如<activity.../>元素添加android:permission属性即可声明调用该程序所需要的权限。

例如在<activity.../>元素里添加如下代码:

<!-- 声明调用该Activity需要发送短信的权限 -->
<activity
android:permission="android.permission.SEND_SMS">


2. 用<permission.../>标签定义自定义权限

Android系统提供了大量的权限,这些权限都位于Manifest.permission类中,在我们的程序中,如果需要调用系统的某个功能,则可能需要声明对应的权限。在大多数情况下,我们并不需要创建自定义的权限,因为系统权限已经涵盖了大多数情况,如果我们一定要创建自定义的权限,我们可以使用<permission.../>标签。

android:name 必填属性,权限的名称。在需要使用该权限的地方用 android.permission="自定义权限名" 来声明,当我们需要访问该权限保护的内容时,就可以使用<uses-permission android:name="自定义权限名"
/>来申请该权限,就像申请系统权限一样。
android:permissionLevel这个属性是必须声明的,分为普通级别(Normal),危险级别(dangerous),签名级别(signature)和系统/签名级别(signature or system)。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限,应用拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。

android:permissionGroup 非必填属性,用于将权限放到一个组中,对于自定义权限,尽量不要设置此属性。

android:icon非必填属性,权限图标。

android:label 非必填属性,权限标签。

android:description 非必填属性,权限描述。

在AndroidManifest.xml文件中配置Android四大组件

除了Activity之外,Android系统的另外三大组件BroadcastReceiver、ContentProvider和Service都需要在AndroidManifest.xml文件中进行配置,将在介绍这些组件的时候说明如何配置。

转载请指明原文出处:/article/11204183.html

参考文章:

/article/1875861.html

/article/1391937.html

http://developer.android.com/training/articles/security-tips.html#Permissions

http://www.linuxidc.com/Linux/2012-02/53081.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: