Android开发-API指南-<application>

<application>

英文原文:http://developer.android.com/guide/topics/manifest/application-element.html
采集(更新)日期:2014-5-30
更新下老的文档,祝贺下自己 42 岁的生日。
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmga.html

语法:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:backupAgent="string"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:hasCode=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requiredAccountType="string"
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
包含于:
<manifest>
可包含:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<provider>
<uses-library>
说明:
对应用程序的声明。 本元素包含了声明每个程序组件的子元素,及作用于全部组件的属性。 很多属性(比如 iconlabelpermissionprocesstaskAffinityallowTaskReparenting) 设置了组件元素中对应属性的默认值。 其他属性(比如 debuggableenableddescriptionallowClearUserData)则设置了应用程序的全局属性值,且不能被组件的属性值覆盖。
属性:
android:allowTaskReparenting
当具有相同 affinity 名称的 Task 即将返回前台时,应用程序的 Activity 是否能从启动时的 Task 转移至此 Task 中去 — “ true”表示可以移动,“false”表示必须留在启动时的 Task 中, 缺省值是“false”。

<activity> 元素拥有自己的 allowTaskReparenting 属性,它可以覆盖本值。 详情请参阅其说明。

android:allowbackup
是否允许应用程序参加备份和恢复机制。 如果本属性设为 false ,则不会执行应用程序的备份和恢复,即使是在进行全系统的备份时也不会。 备份机制将会把应用程序的所有数据都通过 adb 保存下来。 本属性的默认值是 true。
android:backupAgent
实现应用程序备份代理的类名,这是 BackupAgent 的子类。本属性值应为完全限定的类名(比如“com.example.project.MyBackupAgent”)。 不过作为简称,如果名称的首字符是句点(比如“.MyBackupAgent”),则 <manifest> 元素中设置的包名称将会自动加到前面。

没有默认值,必须指定名称。

 

android:debuggable
应用程序能否被调试,即便是以用户模式运行于设备中时 — “true”表示可以,“false”表示不允许。

默认值是“false”。

android:description
供用户阅读的应用程序描述信息,比 label 的内容更多也更详细。 本属性值必须设为对字符串资源的引用。 与 label 不同,本属性不能直接设为字符串。

没有默认值。

android:enabled
Android 系统能否实例化应用程序中的各组件 — “true”表示可以,“false”表示不允许。 如果此值设为“true”,则由每个组件的 enabled 属性确定自身的启用或禁用。 如果此值设为“false”,则覆盖组件的设置值;所有组件都将被禁用。

默认值是“true”。

android:hasCode
应用程序是否包含代码 — “true”表示包含,“false”表示不包含。 如果此值设为“false”,则在启动组件时系统不会试图装载任何程序代码。 默认值是“true”。

应用程序不包含任何自有代码的情况极少发生。 仅当只用到了内置的组件类时才有可能,比如使用了 AliasActivity 类的 Activity。

android:hardwareAccelerated
是否为应用程序中所有的 Activity 和 View 启用硬件加速渲染功能 —“true”表示开启,“false”表示关闭。 如果 minSdkVersiontargetSdkVersion 的值大于等于“14”,则本属性默认值是“true”。否则,默认值为“false”。

自 Android 3.0 (API 级别 11)开始,应用程序可以使用硬件加速的 OpenGL 渲染功能来提高很多常用 2D 图形操作的性能。 当开启硬件加速渲染功能时,大部分 Canvas、Paint、Xfermode、ColorFilter、Shader 和 Camera 中的操作都会被加速。 即便应用程序没有显式地调用系统的 OpenGL 库,这仍能使动画更加平滑、屏幕滚动也更加流畅、整体响应速度获得改善。

请注意,并非所有的 OpenGL 2D 操作都会被加速。 如果开启了硬件加速渲染功能,请对应用程序进行测试以确保使用渲染时不会出错。

更多信息,请参阅硬件加速指南。

