Android开发笔记

1.2 AndroidManifest 应用清单

2018-09-10  本文已影响4人  littlezan

由gradle构建的Android应用,只需要最关键的3个文件(build.gradle AndroidManifest.xm Activity.java)

每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件,主要作用:

该文件的结构大致如下:

<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四大组件。

属性名 作用
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
上一篇下一篇

猜你喜欢

热点阅读