关于安卓AndroidManifest中的application的几个属性

1.android:hardwareAccelerated

     Android3.0 (API level11)开始,Android2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在Viewcanvas上执行的绘制操作.

  启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的viewDrawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力:ApplicationActivityWindowView。我们在application中的定义就属于Application级别,对整个应用启用硬加速。注意:如果你的应用使用了自定义绘制,需要在真实的设备上启用硬加速进行测试来找出问题。

 

2.android:largeHeap

安卓中对于内存的使用是限定的,我们写程序一直是很小心的,担心内存泄漏。但如果真的无法再优化,该怎么办能?3.0以后程序就有largeHeap选项,如果为true,程序可以使用256M(我的设备),可以通过ActivityManager.getMemoryClass(()获取,为false 程序可使用内存为64(我的设备).内存分配原则:刚开始系统会给你程序分配上限是已经使用的内存的一倍左右,当不够用时慢慢调整上限,当超过一定的使用量时,会大幅度调整上限,我在测试时,在64以下调整很小,当使用量超过64M时,系统把内存上限调直接整到了100M以上。前提是在设置 Honeycomb adds largeHeap” 选项后.

3.android:supportsRtl

         所谓RTL,就是指按平常习惯在左的视图都会在右侧,在右侧的视图都会在左侧。例如,在线性布局中第1个子视图默认都是在左上角的,如果采用RTL布局,默认就在右上角了。
         RTL布局默认是关闭的,如果想使用RTL布局,首先要在AndroidManifest.xml文件中将标签的android:supportsRtl属性值设为"true",然后需要将相应视图标签的android:layoutDirection属性值设为"rtl"
如果要使用RTL布局,还应该注意一个重要的问题。假设一个水平线性布局中有两个标签:TextView1TextView2TextView1位于窗口的左上角,而TextVew2TextView1的右侧,到TextView1的距离是100dp。实际上就是TextView2的左边缘到TextView1的右边缘的距离。如果当前是默认布局方式(LTR,从左到右,Left-to-Right),只需要将TextView2android:layout_marginLeft属性值设为"100dp"即可。不过这在RTL布局中却恰好相反。在RTL布局中,TextView1在窗口的右上角,而TextView2却跑到了TextView1的左侧,所以TextView2TextView1的距离实际上变成了TextView2的右边缘到TextView1的左边缘的距离.

Android 4.2开始,Android SDK支持一种从右到左(RTLRight-to-LeftUI布局的方式,在Android 4.2中新加了如下两个布局属性。
android:layout_marginStart:如果在LTR布局模式下,该属性等同于android:layout_marginLeft。如果在RTL布局模式下,该属性等同于android:layout_marginRight
android:layout_marginEnd:如果在LTR布局模式下,该属性等同于android:layout_marginRight。如果在RTL布局模式下,该属性等同于android:layout_marginLeft

 


你可能感兴趣的:(android)