AndroidManifest.xml 不同变量的作用(持续更新)

android:exported=”true” or “false”

1.如果是activity,表示是否能被别的程序调用
2.如果是service,表示service不能跨进程调用

android:taskAffinity属性

参考[这里写链接内容](http://blog.csdn.net/way_ping_li/article/details/8680359)

supports-screens

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="false" />

语法(SYNTAX):

<supports-screensandroid:resizeable=["true"|"false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>

被包含于(CONTAINED IN):

说明(DESCRIPTION):

这个元素用于指定应用程序所支持的屏幕尺寸,并针对比应用程序所支持的屏幕还要大屏幕,启用屏幕兼容模式。在应用程序中使用这个元素指定应用程序所支持的屏幕尺寸是至关重要的。

如果应用程序调整尺寸属性来填充整个屏幕,那么应用程序就要支持这个给定的尺寸。通常对于大多数应用程序,系统可以很好的完成这种调整工作,并且为了让应用程序在比一个手持设备大的屏幕上工作,你不需要做任何额外的工作。但是,针对不同的屏幕尺寸,通过提供可选的布局资源来优化应用程序的UI经常是很重要的。例如,一个运行在手持设备上的Activity布局,如果想要运行在平板电脑上,就需要修改这个Activity的布局。

但是,如果为了适应不同的屏幕尺寸而调整了尺寸,但应用程序也不能很好的工作,就可以使用元素的属性来控制应用程序是否应该发布给屏幕较小的设备,或者使用系统的屏幕兼容模式,让UI放大以适应较大屏幕的要求。在没有针对较大屏幕尺寸的设计,并且普通的尺寸不能达到合适结果时,屏幕的兼容模式会通过模拟普通尺寸的屏幕和中等密度来缩放UI,以便它能够填充整个屏幕,这样会导致UI模糊,因此针对大屏幕的优化是比较好的。

注意:Android3.2引入了新的属性:android:requiresSmallestWidthDp、android:compatibleWidthLimitDp和android:largestWidthLimitDp。如果正在开发Android3.2或更高版本的应用程序,应该使用这些属性来声明应用程序所支持的屏幕尺寸,而不是基于一般的屏幕尺寸属性。

有关如何正确的支持不同的屏幕尺寸,以便避免给应用程序使用屏幕兼容模式的更多信息,请阅读“Supporting Multiple Screens”

http://developer.android.com/guide/practices/screens_support.html

属性(ATTRIBUTES):

android:resizeable

这个属性用于指示针对不同的屏幕尺寸,应用程序是否可以调整尺寸。默认值是true。如果这个属性设置了false,在大的屏幕上,系统会在屏幕兼容模式中运行该应用程序。

这个属性被废弃了,引入这个属性主要是为了帮助应用程序从1.5过渡到1.6。当多屏幕支持被引入时,就不应该在使用它了。

android:smallScreens

这个属性用于指定应用程序是否支持较小外形的屏幕。一个small类型的屏幕被定义成一个比normal(传统的HVGA)类型的屏幕还要小的屏幕。外部服务(如Google Play)不会把不支持小屏的应用程序提供给小屏设备,因为很少有能够确保该应用程序在小屏幕的设备上正常工作的平台。这个属性的默认值是true。

android:normalScreens

这个属性用于指示应用程序是否支持普通外形的屏幕。典型的是HVGA中等密度的屏幕,但是WQVGA低密度和WVGA高密度屏幕也被认为是普通屏幕。这个属性的默认值是true。

android:largeScreens

这个属性用于指示应用程序是否支持较大外形的屏幕。一个large类型的屏幕被定义成一个比normal类型的手持设备的屏幕明显还要大的屏幕,并且为了让应用程序能够良好的使用,使用这个属性时要特别小心,尽管可以依赖系统来调整尺寸,以便能够填充屏幕。

这个属性的默认值实际上在某些版本之间是不同的,因此最好在任何时候都明确的声明这个属性。如果设置为false,系统会启用屏幕兼容模式,这时要格外的小心。

android:xlargeScreens

这个属性用于指示应用程序是否支持超大外形的屏幕。一个xlarge屏幕被定义成一个比large屏幕还要大的屏幕,如平板电脑,为了能够让应用程序良好的使用,需要特别小心的使用这个属性,尽管可以依赖系统来UI的尺寸来填充屏幕。

android:anyDensity

这个属性指明应用程序是否包含了能够适用于任何屏幕密度的资源。

对于支持Android1.6(API Level 4)和更高版本的应用程序,这个属性的默认值是true,并且除非绝对的确认这是应用程序正常工作所必须的,否则不应该把它设置为false。只是在应用程序直接操作位图时才需要禁止这个属性。

android:requiresSmallestWidthDp

这个属性用于指定smallestWidth的最小需求。smallestWidth是屏幕空间的最短尺寸(以dp为单位),它必须是对应用程序的UI是有效的。也就是说它是有效的屏幕的两个维度的尺寸中最短的那个。因此为了考虑设备跟应用程序的兼容性,设备的smallestWidth的值必须要大于等于这个属性所设置的值。通常这个属性值是针对布局所支持的最小宽度,而不是屏幕当前的方向。

例如,典型的手持设备屏幕smallestWidth是320dp;7英寸的平板电脑的smallestWidth是600dp;10英寸的平板电脑的smallestWidth是720dp。这些值一般都是最小的宽度,因为它们是屏幕可用空间中最短的那个尺寸。

这对这个尺寸值的比较,需要考虑屏幕的装饰和系统UI部分。例如,如果系统有一些固定的UI元素要显示,那么系统声明的设备的最小宽度(smallestWidth)要比实际的屏幕尺寸要小,因为被系统UI占用的屏幕像素对于应用的UI是无效的。因此,这个值应该是应用布局所使用的最小宽度需求,而不管屏幕的当前方向。

如果应用程序能够针对较小屏幕尺寸进行正确的调整(small尺寸或最小宽度是320dp以下的屏幕),那么就不需要这个属性。否则就应该使用这个属性值跟应用程序所使用的最小屏幕宽度限定符的值(swdp)相匹配。

警告:Android系统不会关注这个属性,因此它不会影响应用程序在运行时的行为。相反,它被服务(如Google Play)用于过滤应用程序。但是,当前Google Play不支持用这个属性来过滤(在Android3.2上),因此如果应用程序不支持小屏幕设备,就应该继续使用其他的尺寸属性。
这个属性在API Level 13中被引入。

android:compatibleWidthLimitDp

这个属性允许在设计应用程序时,通过指定最大的“smallest screen width”来启用屏幕兼容模式,作为一个用户可选的功能。如果设备的有效屏幕的最小边比这个属性值大,那么用户依然能够安装该应用程序,但是在运行时要使用屏幕兼容模式。默认情况下,屏幕兼容模式似乎被禁止的,并且通过会调整布局的尺寸来填充屏幕,但是在系统栏中会有一个按钮,让用户选择屏幕兼容模式的打开和关闭。

如果应用程序跟所有的屏幕尺寸都兼容,并且它的布局能够被正确的调整尺寸,就不需要使用这个属性。

注意:当前,屏幕兼容模式只能模拟320dp宽度的手持设备屏幕,因此如果android:compatibleWidthLimitDp的值比320大,那么屏幕兼容模式就不被适用。

这个在API Level 13中被引入。

android:largestWidthLimitDp

这个属性允许再设计应用程序时,通过指定最大的“smallest screen width”来强制启用屏幕兼容模式。如果设备有效屏幕的最小边比这个属性值大,应用程序就会运行在屏幕兼容模式中,而用户没有办法禁止这种模式。

如果应用程序跟所有的屏幕尺寸都兼容,并且能够被正确的调整尺寸,就不需使用这个属性。否则首先要考虑使用android:compatibleWidthLimitDp属性。只有在因大屏幕尺寸调整而导致破坏了应用程序的功能的时候,并且使用屏幕兼容模式是唯一的方法的时候,才应该使用这个属性。

注意:当前,屏幕兼容模式只能模拟320dp宽度的手持设备屏幕,因此如果android:compatibleWidthLimitDp的值比320大,那么屏幕兼容模式就不被适用。

这个在API Level 13中被引入。

android:hardwareAccelerated=”true”

是否启动view的硬件加速

android:largeHeap=”true

是否默认应用为使用最大内存的应用。
adb shell getprop

dalvik.vm.heapsize=128m

dalvik.vm.heapgrowthlimit=64m

heapgrowthlimit是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值。
heapsize是在AndroidManifest.xml中设置largeHeap=true之后,可以使用的最大内存。

默认应用使用64m android:largeHeap=true,默认使用128m

android:restoreAnyVersion=”true”

这个属性是指允许恢复任意版本的备份数据来恢复应用程序的数据。将该属性设置为true,则将允许备份管理器尝试恢复操作,有的时候版本不匹配表明数据是不兼容的,这个时候如果可以恢复到不同版本的数据,那么应用程序将承受很大的风险,所以请谨慎使用此属性!
这个属性必须是布尔值,true或者false!
下面举个例子:
我们写一个应用程序名为project,在Androidmanifest中versionCode写2,说明project的版本号是2.并且我们设置其restoreAnyVersion为false(或者不配置该属性,因为默认为false)。
接下来安装project.apk并执行一次备份工作,至此系统已经对应用程序完成了一次备份。备份之后,我们将project卸载,再修改AndroidManifest中versionCode的值为1,再重新将project安装到手机上。这时候该应用程序版本为1(版本号降低了)。由于版本号降低会影响到恢复功能的执行。备份管理服务检查到备份版本高于当前安装版本,此时Android备份系统就跳过这个应用程序的恢复过程,在日志中提示“no more packages to restore”。
接下来我们再次卸载project,并将AndroidManifest中的restoreAnyVersion的值设为true,再次重新安装该应用程序,在日志中我们可以看到android备份系统发现了原来备份的数据(版本为2),但是安装的应用程序为1,这时备份系统会去检查师傅哦设置了restoreAnyVersion=true,如果已经进行了这样子的设置,那么Android系统就依然进行一次恢复操作。

上述讲的是从高版本到低版本的过程,会随着restoreAnyVersion不同而改变。
但是如果是从低版本到高版本呢?
无论restoreAnyVersion设置为什么,因为程序的版本不断升高,Android备份系统都会为其进行一次备份恢复操作。

android:supportsRtl=”true”

声明你的application是否愿意支持从右到左(原来RTL就是right-to-left 的缩写…)的布局。默认为true

android:usesCleartextTraffic=”false”

默认为true
该属性用于应用的NetworkSecurityPolicy,并且声明是否允许未加密的网络流量。
当usesCleartextTraffic被设置为false,应用程序会在使用HTTP而不是HTTPS时崩溃。
你可以在John Kozyrakis的博客文章中阅读更多关于Android M加密连接的相关内容。

android:clearTaskOnLaunch的用法

比如你的应用里有N个Activity,其中有个是设置页面,你从主页面进入到设置页面设置了一些东西之后,突然,按了下Home键,回到了Android的Home,这时候你做了些别的事情,然后你再次点击你的应用程序图标进入你的应用程序的时候,依旧是回到设置页面,继续先前的工作,这也是大多数应用的情况。
  但是,如果你把android:clearTaskOnLaunch的值设为true呢?顾名思义,它就在启动的时候把Task给清空了,就是你再次点击应用程序图标进入你的应用程序的时候是回到应用程序的第一个页面,而不会回到先前的设置页面。也就是说不保存先前的设置状态。
至于,什么情况下要这么用,我还没想到,像谷歌的Zxing项目,也就是Android上的“条码扫描器”,它就是这样的,不管你什么时候重新进入该应用,它显示的都是扫描的界面。

android:windowSoftInputMode属性详解

android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:

在这设置的值(除”stateUnspecified”和”adjustUnspecified”以外)将覆盖在主题中设置的值

各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

Android属性之excludeFromRecents

Android:excludeFromRecents控制在不在recent列表中显示。

true时不显示;false显示,默认。

运行如下activity后,不会显示在recent列表中。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值