概述
• Android应用程序只有两种线程,即UI主线程(UI thread)和工作线程(work
thread)。手机屏幕每秒60帧就不会卡顿,大约16ms刷新一次。Activity的
整个显示过程包括所有View的测量、布局、绘制和计算。这些都是在UI
主线程中完成的。如果这个过程的执行大于16ms,就会影响屏幕刷新和
响应,出现卡顿现象。因此,计算量大的任务要放到工作线程(子线程)
中去完成。
• SurfaceView是View的子类。它使用了双缓冲机制,在新的线程中利用一
个缓冲区绘制好屏幕,然后提交到UI主界面显示它。由于SurfaceView不
会影响主线程的更新速度,它常用于游戏开发和视频播放。
• 由于SurfaceView只能在整个屏幕中而不能作为一个View进行绘制。因此,
Android 4.0中引入了TextureView。
• TextureView是View的子类,它和SurfaceView一样,可以在独立的线程中
绘制和渲染,并利用专用的GPU线程提高渲染的性能。与SurfaceView不
同的是TextureView可以看成和Button、TextView一样的普通控件,可以使
用平移、缩放、旋转等变换,也可以使用View.setAlpha()等操作。
TextureView只能使用在硬件加速开启的窗口中。
• GLSurfaceView是SurfaceView的子类,专门负责OpenGL渲染。
WWW.SYSU.EDU.CN YMZHANG
4