GUI_lite 之 如何选择嵌入式系统的GUI库?

转自 https://blog.csdn.net/idea4good/article/details/94662557

嵌入式系统由于软硬件资源的差异性,往往在选择GUI库时,打伤脑筋;或许有些开发者认为,直接选择Qt就可以了,但实践证明,有些项目走到一半的时候,才发现系统的性能和资源完全喂不饱这个大鳄~~
个人认为嵌入式GUI库需要解决以下问题,才能有效降低嵌入式系统开发的风险:

  1. 可伸缩:
    因为嵌入式系统的资源具有很强的不确定性,既可以富有的像PC一样,也可以有限到单片机的水平(cpu:60MHZ, ram < 32k),所以为了满足各种需要,GUI库也需要具有伸缩性:即可以用来制作很炫,很复杂的GUI效果,也可以作仅有几个按钮的简单GUI;即可以进行复杂的窗口管理、焦点管理、滑动/触控操作,也可以只进行一些简单的背景绘制、按钮响应。简而言之:小可以支持简单的单片机APP,大可以支持PC/手机APP

  2. 开源:
    由于嵌入式的硬件复杂性,调试难度很高,因此几乎要求所有的软件必须开源(甚至操作系统都需要开源)。因为只有开源,才能在调试的过程中获得足够的信息。而作为跟业务有直接联系的GUI软件,更是调试的重中之重,所以GUI库的开源,很多时候是个必选项。

  3. 简单,依赖少:
    GUI作为一个系统的表皮,本身并没有并不承载核心业务,相反是来支持核心业务的。如果GUI库过于复杂,很容易出现喧宾夺主的情况;而GUI又是直接呈现在用户面前的东西,一旦出现瑕疵,几乎无法忍耐,所以工程师花费大量的时间调试GUI代码是很常见的事情。因此简单的GUI库能帮助工程师省心不少。不过,目前看来,很多GUI库都是炫技般的存在,所用的语法和设计思路几乎各不相同,但总的来说很多都是:不走寻常路。有些结构设计起来,虽然很有巧妙,但不太符合直观思维;也常常因为这个原因,也常引来工程师和项目经理之间矛盾。比如,项目经理永远想不通:不就是加个按钮嘛,有那么难吗?

  4. 高度定制:
    用过GUI库的同学,可能都有一个感受:“几乎没有什么GUI可以直接拿来使用”。是啊!任何GUI都不是为你我而生的 – 修改和扩展是必不可少的;另外,GUI风格有时就跟时装一样,每过段时间就需要更新,所以,很多程序员真不喜欢作GUI部分,还是作核心业务好,一旦搞定,可以吃好几年。
    那么既然需要定制、扩展,那么GUI库最好是能够方便高度定制。个人认为,最简单的定制方法,就是直接修改GUI库里面的代码,这样随着时间的推移,对GUI核心的认识也会逐渐提高。如果不想动原始代码,自己独立的作一个控件,则需要GUI库充分放权,让开发者在扩展的过程中能够完全控制住最终GUI效果。

  5. 跨平台:
    跨平台的原因有两个:一个是为了适应嵌入式软硬件的更新;另一个则是为了提高开发速度。因为,今天最理想、强大的开发平台是PC,最好的IDE是VS或VS Code,充分利用这些工具,才能大大提高开发效率。因此,嵌入式软件最好在烧写到硬件前,能在PC环境充分验证;尽量利用Windows,Linux强大的调试工具把问题在PC端解决。开发者不可能每修改一次代码,都下载到硬件上验证,这么作的时间成本过于昂贵。

总结一下上面的要点,除了跨平台以外,在下觉得“简单”是最重要的,如果不简单,上面所有的问题都很难解决。

在下认为目前能满足以上5个条件的GUI库很少,5千行的GuiLite值得大家检验一下。目前GuiLite在Github上已经有近3K star,通过联网统计到的编译次数超过了5千次,实例运行时间超过了1万分钟;文档齐全;实例生动有趣;100%可上编译、运行。好了,上些运行效果,交给大家判断好了:

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值