清单文件 属性 乱七八糟

属性-乱七八糟

常见属性解释

  • android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
  • android:alwaysRetainTaskState 是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态
  • android:clearTaskOnLanunch 比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Q
  • android:configChanges 当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
  • android:enabledactivity  是否可以被实例化
  • android:excludeFromRecents 是否可被显示在最近打开的activity列表里
  • android:exported 是否允许activity被其它程序调用
  • android:finishOnTaskLaunch 是否关闭已打开的activity当用户重新启动这个任务的时候
  • android.icon
  • android:label
  • android:launchMode activity启动方式, "standard" "singleTop" "singleTask" "singleInstance"
  • android:multiprocess 允许多进程
  • android:name activity的类名必须指定
  • androidnHistory 是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的
  • android:permission
  • android:process 一 个activity运行时所在的进程名
  • android:screenOrientation activity显示的模式, "unspecified" 默认值 "landscape" 风景画模式,宽度比高度大一些 "portrait" 肖像模式, 高度比宽度大。 "user" 用户的设置 "behind" "sensor" "nosensor"
  • android:stateNotNeeded 是否 activity被销毁和成功重启并不保存状态
  • android:taskAffinity activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系
  • android:theme activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序
  • android:windowSoftInputMode activity主窗口与软键盘的交互模式, 自从API level 3 被引入

  • android:authorities

标识内容提供器范围内的数据URI的授权列表,有多个授权时,要用分号来分离每个授权。为了避免冲突,授权名应该使用Java样式的命名规则(如:com.example.provider.cartoonprovider)。通常,用ContentProvider子类名称来设定这个属性。

这个属性没有默认值,至少要指定一个授权。

  • android:exported

这个属性用于指定该内容提供器是否能够被其他的应用程序组件使用。如果设置为true,则可以被使用,否则不能被使用。如果设置为false,该提供器只对同名的应用程序或有相同用户ID的应用程序有效。默认值是true。

虽然能够使用这个属性来公开内容提供器,但是依然还要用permission属性来限制对它的访问。

  • android:grantUriPermission

这个属性用于设定那些对内容提供的数据没有访问权限的访问者,是否能够被授予访问的权限,这个权限是临时性的,它会克服由readPermission、writePermission和permission属性的设置限制。如果这个属性设置为true,那么权限就可以授予访问者,否则不会授予没有访问权限的访问者。如果设置为true,则权限可以临时被授予内容提供器的任何数据。如果设置为false,则权限只能被授予<gran-uri-permission>子元素中所列出的数据子集。默认值是false。

这种授权是应用程序提供了一种一次性访问被权限所保护的数据的方法。例如,当一个e-mail包含了一个附件时,mail应用程序就可以调用适当的浏览器来打开附件,即使这个浏览器没有查看所有内容提供器数据的权限。

在这样的场景中,权限是通过激活组件的Intent对象中的FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_WRITE_URI_PERMISSION标记来授予的。例如,mail应用程序可以把FLAG_GRANT_READ_URI_PERMISSION标记放到传递给Context.startActivity()方法的Intent参数中。这样权限就被授予了Intent对象中所指定的URI。

如果要启用这个功能,既可以通过把这个属性设置为true来完成,也可以通过定义<grant-uri-permission>子元素来实现,在切换RUI时,必须调用Context.revokeUriPermission()方法从提供器把权限删除。

  • android:icon

这个属性用于定义一个代表内容提供器的图标。它必须要引用一个包含图片定义的可绘制资源。如果这个属性没有设置,那么就会使用应用程序的<application>元素的icon属性值来代替。

  • android:initOrder

这个属性用于定义内容提供器应该被实例化的顺序,这个顺序是相对与相同进程所拥有的其他内容提供器的。当内容提供器间有相互的依赖时,就需要设置这个属性,以确保它们能够按照其依赖的顺序被创建。这个属性值是一个简单的整数,大的数字要被优先初始化。

  • android:multiprocess

这个属性用于设定是否能够在每个使用该内容提供器的客户端进程中都创建一个内容提供器的实例,如果设置为true,这个能够在其每个客户端进程中创建一个实例,否则不可以。默认值是false。

通常,内容提供器是在定义它的应用程序的进程中被实例化的。但是,如果这个属性被设置为true,系统就能够在每个要与该内容提供器进行交互的客户端进程中创建一个内容提供器的实例,这样就避免了进程间通信的开销。

  • android:permission

这个属性用于设定客户端在读写内容提供器的数据时必须要有的权限的名称。这个属性为同时设置读写权限提供了一种便利的方法。但是readPermission和writePermission属性的优先级要比这个属性高。如果readPermission属性也被设置了,那么它就会控制对内容提供器的查询访问。如果writePermission属性被设置,它就会控制对内容提供器数据的修改访问。

  • android:process

