首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在嵌入式环境中使用html呈现程序

在嵌入式环境中使用html呈现程序
EN

Stack Overflow用户
提问于 2012-02-22 16:18:16
回答 3查看 10.5K关注 0票数 30

我正在进行一个项目,在这个项目中,我将为嵌入式设备设计一个GUI,并且很乐意使用HTML来实现这个功能。我希望你们能帮我找到一个符合我需要的渲染引擎。

要求:

  • 网页必须呈现到内存缓冲区中.然后,我将把内存缓冲区传输到显示器上。
  • 必须通过回调或事件通知我,呈现引擎需要获取一个新项。HTML页面、图像等。这样做的原因是,我必须获取资源并将其提供给呈现引擎(原因是设备在所有配置中都没有TCP/IP,然后需要通过串口获取项,而且为了安全起见,我需要验证请求是否被允许)。
  • 我必须能够将鼠标和键盘事件注入渲染引擎。
  • 只有C和/或C++
  • 必须易于移植,并且缺乏对仅存在于win/linux/mac的库的依赖。我的设备运行自定义操作系统..。
  • 很小的占用空间和内存消耗,在呈现过程中,我可能可以使用10 MB内存和5-10 MB分配的内存。但仅此而已。
  • 欢迎开放源码和商业解决方案。
  • 我不需要完全的HTML5和CSS3支持,我的意思是,如果我可以使用“基本的HTML和一些CSS”,我非常高兴。

我看过一些WebKit,铬,壁虎,氦气和豆类,但没有发现它们真的适合我的需要。

外面有什么接近我需要的东西吗?还是应该放弃这个想法,以其他方式构建GUI?我很感激你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-15 20:45:06

问得好!事实证明,在这个空间中有一些选项,正如您所推测的,其中许多选项都是基于Webkit的。不过,其中一些并不是,我相信你最感兴趣的就是这些。

链接

为了满足您的需要,最简单的第0级浏览器是链接网页浏览器的图形版本。它是一个合适的跨平台(诚然,您将需要一些来自西格温 for Windows环境的库),开源,具有较小的内存占用,并且在它的一些分叉或增强的化身(例如,艾林克斯)中,具有增强的功能,比如Javascript支持、完整的鼠标功能,以及您在问题陈述中希望得到的提示。

当然,它是用C写的。

Konqueror/Embedded

在这个领域中探索一些其他选项,Konqueror/Embedded是未来需要考虑和关注的东西。是的,它是基于Qt/Embedded和Webkit (喃喃咕哝),但他们的目标是提供一个精简版本的浏览器和他们的库堆栈,以具体满足这一需求。再一次,Windows将是一个奇怪的孩子,但它是可行的。

芬尼克

最后一个要探索的跨平台选项是Mozilla,芬尼克的苗条版本。尽管Mozilla提供了更大的代码基础,但它的嵌入式版本开发非常积极,您可以在这里提供的任何帮助都将是非常感谢的。据我所知,精简后的版本仍然是前置alpha (然而,芬奈克却活在),但它应该成为未来可行的选择。

还有很多其他人要去探索

除了目前在这一领域竞争的各种web浏览器。之外,诸如蚂蚁Galio这样的专有选项也可以满足您的需要。似乎还有许多其他的专有解决方案,但其中大多数(例如,手机流动Safari)只为少数平台服务。好的、专有的、跨平台的、不基于Webkit的解决方案似乎非常罕见。

SpliFF还在他的回答中提供了一个很好的建议:如他所建议的那样尝试,它是轻量级的、跨平台的、当前和主动维护的、易于连接到的,以及提供您所寻找的自动化案例。。在本例中,它是用C++编写的,为了更方便,使用了Python绑定

总结说,考虑到您的需要,仍然需要评估上面列出的选项的优点、弱点和API规范。

我建议从链接开始,因为它是功能最丰富和最健壮的选项,同时在非常小的内存占用和代码库上进行优化。它最大的优点是,这从一开始就是一个设计目标,整个代码树的构建都考虑到了这种设计理念。

让我们知道你想要什么。这是社区中非常普遍的需求,我相信其他人会从您的经验中受益。

票数 31
EN

Stack Overflow用户

发布于 2012-04-20 15:30:10

看看[医]水晶。它满足了HTML+CSS、轻量级、处理事件和向缓冲区呈现的要求。我最近看了一堆项目,寻找的基本上是你要求的,这就是我发现的匹配。

libRocket是基于C++和CSS标准的C++用户界面中间件包。它被设计成一个完整的解决方案来满足任何项目的接口需求。 libRocket使用了经过时间测试的开放标准HTML5 1.0和CSS2.0 (同时借用了HTML5和CSS3的特性),并将它们扩展为适合于实时应用程序的特性。因此,您不必像在这个中间件空间中的其他包那样学习一种全新的专有技术。

  • 跨平台架构(Windows、Mac、Linux、iPhone、.)。
  • 动态布局系统
  • 高效的应用程序的造型,一个定制的模板引擎.
  • 功能齐全的用户控制集:按钮,滑块,下拉式等.
  • 运行时可视化调试套件。
  • 易于集成和扩展Python脚本。
  • 抽象接口,用于插入任何游戏引擎( OpenGL、DirectX和Ogre3d的示例)。
  • 装饰引擎允许自定义应用程序特定的效果,可以应用于任何元素。
  • 与现有项目无缝绑定的通用事件系统。
票数 11
EN

Stack Overflow用户

发布于 2012-04-18 23:47:04

看看DS组织,一个自制的DS浏览器,还有谷歌的ES操作系统 (一个最初由任天堂开发的操作系统)。

我建议查看DS组织,因为任天堂DS只有4MB的内存(8MB的内存扩展,大多数DS浏览器使用)。而且您也可以通过直接呈现到VRAM,节省几个100 of,这取决于您的内存模型,以及您在VBlank之外使用VRAM的自由程度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9398650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档