android:icon
代表整个应用程序的图标,也即应用程序中每个组件的默认图标。 请参阅 <activity><activity-alias> 、<service> 、<receiver> 和 <provider> 元素各自的icon属性。

本属性必须设为对 drawable 资源的引用(例如“ @drawable/icon ”)。 图标没有默认值。

android:killAfterRestore
在执行全系统的恢复操作时,配置恢复后相关的应用程序是否要被终止。 单个包的恢复操作不会导致程序被关闭。 全系统的恢复操作一般只会发生一次,即第一次配置手机时。 第三方应用程序通常不需要用到本属性。

默认值是“true”,表示全系统恢复过程中,应用程序在处理完数据后将被关闭。

android:largeHeap
应用程序的进程是否会用较大的 Dalvik 堆来创建。 这将作用于所有为该应用程序创建的进程,但只对第一个被装入进程的应用程序生效。 如果通过共享用户 ID 的方式让多个应用程序公用一个进程,那么这些应用程序必须全部指定本选项,否则将会导致不可预知的后果。

大部分应用程序不需要用到本属性,而是应该关注如何减少内存消耗以提高性能。 使用本属性并不能确保一定会增加可用的内存,因为某些设备可用的内存本来就很有限。

要在运行时查询可用的内存大小,请使用 getMemoryClass()getLargeMemoryClass() 方法。

android:label
供用户阅读的代表整个应用程序的文本标签,也即应用程序中每个组件的默认标签。 请参阅 <activity>、 <activity-alias> 、<service> 、<receiver> 和 <provider> 元素各自的 label 属性。

文本标签应设为一个字符串资源的引用,这样就能像其它用户界面内的字符串一样对其进行本地化。 不过,考虑到开发时的便利性,也可以将其直接设为字符串。

android:logo
整个应用程序的 logo 标识,也即各 Activity 的默认 logo。

本属性必须设为对 drawable 资源的引用,该资源中包含了图片文件(例如“@drawable/logo”)。 logo 没有默认值。

android:manageSpaceActivity
指定某个 Activity 子类的完全限定名称,系统可以启动此 Activity 来让用户管理应用程序占用的内存空间。 这个 Activity 必须已用 <activity> 元素进行了声明。
android:name
实现本应用程序的 Application 子类的完全限定名称。 当应用程序开始运行时,此类将先于所有程序组件被初始化。

该子类是可选的:大多数应用程序不需要用到。 在未提供子类置时,Android 将使用 Application 类的实例。

android:permission
客户端要与应用程序交互而必须拥有的权限名称。 本属性为一次设置适用于全部程序组件的权限提供了一个便捷途径。 它可以被组件各自的 permission 属性覆盖。

关于权限的详细信息,请参阅介绍一文中的 权限 章节和另一篇文档 安全和权限

android:persistent
应用程序是否需要一直保持运行状态 —“true”表示是,“false”表示否。 默认值是“false”。 一般情况下,应用程序不应该设置本标志;持久运行模式仅适用于某些特定的系统应用。
android:process
应用程序的全部组件都将运行于其中的进程名称。 每个组件通过设置各自的 process 属性,可以覆盖本缺省值。

默认情况下,当需要运行应用程序的第一个组件时,Android 会为程序创建一个进程。 然后所有组件都会运行在这个进程中。 默认进程的名称与 <manifest> 元素设置的包名一致。

通过将本属性设置为其他应用程序的进程名称,可以让两个应用程序的组件运行于同一个进程中 — 但只有这两个程序共享同一个用户 ID 并用同一个证书签名时才行。

如果赋予本属性的名称是以冒号(‘:‘)开头的,则必要时将会为应用程序创建一个新的私有进程。 如果进程名称以小写字母开头,则将创建以此名称命名的全局进程。 全局进程可以被其他应用程序共享,以减少资源的占用。

android:restoreAnyVersion
指明应用程序是否将尝试恢复任何备份数据集,即使备份数据的程序版本比当前安装的要新。 本属性设为 true 将允许 Backup Manager 尝试恢复操作,即使发生版本冲突也即数据版本不兼容时也是如此。 使用本属性时务必小心!