这个属性用于定义内容提供器应该运行在那个进程中的进程名称。通常,应用程序的所有组件都运行在给应用程序创建的默认进程中。它有与应用程序包相同的名称。<application>元素的process属性能够给其所有的组件设置一个不同的默认进程。但是每个组件都能够用它们自己的process属性来覆盖这个默认设置,从而允许把应用程序分离到不同的多个进程中。

如果这个属性值是用“:”开头的,那么在需要这个提供器的时候,系统就会给这个应用程序创建一个新的私有进程,并且对应的Activity也要运行在那个私有进程中。如果用小写字母开头,那么Activity则会运行在一个用这个属性值命名的全局进程中,它提供了对内容提供器的访问权限。这样就允许不同应用程序的组件能够共享这个进程,从而减少对系统资源的使用。

  • android:readPermission

这个属性用于设置查询内容提供器的数据时,客户端所必须要有的权限。

  • android:syncable

这个属性用于设定内容提供器控制下的数据是否要与服务器上的数据进行同步,如果设置为true,则要同步,否则不需要同步。

  • android:writePermission

这个属性用于设置修改内容提供器的数据时,客户端所必须要有的权限。

来自为知笔记(Wiz)

时间: 2024-11-07 20:53:03

清单文件 属性 乱七八糟的相关文章

在AndroidManifest(清单文件)中注册activity(活动)及配置主活动、更改App图标、App名称、修改隐藏标题栏

打开app/src/main/AndroidManifest. 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.administrator.myapplication" > 4 5 &

Qt creator error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(vs2010的嵌入式清单文件)

下面是vs2010导入别人文件时出现的问题的解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次.在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:第一步:与上相同.第二步:将 项目|项目属性|配置属

Android清单文件详解(三)----应用程序的根节点&lt;application&gt;

<application>节点是AndroidManifest.xml文件中必须持有的一个节点,它包含在<manifest>节点下.通过<application>节点的相关属性,我们可以声明Android应用程序的相关特性.这个节点包含所有应用程序组件的节点,包括Activity,服务,广播接收器和内容提供者,并且包含了一些可能影响所有组件的属性.这些属性中的其中一些又会作为默认值而被设置到应用程序组件的相同属性上,比如icon,label,permission,pro

Android AndroidManifest 清单文件以及权限详解

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下.它定义了该应用对于Android系统来说一些非常重要的信息.Android系统需要这些信息才能正常运行该应用.Android程序清单文件主要具有下面作用: ·        它给应用程序Java包命名,这个包名作为应用程序唯一标识符. ·        它描述了应用程序中的每个程序组件-Activity,Service,Broadcast Re

Android AndroidManifest 清单文件以及权限详解【转自:http://my.oschina.net/yuanxulong/blog/366753】

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的 根目录下.它定义了该应用对于Android系统来说一些非常重要的信息.Android系统需要这些信息才能正常运行该应用.Android程序清单文 件主要具有下面作用: ·        它给应用程序Java包命名,这个包名作为应用程序唯一标识符. ·        它描述了应用程序中的每个程序组件—Activity,Service,Broadcast

构建-9 合并清单文件 Merge

官方文档 合并多个清单文件 Merge multiple manifest files APK 文件只能包含一个 AndroidManifest.xml 文件,但 Android Studio 项目 may contain several provided by the main source set, build variants, and imported libraries.因此,在构建应用时,Gradle 构建会 merges all manifest files into a sing

Android清单文件合并的那些事

APK文件只能包含一个AndroidManifest.xml文件,但Android Studio项目可以包含多个文件(通过buildSrc.导入的库引入).因此,在构建应用时,Gradle构建会将所有清单文件合并到一个封装的APK的清单文件中. 清单文件合并优先级 清单合并工具 可以使用Merged Manifest视图预览合并清单的效果并找出冲突错误. 可以互相合并的基本清单文件,合并优先级如下(优先级由高到低): 清单文件构建变体 如果变体有多个源集,其清单优先级由高到低如下: a.构建变体

清单文件介绍

清单文件介绍 如果想让你的应用程序有多个启动入口应该做如下配置: <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />

Android的学习之路(四)项目中清单文件的学习和android中经常使用的显示单位

1.所谓的清单文件就是项目中的AndroidManifest.xml文件.这个文件但是有大用处的.比方:app的名字,图标.app支持的版本号app的包名等等.以下我就介绍下这个清单文件的各个參数的作用. <manifest xmlns:android="http://schemas.android.com/apk/res/android"命名空间 package="com.example.hello"包名唯一标示一个应用 android:versionCod