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
相关文章推荐
- Android Studio项目目录结构介绍
- Android项目目录结构介绍(续)——src目录和res目录详细介绍
- 介绍一下Android 项目的目录结构
- Android项目目录结构介绍
- Android Studio项目目录结构介绍
- 步步为营_Android开发课[2]_开发环境及项目的目录结构介绍
- Android项目目录结构介绍
- Android项目目录结构介绍
- Android Studio项目目录结构介绍
- Android Studio项目目录结构介绍
- Android项目目录结构介绍
- Android Studio项目目录结构介绍
- Android Studio项目目录结构介绍
- Android学习系列之(二)项目目录结构基本介绍
- android项目目录结构及常用权限介绍
- Android Studio项目目录结构介绍
- Android Studio项目目录结构介绍
- Android Studio项目目录结构介绍
- Android Studio项目目录结构介绍
- android开发学习笔记(8)Android项目目录结构: