学习Android之-----------------------AndroidManifest.xml


在Android中,有一个文件叫AndroidManifest.xml,该文件是Android项目开发的全局配置文件,


以.xml结尾。熟悉java web开发的朋友可能都知道,在Web工程中,也有一个全局的配置文件,叫web.xml。


当然AndroidManifest.xml 与 web.xml 是类似的,我们都可以在文件中配置有关项目的相关配置(如初始


化变量设置,Android Activity配置,servlet配置等等)。


总的来说,开发Android应用所有需要配置的都需要在AndroidManifest.xml文件中进行配置,常见的


有:应用程序包名、版本号、组件、权限信息等。



一、AndroidManifest.xml 文件结构


举个例子:


//指明xml文件的版本以及字符编码<?xmlversion="1.0"encoding="utf-8"?>//AndroidManifest.xml文件以标签<manifest></manifest>为根节点<manifest//指明Android的相关命名空间,一般都是http://schemas.android.com/apk/res/android,这样使//得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据xmlns:android="//定义java主应用程序的包名,它也是一个应用进程的默认名称package="com.example.administrator.myapplication">//权限设置,允许用户读取和写入联系人信息<uses-permissionandroid:name="android.permission.READ_CONTACTS"/><uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>//一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件//及其属性(如icon,label,permission等)<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">//AndroidActivity的定义<activityandroid:name=".ContactProvider">//过滤器的定义,类似于javaweb中的filter<intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>


二、AndroidManifest.xml 在Android Studio 中的位置




三、AndroidManifest.xml 常用标签解读



1、分类


全局标签(包名及版本信息)、组件标签(四大组件)、权限标签(申请及定义权限)


2、全局标签


package="com.example.administrator.myapplication"//定义项目主函数包名,类似于java应用程序main方法android:revisionCode="1"//定义该Android应用的版本号android:versionName="@string/hello"//定义该Android应用的版本名称

以上三个属性位于根标签<manifest >中以属性的形式给出。

<uses-sdkandroid:minSdkVersion="19"//定义最低的API版本android:targetSdkVersion="23"//定义目标API版本>


3、组件标签


组件标签有<application></application>打标签包裹着,一个 AndroidManifest.xml 只能包含一个


<application>组件节点,在里边我们可以配置相关的组件信息,如Android 四大组件(Activity、


Service、ContentProvider、Broadcast Receiver)


如:在<application>中设置属性值:


图标:android:icon

标题: android:label

主题样式:android:theme



1、activity 组件由<activity></activity>标签包裹着,并且我们可以指定android:name属性指定


activity的类名,且name的值最好是填写类的全限定类名,即 "包名.类名"的形式。


且启动任何一个没有在 AndroidManifest.xml 文件中定义的 Activity 都会相应的报出异常。


<intent-filter></intent-filter> 相当于该Activity 的一张名片,在现实生活中,我们可能不认识


一种事物或者某个人,但我们可以根据该种事物的相关特征、某人的相关事迹来确定一个人,即<intent-


filter>相当于Activity的过滤器,定义了该Activity的一些特征,以便别的Activity找到它


2、service

3、provider 需要设置name属性和authorities属性

也是同样的做法!