• 整理安卓小知识


    一、一般把UI 布局文件放在layout文件夹下,如果要支持橫屏,就会取同名的layout放在layout-land文件夹下。

    -res/layout-land 横屏  -res/layout-port 竖屏  -res/layout 默认

    还有layout-finger, layout-land-finger, finger使用在对手指触摸支持很好的屏幕(finger-friendly touchscree)。
     

    二、硬件加速使用GPU进行View上的绘制操作http://developer.android.com/guide/topics/graphics/hardware-accel.html。

      你可以在以下级别上分别控制硬加速:

      Application  Activity  Window  View

    Application级
      在你的manifest文件中,把以下属性添加到<application>标签来对你的整个应用启用硬加速:

      <applicationandroid:hardwareAccelerated="true" ...>

    Activity级
      如果你的应用在全局启用硬加速时行为不正确,你可以对个别activities单独启用硬加速.欲在actvity级别启用或禁止硬加速,你可以对<activity>元素使用android:hardwareAccelerated属性.下面的   例子在整个应用中启用了硬加速但对一个activity禁止了硬加速:

      <applicationandroid:hardwareAccelerated="true">

      <activity... />

      <activityandroid:hardwareAccelerated="false" />

      </application>

    Window级
      如果你需要更高颗粒度的控制,你可以使用以下代码为一个window启用硬加速:

      getWindow().setFlags(

      WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

      WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

    View级

      你可以在运行时使用以下代码禁止个别的View的硬加速:

      myView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

       注:当前你不能在View级别启用硬加速.View层有除禁止硬加速之外的其它功能.

      判定一个View是否能被硬加速

      有时一个应用了解是否启用了硬件速是很有用的,对那些自定义View之类的东西尤其重要.在你的应用做了一些不被最新的管线所支持的自定义绘制时这更加重要.

      有两种方法可以检查应用是否被硬加速:

      View.isHardwareAccelerated():如果View附加到一个硬加速的window上就返回true.

      Canvas.isHardwareAccelerated():如果Canvas被硬加速了就返回true.

      如果你必须在你的绘制代码中做这个,应使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().当一个view附加到一个硬加速的window上,它仍可以使用非硬件速的       Canvas进行绘制操作.比如当为了高速缓存而把一个view画到一个bitmap中.

    三、android:largeHeap设定launcher运行时最小堆内存,避免内存out of memory错误的出现。

     

  • 相关阅读:
    Api记录
    选择排序、冒泡排序、二分查找(折半查找)
    inline关键字
    c++,虚函数,单继承,多继承虚表剖析
    关于类模版迭代器提出时的错误
    关于类模版迭代器提出时的错误2
    菱形继承,多继承,虚继承、虚表的内存结构全面剖析(逆向分析基础)
    VC++错误调试
    引用计数
    选择
  • 原文地址:https://www.cnblogs.com/lyz459/p/2695941.html
Copyright © 2020-2023  润新知