AndroidManifest.xml说明
Android应用
Android应用指基于Android开发,编译,运行在Android平台的应用。这种应用在编译阶段被打成一个 jar包,以.apk结尾,包内包含了所有运行阶段需要的代码与资源,其中主要分为三块:描述文件AndroidManifest.xml、代码段和运行时资源。 src文件夹为代码,res为运行资源,包括图标界面字符串。
AndroidManifest.xml样例
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="oms.hello"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloOPhone"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
AndroidManifest.xml是Android应用的描述文件,它描述了该应用的相关信息,主要包括以下各个元素。
A.包名(package):指定本应用内java主程序包的包名。当没有指定apk的文件名时,编译后产生程序包将以此命名。本包名应当在Android系统运行时唯一。
B.认证(certificate):指定本应用程序所授予的信任级别,目前有的认证级别有platform(system)、shared、media以及应用自定义的认证。不同的认证可以享受不同的权限。
C.权限组(permission-group):权限组的定义是为了描述一组具有共同特性的权限。
D. 权限(permission):权限用来描述是否拥有做某件事的权力。Android系统中权限是分级的,前分为普通级别(Normal),危险级别(dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限,应用拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。系统应用可以使用任何权限。权限的声明者可无条件使用该权限。
E.权限树(permission-tree)权限树的设置是为了统一管理一组权限,声明于该树下的权限所有者归属该应用。系统提供了API,应用可以在运行时动态添加。 PackageManager.addPermission()
F.使用权限(uses-permission):应用需要的权限应当在此处申请,所申请的权限应当被系统或某个应用所定义,否则视为无效申请。同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用无法申请高级权限。
G:SDK(uses-sdk):标识本应用运行的SDK版本。高兼容性的应用可以忽略此项。
H.application:application 是Android应用内最高级别(top level)的模块,每个应用内最多只能有一个application,如果应用没有指定该模块,一个默认的application将被启用。 application将在应用启动时最先被加载,并存活在应用的整个运行时生命周期。因此一些初始化的工作适合在本模块完成. Application元素有许多属性,其中:“persistent”表示本应用是否为常驻内存,“enable”表示本应用当前是否应当被加载。
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloOPhone"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
在AndroidManifest.xml文件中,运行时模块的定义都作为本模块的子元素。当运行时模块被调度时,如果应用没有启动,将首先启动应用进行初始化,然后调度对应模块。
I.activity:activity 是application模块的运行时子元素,标识了一个UI。除了application,一个应用可以声明并实现零至多个其它运行时模块,activity也同样。activity也包含了许多定义它工作状态的属性,其中:“name”是必须的,它指定了该activity所在的文件名,如果该文件所属包不同于该应用的包名(即本描述文件的最开始处),那么名字前面需要加入所在包名。activity通过增加intent- fliter来标识哪些intent可以被处理,同时intent也是调度activity的主要参数。
J.receiver:receiver 也是application的运行时子元素。receiver通过增加intent-fliter来标识它需要接受哪些intent。当收到intent 后,receiver将根据不同的intent进行不同的处理。当一个Intent发出后,所有注册了该intent的receiver都将会收到,系统会根据receiver在系统中的注册次序顺序发送。当一个receiver处理完该Intent后,系统才会向下一个receiver发送。当一个receiver有多个未接收的intent时,将按照intent发送的次序顺序接收。
在本实例中,intent-filter如下:
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
K.service:service也是application的运行时子元素。Service属于后台模块,启动后将长时间运行,除非停止该service或所在应用进程被杀死。
L.provider:provider 也是application的运行时子元素。它继承于ContentProvider,是对该应用管理的用户数据的结构化接入,是基于数据库操作方式的封装。如果应用允许外部应用访问/管理它的用户数据,provider是Android平台提供的最佳方式。
M.activity-alias:顾名思义,是已有activity的别名。
N:uses-library:标识应用启动所必须的共享库。
相关推荐
AndroidManifest.xml是APK的核心组件之一,它提供了应用的基本配置信息,包括应用名称、版本、所需权限、服务、活动、广播接收器等。当我们需要深入分析或修改一个APK时,提取AndroidManifest.xml就显得尤为重要。本...
一个解密apk 包中AndroidManifest.xml 的工具,命令行直接使用,生成一个明文的xml 文件。 AndroidManifestConver.exe c:\src.xml c:\dest.xml
Android 报错:Entry name ‘AndroidManifest.xml’ collided前言解决方法1、直接退回3.5.32、排除打包文件3、使用旧打包工具4、最终解决方法完事 前言 这两天 Android studio 更新了 3.6 版本,天天在右下角提示 ...
0x00 关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,Manifest文件提供有关应用程序到Android系统的基本信息,系统必须具有该信息才能运行任何应用程序的...
文章目录AndroidManifest.xmlAndroidManifest.xml 文件的格式AXML 文件格式AXML 文件的修改 AndroidManifest.xml 其中存放了 APK 的大量配置信息:软件名称、图标、主题、包名、组件配置等 合理、安全地配置组件是...
WebViewStudy Contains the content 拨打电话、发送短信、发送邮件 上传图片(版本兼容) 进度条、字体大小设置 返回网页上一层、显示网页标题 全屏播放网络视频 与JS交互实例 ...与AndroidManifest.xm
"XM共享模块1.3源码"是易语言的一个扩展模块,主要用于增强易语言的多媒体处理能力,特别是音频和视频相关的功能。这个模块可能是由开发者社区或个人开发并分享出来,供其他易语言用户使用和学习的。 "多媒体类源码...
《AndroidManifest.xml uses-feature功能详解》这篇文章主要探讨了在Android应用程序开发中,如何利用`<uses-feature>`标签来声明应用对设备硬件特性的需求,并通过Android Market(现为Google Play Store)进行过滤...
在Android应用开发中,`AndroidManifest.xml` 文件是至关重要的,因为它包含了应用程序的元数据,包括权限、组件声明以及我们关注的 `uses-sdk` 标签。`uses-sdk` 标签用来定义应用对Android SDK版本的支持范围,这...
每一个Android项目都包含一个清单(Manifest)文件–AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。 它包含了组成应用程序的每一个组件(活动、服务、内容提供器和...
在Android平台上,通讯录是一个...接下来,要访问Android通讯录,必须在AndroidManifest.xml文件中声明相应的权限。最常用的两个权限是`READ_CONTACTS`和`WRITE_CONTACTS`,分别用于读取和写入联系人信息: ```xml ...
在Android平台上,开发一款...3. **权限管理**:在AndroidManifest.xml中,需要声明`<uses-permission>`来获取使用摄像头和写入外部存储的权限,如`<uses-permission android:name="android.permission.CAMERA" />`和`...
2.2.AndroidManifest 1.2.3 资源 1.3 AndroidUI基础 1.3.1 主屏幕和通知栏1.3.2 XM[布局 1.3.3 ACTIVI'[Y类 1.3.4 硬件按钮 1.4 工具 1.4.1 Android开发者工具1.4.2 Android虚拟设备 1.4.3 层次浏览器(}...
最近又要开始找工作了,准备把私藏了四年…的库分享给大家,别问我为啥现在才分享,因为鄙人比较懒(自己偷笑了一下)但是哥们在生活中是个很勤快的人。其实对于程序猿来说懒也是一种优点,但是必备的条件是要面子,...