界面UI 部分

2015-03-06 党洁 更多博文 » 博客 » GitHub »

原文链接 https://jiedang.github.io/2015/03/06/%E7%95%8C%E9%9D%A2%E4%BC%98%E5%8C%96.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


界面优化

需要注意的点总结如下

  1. 采用硬件加速,在androidmanifest.xml中application添加 android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。

  2. View 中设置缓存属性. setDrawingCache为true.

    1. 优化你的布局。通过Android sdk中tools目录下的layoutopt 命令查看你的布局是否需要优化。
    2. 动态加载View. 采用ViewStub 避免一些不经常的视图长期握住引用.
  3. 将Acitivity 中的Window 的背景图设置为空。getWindow().setBackgroundDrawable(null); android的默认背景是不是为空。

  4. 采用 优化布局层数。 采用来共享布局。

  5. 查看Heap 的大小

    1. 利用TraceView查看跟踪函数调用。有的放矢的优化。
  6. cursor 的使用。不过要注意管理好cursor,不要每次打开关闭cursor.因为打开关闭Cursor非常耗时。Cursor.require用于刷新cursor.

  7. 采用环形Buffer(可以采用链表数据结构实现)。可以设置一个链表长度的上限,根据手势的变化来不断地更新环形Buffer的内容。

  8. 采用SurfaceView在子线程刷新UI, 避免手势的处理和绘制在同一UI线程(普通View都这样做)。

  9. 采用JNI,将耗时间的处理放到c/c++层来处理。

  10. 有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右。

  11. 懒加载和缓存机制。访问网络的耗时操作启动一个新线程来做,而不要再UI线程来做。