1.2 AndroidManifest 应用清单
2018-09-10 本文已影响4人
littlezan
由gradle构建的Android应用,只需要最关键的3个文件(build.gradle
AndroidManifest.xm
Activity.java
)
-
build.gradle
用来构建项目脚本文件,编译打包 -
AndroidManifest
清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码 -
Activity.java
源代码文件
每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件,主要作用:
- 确定应用的Java软件包名。软件包名称充当应用的唯一标识符
- 声明应用的组件,包括 Activity、服务、广播接收器和内容提供程序。
- 声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互。
该文件的结构大致如下:
<manifest>
<uses-permission/>
<application>
<activity/>
<service/>
<reciever/>
<provider/>
</application>
</manifest>
在安装一个应用程序的APK到设备中时,包管理服务(PackageManagerService)会调用自己的解析器(PackageParser)去解析应用程序的"AndroidManifest.xml"文件,从而形成包信息。当启动一个应用的时候,会哦那个到这些包信息,孵化(zygote)出应用程序的进程
1. manifest 根节点
根节点manifest必须指定xmlns:android和package属性
属性名 | 作用 |
---|---|
xmlns:android | 定义命名空间 |
package | 应用的Java软件包名,充当应用的唯一标识符 |
android:sharedUserId | 数据共享。该属性定义了需要和其他应用程序共享的Linux用户ID。 默认情况下,Android系统为每一个应用程序分配一个唯一的用户ID。然而,当这个属性在多个应用程序中被设置为相同值的时候,它们将共享一个用户ID。 |
android:versionCode | 内部版本号, 用于确定这个版本是否比另一个版本更新,数字越大表明它就越新。 |
android:versionName | 显示给用户的版本号,升级安装时,用户可以看到 |
android:installLocation | 安装位置 |
2. application 应用程序的根节点
application 节点是AndroidManifest文件必须要定义的节点,声明了应用所用到的组件,即我们常说的Android四大组件。
- activity 页面声明周期管理
- service 后台服务
- reciever 广播接收器,亦可在代码中注册
- provide 内容提供者,用于进程间数据交互和共享,即跨进程通信,底层采用
Binder
机制
属性名 | 作用 |
---|---|
android:label | 它是Android标签属性,是应用程序全局的一个用户可读的标签,也是该应用程序所有组件的默认标签。 |
android:icon | 它是应用程序全局的一个图标,也是该应用程序所有组件的默认图标。 |
android:allowBackup | 允许应用程序参与备份,默认true。 |
android:logo | logo属性用于配置应用程序的商标。自Android3.0以后,应用程序窗口多了一个标题栏,而应用程序的logo将会出现在那里。 |
android:debuggable | 指示应用程序在用户模式的设备上是否可以调试。true,可以调试,false,不能调试,默认值false。 需要注意的是,它只在用户模式的机器上生效,用户模式既是买着用的android手机,而虚拟机一般都是工程模式。 |
android:enabled | 默认情况下,Android系统会自行实例化每一个应用程序的组件,包括Android四大组件, 但如果我们需要自己完成这些事情的话,就需要使用android:enabled属性来限制Android系统的行为。如果这个属性定义在<application>节点中,那么它会默认将每个组件的enabled属性设置为相同的值。如果每一个组件单独定义了这个属性,那么<application>节点上定义的属性对此组件不再生效,就由自己的enabled属性决定。 |
android:hardwareAccelerated | 硬件加速渲染功能是否对应用程序中的所有Activity和View启用,如果启用,则为true,否则为false,其默认值是false。 从Android 3.0开始,硬件加速的OpenGL渲染器对所有应用程序都有效,这样做的目的是改善大多数2D图形操作的性能。当硬件加速渲染器被启用时,大多数操作(包括Canvas,Paint,Xfermode,ColorFilter,Shader和Camera)都会被加速,这样产生的结果是更顺滑的动画效果,更顺滑的滚动效果以及整体响应的改进。 当没有设置这个标志的时候,它的默认值取决于是否配置了android:targetSdkVersion。如果没有配置,则Android默认将android:targetSdkVersion作为当前设备系统的SDK版本。当android:targetSdkVersion属性的值大于或者等于当前系统版本时,则启用硬件加速,反之则禁用硬件加速。 |
android:persistent | 用来表明应用程序是否应该在任何时候都保持运行状态, 若为true,则表示应该,false则表示不应该,其默认值为false。 通常,应用程序不应该设置本属性,而持续模式仅仅对于某些系统应用程序才有意义。例如电话模块,它在系统启动的时候就处于运行状态。 |
android:process | 应用程序所有组件运行的进程名。默认值是当前的应用程序包名。 当应用程序的第一个组件运行的时候,Android就会生成一个进程,所有组件全部运行在该进程中。 该属性设置为一个与其他应用程序共享的进程名,就可以将两个应用程序的组件说运行在相同的进程里。能这样做的前提是仅在两个应用程序共享一个用户ID并且被赋予相同证书时。 如果该属性里设置的名字以冒号开头 : 那么在需要的时候它将生成该应用程序的一个私有新进程。如果进程名以小写字母开头,则生成以该进程名命名的一个全局进程。全局进程可以用来与其他应用程序分享,以便降低资源消耗。 |
android:taskAffinity | 任务栈 |
android:largeHeap | 此属性指示应用程序是否使用一个比较大的堆创建,它是一个布尔值,在没有配置的情况下,它的默认值是false |