-
Notifications
You must be signed in to change notification settings - Fork 283
SOUI特点
原文链接:《UI神器-SOUI》
-
使用层:高速,稳定,美观,可配置
-
代码层:精心设计,模块低耦合,插件化设计,对象可靠的命令周期管理,类似WTL的编码方式,现代化的事件处理模型及优异的扩展能力。
-
代码量:核心模块代码量4W+,编译后DLL Release版本在900K左右。得益于精心组织的代码框架,虽然代码量较Duilib这样的UI库有比较大的提高(核心框架更完善,控件更多,注释量更大),但是阅读代码还是很轻松的(大量实际用户的亲身体验)。
-
高速:主要体现在3个方面:
[1] 框架设计扁平化,层次简单(和QT相比):从宿主窗口收到消息到控件响应消息只有一个中间层。
[2] 简单有效的刷新策略:通过对剪裁区及刷新时机的有较控制, 能有效的提高刷新效率。
[3] 高效的渲染引擎:通过 将渲染引擎接口化,成功的将skia渲染引擎引入到SOUI中,Skia是Google的Chrome的渲染引擎,Chrome比IE渲染速度快,Skia功不可没。
-
稳定性:SOUI脱胎于Bkwin,再经过本人的不断精心重构,已经在多个大量用户的产品中应用,包括最近开发的瑞雪医生客户端,多玩魔盒2.0, Dota2游戏盒子及多玩多个游戏盒子中使用, 及百度云管家的大部分界面。 百度云管家据说最初使用的是腾讯QQ界面库的早期版本(无从考证),然而QQ界面库大量使用COM技术,扩展非常麻烦,使用很是不便,在后续的UI需求中开始大量使用SOUI的前身DuiEngine。
-
美观:SOUI原生支持Alpha通道,能够实现各种半透明效果,包括主窗体半透明,DUI窗口半透明,DUI窗口模仿LayeredWindow(分层窗口)效果等,轻松实现各种异形效果。
-
可配置:SOUI中所有UI资源都采用XML描述,调整UI效果一般只需要修改XML资源即可完成。
说到代码层的设计很难用语言描述,只有亲自阅读代码方能理解。为大部分需要在外部(APP层)经常引用的UI相关对象提供引用计数设计能够有效减少C++开发中常见的野指针问题,这一点还是很好体会,同时系统中也重点解决了如消息分发的分层设计,窗口对象的消息重入等影响UI使用体验的关键性问题。
UI? just so so!
- 第一篇:SOUI是什么?
- 第二篇:SOUI源码的获取及编译
- 第三篇:用SOUI能做什么?
- 第四篇:SOUI资源文件组织
- 第五篇:在SOUI中使用XML布局属性指引
- 第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源
- 第七篇:创建一个SOUI的Hello World
- 第八篇:SOUI中控件事件的响应
- 第九篇:在SOUI中使用多语言翻译
- 第十篇:扩展SOUI的控件及绘图对象
- 第十一篇:SOUI系统资源管理
- 第十二篇:SOUI的utilities模块为什么要用DLL编译?
- 第十三篇:在SOUI中使用有窗口句柄的子窗口
- 第十四篇:在SOUI中使用定时器
- 第十五篇:在SOUI中消息通讯
- 第十六篇:SWindow的布局属性pos2type及offset
- 第十七篇:使用窗口的cache属性加速SOUI的渲染
- 第十八篇:在SOUI中实现PreTranslateMessage
- 第十九篇:提高SOUI应用程序渲染性能的三种武器
- 第二十篇:在SOUI中使用分层窗口
- 第二十一篇:SOUI中的控件注册机制
- 第二十二篇:在SOUI中使用代码向窗口中插入子窗口
- 第二十三篇:在SOUI中使用LUA脚本开发界面
- 第二十四篇:导出SOUI对象到LUA脚本
- 第二十五篇:在SOUI中做事件分发处理
- 第二十六篇:两个SOUI新控件 ---- SListView和SComboView
- 第二十七篇:SOUI中控件属性查询方法
- 第二十八篇:SOUI中自定义控件开发过程
- 第二十九篇:使用SOUI的SMCListView控件
- 第三十篇:SOUI模块结构图及SOUI框架图
- 第三十一篇:SOUI布局之相对于特定兄弟窗口
- 第三十二篇:在SOUI2.0中像android一样使用资源
- 第三十三篇:使用uiresImporter生成uires.idx及skin.xml
- 第三十四篇:在SOUI中使用异步通知
﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊
This wiki is created by [SOUI Team]