很多天翼空间社区的网友对于Android全局配置文件AndroidManifest.xml不是很熟悉,今天我们就一起看下它完整的结构以及每个节点的作用。在我们日常的开发中都少不了下面的配置,每创建一个Activity、Service都离不开这个全局配置文件,深入的了解可以简化程序代码以及提高程序的维护性。

在最外层包含了包名如 package="cn.android123.demo" 、软件的版本号    android:versionCode="1" 以及   android:versionName="1.0" ,里面一层的application分支中将可能包含Android程序的四种对象 Activity、Service、Content Provider以及Receiver。我们每添加上面四个类型中的任一新对象都需要在androidmanifest.xml文件中添加相应节点。

其中Activity的属性常用的可能为android:name和android:label但我们需要了解所有的属性以帮助解决复杂的问题,完整的如下:

android:allowTaskReparenting=["true" | "false"]

android:alwaysRetainTaskState=["true" | "false"]

android:clearTaskOnLaunch=["true"" | "false"]

android:configChanges=[one or more of: "mcc" "mnc" "locale"

"touchscreen" "keyboard" "keyboardHidden"

"navigation" "orientation" "fontScale"]

android:enabled=["true" | "false"]

android:excludeFromRecents=["true" | "false"]

android:exported=["true" | "false"]

android:finishOnTaskLaunch=["true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:launchMode=["multiple" | "singleTop" |

"singleTask" | "singleInstance"]

android:multiprocess=["true" | "false"]

android:name="string"

android:noHistory=["true" | "false"]

android:permission="string"

android:process="string"

android:screenOrientation=["unspecified" | "user" | "behind" |

"landscape" | "portrait" |

"sensor" | "nonsensor"]

android:stateNotNeeded=["true" | "false"]

android:taskAffinity="string"

android:theme="resource or theme"

android:windowSoftInputMode=[one or more of: "stateUnspecified"

"stateUnchanged" "stateHidden"

"stateAlwaysHidden" "stateVisible"

"stateAlwaysVisible" "adjustUnspecified"

"adjustResize" "adjustPan"] >

有关AndroidManifest.xml文件的application分支我们有必要了解一些常见的属性,这里可以看到一些我们实用的选项,比如允许调试android:debuggable、任务关系android:taskAffinity,比如我们常见的方式创建一个新的任务实用标记FLAG_ACTIVITY_NEW_TASK,为程序制定一个主题,可以使用android:theme指向一个主题文件。

平时我们创建的程序使用一些安全敏感项,会需要请求系统许可权限,这里可以使用android:permission来制定相关的许可,每个程序的service、activity、content provider、receiver都需要在application的节点内实现。有关完整的属性可以查看:

<application android:allowClearUserData=["true" | "false"]

android:allowTaskReparenting=["true" | "false"]

android:debuggable=["true" | "false"]

android:description="string resource"

android:enabled=["true" | "false"]

android:hasCode=["true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:manageSpaceActivity="string"

android:name="string"

android:permission="string"

android:persistent=["true" | "false"]

android:process="string"

android:taskAffinity="string"

android:theme="resource or theme" >

. . .

</application>

有关Androidmanifest.xml文件中的数据提供,我们来看下Provider节点中用到的定义,可以看到包含了权限控制、排序方式完整的如下:

<provider android:authorities="list"

android:enabled=["true" | "false"]

android:exported=["true" | "false"]

android:grantUriPermissions=["true" | "false"]

android:icon="drawable resource"

android:initOrder="integer"

android:label="string resource"

android:multiprocess=["true" | "false"]

android:name="string"

android:permission="string"

android:process="string"

android:readPermission="string"

android:syncable=["true" | "false"]

android:writePermission="string" >

</provider>

而对于服务相关定义如下:

<service android:enabled=["true" | "false"]

android:exported[="true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:name="string"

android:permission="string"

android:process="string" >

</service>

最后是Broadcast使用的Receiver定义,一般配合<intent-filer> 和<meta-data>隐式处理。

<receiver android:enabled=["true" | "false"]

android:exported=["true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:name="string"

android:permission="string"

android:process="string" >

</receiver>

转载于:https://blog.51cto.com/5371904/909337

AndroidManifest.xml文件剖析相关推荐

  1. 用Python解析AndroidManifest.xml文件找MainActivity

    写在前面的话 这个是一篇水博客,因为我知道只要是个大二的小朋友就可以搞定,我大二就一天在搞这些事情,今天纯属吃饱了撑着,想敲键盘,等实验结果然后随便写写.我知道大家都会的,不会的小朋友随便看看然后自己 ...

  2. AndroidManifest.xml文件详解

    更多原文,请见:http://mobile.51cto.com/aprogram-340646.htm AndroidManifest.xml文件是Android系统重要的权限申请和定义配置文件,程序 ...

  3. android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

    androidmanifest.xml文件的作用:1.是每个android程序中必须的文件,它位于整个项目的根目录:2.配置程序运行所必要的组件,权限,以及一些相关信息:3.是整个应用的入口,所以有助 ...

  4. [安卓]AndroidManifest.xml文件简介及结构

    1.AndroidManifest.xml文件简介: 每个应用程序在它的根目录中都必须要有一个AndroidManifest.xml(名字须精确一致)文件.这个清单把应用程序的基本信息提交给Andro ...

  5. AndroidManifest.xml文件的作用和简单使用

    当Android启动一个应用程序组件之前,它必须知道哪些个组件是存在的,所以开发人员在开发过程中,必须将应用程序中出现的组件一一在 AndroidManifest.xml文件中申明,最终这个Andro ...

  6. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  7. [转]AndroidManifest.xml文件详解

    转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...

  8. apk解压后查看 AndroidManifest.xml 文件内容,解决乱码问题

    解决方案一. 一般对于我来说如果需要知道一个apk的包名的话,有两种比较快速的方式: (1)使用命令:aapt dump badging xxx.apk ,一般是apk就在电脑上,使用比较方便. (2 ...

  9. Android学习笔记之AndroidManifest.xml文件解析(学习别人的..非原创)

    AndroidManifest.xml是每个android程序中必须的文件.它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activitie ...

最新文章

  1. 精心推荐10个高质量的网站,打开新世界的大门
  2. 如何将adb shell里面查到的文件复制到本地电脑
  3. 如何自定义CSS滚动条的样式?
  4. javascript之 原生document.querySelector和querySelectorAll方法
  5. React开发(139):ant design学习指南之下载文件
  6. python下载文件保存_从URL下载文件并将其保存在Python文件夹中
  7. 记一次MBR锁机病毒分析
  8. matlab查找指定文件夹下文件(附汉字和标点符号读取方法)
  9. Using neural network to combine measures of word semantic similarity for image annotation
  10. Arccatalog连接到postgresql失败问题
  11. TalkingData的移动大数据探索:联合Kochava发布移动广告监测国际版
  12. 初学c语言写了个生辰八字算法,内容比较简单
  13. 吕旭军:如何打造区块链数字资产交易?
  14. VS注释提示英文变中文的方法
  15. 单元测试的基本概念和核心技法
  16. Codeforces Gym 2015 ACM Arabella Collegiate Programming Contest
  17. 82. 采用 OPA5 开发支持页面跳转的 SAP UI5 集成测试用例
  18. 计算机二级15年大纲,2015年下半年全国计算机二级考试MSoffice高级应用大纲
  19. android键盘顶起布局原理,android如何把键盘弹出不影响布局?
  20. 【金融量化】CTA策略之VeighNa量化实战笔记(1)

热门文章

  1. iOS性能分析-Xcode Instruments Allocations 分析APP内存使用情况
  2. SpringSecurity-eclipse
  3. g++ 4.4.7 template 没问题,前面应该程序问题!!
  4. 《Java虚拟机原理图解》5. JVM类加载器机制与类加载过程
  5. 通过zabbix自动发现Tomcat服务端口
  6. Activity的4种启动模式
  7. 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
  8. Linux-NTP-Server+Client
  9. 全国知名高校网站挂马现象严重 考生面临安全风险
  10. 价值为王,市场需要降温