设为首页 加入收藏

TOP

Android显示系统之View与SurfaceView更新屏幕的区别
2014-11-24 11:04:09 来源: 作者: 【 】 浏览:0
Tags:Android 显示系统 View SurfaceView 更新 屏幕 区别

1、View






2、


Android更新屏幕主要有两种方式,继承SurfaceView实现SurfaceHolder.callback接口来实现屏幕的更新。


或者直接继承View类,复写OnDraw方法实现更新屏幕。


事实上,两种是用本质的区别的。


3、View与SurfaceView更新屏幕的区别



对于SurfaceView更新屏幕,是在非UI线程(主线程)中更新的。而对于View,则是在UI的主线程中更新画面。
那在UI的主线程中更新画面很容易造成主线程的堵塞,造成程序的长时间无响应,当主UI线程超过5秒钟没有响应用户的操作,Android系统会提示是否关闭应用程序。


当使用SurfaceView 来更新画面的话,就不必担心堵塞主UI线程这个问题了。但是这也带来了另外一个问题,线程的同步性。


所以当更新操作说花的时间较长,而且数据量较大的话,一般采用SurfaceView方式更新屏幕,而少用View。


4、Demo程序






打开下面的代码,测试堵塞主UI线程(长按屏幕5秒以上)就会出现如下的图。




】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android图形系统之Surface、Surfa.. 下一篇Android显示系统之Pixel、Bitmap..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis压力测试实战 - (2025-12-27 09:20:24)
·高并发一上来,微服 (2025-12-27 09:20:21)
·Redis 高可用架构深 (2025-12-27 09:20:18)
·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)