Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 953|回复: 0
打印 上一主题 下一主题

360 客户端是用什么框架做的?

[复制链接]

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
跳转到指定楼层
楼主
发表于 2023-3-11 17:51:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在当今,在PC上做个客户端也依然充满挑战:
1.运行速度要快,体验要好
2.兼容XP,WIN7+
3.开发速度快,易修改。
4.开发人员易掌握。
5.客户端不要太大。

各类需求,导致在当今开发一个PC客户端依然不容易。
C#系的,WINFORM/WPF 可能在XP下客户没有装环境。
CEF系的,安装包太大。
MFC/WTL系的,招人都困难,改起来也不快。

就不说易于跨平台吧,我认为没这种银弹,那种跨平台的QT连个字体都怪怪的。

像360这样的客户端是用什么做的,基本可以肯定他是HTML部局的。




作者:程曦铭
链接:https://www.zhihu.com/question/22606115/answer/21964916
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

DirectUI框架,代表开源项目是DuilibDirectui是一套开发理念,其主要的思想就是主窗口有句柄HWND,但是子控件Button List 等等都是无窗口句柄的,使用spy++无法抓取控件的HWND,代表性的开源项目是Duilib : duilib - windowless ui, directui
他使用XML作为其窗口布局描述,使用C/C++处理控制逻辑,最成功的项目莫过于QQ的UI了,标准的DirectUI。
Duilib 360demo 更多详情参考Google Code SVN ->
Changes -  duilib -   windowless ui, directui
Duilib商业产品
酷我音乐盒
华为网盘

百度杀毒
附加 迅雷的bolt也是DirectUI的代表作品 但是开放性比较严格 代码没有开源


作者:findyi
链接:https://www.zhihu.com/question/22606115/answer/1904264283
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这题我太会了!
曾经的360技术总监,360技术委员会成员来强答一波。
先说答案:DirectUI
它是一套开发理念,并不是具体的技术,当然大部分DirectUI基于C++实现,这是因为C++效率高、贴近底层操作系统。
DirectUI的关键点是直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。
DirectUI最初是微软搞出来应用于Windows XP,Vista,Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播放器,即时通讯工具MSN Messager等。
随后国内但凡牛逼点的厂商都逐步开始跟进这种框架设计思路。DirectUI好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。DirectUI能很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。
(PS:觉得写得不错的话,记得帮我双击来个赞哈~,在这里送大家一份超赞的计算机学习资料,书单链接:
简单说下DirectUI的优势,这些优势用Win32控件方式很难实现:
  • 界面完全换肤
  • 更高的效率
  • 容易实现更加炫丽的动态效果
  • 防止软件被破解,防外挂
  • 界面与逻辑的完全分离(需要完整脚本支持)
DirectUI比较成功的开源项目是Duilib :duilib - windowless ui, directui​code.google.com/p/duilib/
使用XML控制窗口布局描述,程序逻辑用C++实现,简单看下duilib的UI架构图:
其实核心思想是从基础搭建更复杂的控件。
国内有很多基于Duilib研发的成功商业项目:
1.酷我音乐盒

2.迅雷看看

3.百度杀毒


dui 话说dui的技术已经比较成熟了,但是pc没多大搞头了。但是UI引擎其实是一个很复杂的活,问题在于就算360 和 QQ 做的在牛逼也不是很难的。并不是布局和xml配置。说实话这部分是非常简单,就算模拟一个安卓一样的布局都很简单。而且安卓还不支持控件zorder。所谓图形引擎的难点其实在于VG,什么是VG 就是矢量渲染。在Windows上面有的实现是 GDI 。 还有Google的SKIA还有很有名气的 AGG。但是到目前为止还没有一个国人开源的VG的渲染库。这个的确难搞,不然Google也不会高价收购skia
但是windows已经没多少搞头了。毕竟市场已经被瓜分完毕了。但是某些场景下还是可以搞下。比如我在嵌入式环境下搞的,基于嵌入式ARM芯片的UI引擎

这个是测试的demo 在嵌入式中模拟的windos的界面。 原理和windows的DUI一样,只是VG的部分用opengl来实现的。 总体上来讲已经实现xml配置 ,自动化的布局系统,类型系统,控件体系等等。(还有脏区域重回 碰撞检测 但是由于性能的问题暂时去掉了) 对比嵌入式linux界面开发 windows客户端的界面开发简直是天堂。






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-25 11:28 , Processed in 0.058423 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表