本属性的默认值是“false”。

android:requiredAccountType
设定应用程序所需的账户类型。 如果应用程序需要一个 Account 才能运行,本属性值必须与账户的认证类型(由 AuthenticatorDescription 定义)吻合,比如“com.google”。

默认值是 null ,表示应用程序 不需要 任何账户就可以运行。

因为目前的受限用户配置功能(Restricted Profile)无法添加账户,设定本属性的应用程序对于受限用户而言是不可用的, 除非你同时将 android:restrictedAccountType 也声明为相同的值。

提醒 如果账户数据可能会泄露个人身份信息,声明本属性就很重要了,并且要把 android:restrictedAccountType 设置为 null ,这样受限用户就无法用你的应用程序来访问机主的个人信息了。

本属性自 API 级别 18 开始加入。

android:restrictedAccountType
设定本应用程序所需的账户类型,并允许受限用户访问机主的该账户。 如果应用程序需要使用 Account 并且允许受限用户访问主账户,本属性值必须与应用程序的账户认证类型(由 AuthenticatorDescription 定义)吻合,比如“com.google”。

默认值为 null ,表示应用程序不需要 任何账户就可以运行。

提醒: 设置本属性将允许受限用户通过主账户使用你的应用程序,这可能会泄露个人身份信息。 如果账户可能会泄露个人信息,请勿使用本属性,而是使用 android:requiredAccountType 属性,以禁止受限用户的使用。

本属性自 API 级别 18 开始加入。

android:supportsRtl
声明应用程序是否要支持自右向左(RTL)布局(Layout)。

如果本属性设为 true 并且 targetSdkVersion 为 17 以上版本,则系统将会激活并使用各种 RTL API ,应用程序就可以显示 RTL Layout。 如果本属性设为 false 或者 targetSdkVersion 为 16 以下版本,则 RTL API 将会被忽略或失效,应用程序将忽略与 Layout 方向有关的用户本地化选项(Layout 都将从左到右布局)。

本属性的默认值是 false

本属性自 API 级别 17 开始加入。

android:taskAffinity
供应用程序中全部 Activity 使用的 affinity 名称,那些在各自的 taskAffinity 属性中设置了其他 affinity 的 Activity 除外。 详情请参阅 Activity 的 affinity 属性。

默认情况下,应用程序中的所有 Activity 都共享同一个 affinity 。affinity 的名称与 <manifest> 元素中设置的包名称相同。

android:testOnly
标明本应用程序是否仅供测试。 比如,本应用程序可能会暴露一些不属于自己的功能或数据,这将引发安全漏洞,但对测试而言这又非常有用。 这种应用程序只能通过 adb 进行安装。
android:theme
对样式(style)资源的引用,该资源定义了应用程序内所有 Activity 的默认主题(theme)。 每个 Activity 可以用各自的 theme 属性覆盖默认主题。 详情请参阅开发指南的 样式和主题
android:uiOptions
供 Activity UI 使用的附加选项。

必须设为以下值之一。

说明
"none" 没有附加 UI 选项。这是默认值。
"splitActionBarWhenNarrow" 当横向空间受限时(比如设备处于纵向模式时),在屏幕底部添加一横条,用于显示 ActionBar 中的 Action 项。 这时不再是在屏幕顶部的 ActionBar 中显示有限的几个 Action 项了,ActionBar 拆分为顶部导航栏和底部横条。 这就确保了合理的可用空间,不仅可以容纳 Action 项,还可以在顶部显示导航和标题。 菜单项不会被拆分为两部分,还是会放在一起显示。

关于 ActionBar 的更多信息,请参阅Action Bar 开发指南。

本属性自 API 级别 14 开始加入。

android:vmSafeMode
标明应用程序是否期望虚拟机(VM)运行于安全模式。 默认值是“ false”。
引入自:
API 级别 1
参阅:
<activity> 
<service>
<receiver>
<provider>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。