一般而言,传统嵌入式linux系统开发中,由于芯片性能受限,一般用QT、miniGUI等作为用户界面开发。近年来,随着soc芯片性能的提升,以及B/S开发生态的日益普及,在soc芯片上的嵌入式linux系统上运行浏览器的需求变得旺盛起来。这个方案的优点有:
- 基于web开发的业务可以不做任何更改从PC上迁移过来;
- soc方案的成本相比intel芯片而言大大降低(比如传统的数字标牌上使用的基于intelCPU的工控机);
- 开发成本降低,不需要再开发复杂的QT界面;
该方案要解决的一个关键问题是浏览器如何完美适配到soc芯片上,大部分芯片厂家不会专门为客户定制和维护浏览器。主要的工作有:
- 选择或定制一个合适的桌面linux环境,比如ubuntu、Debian,或基于yocto定制等等;
- 为浏览器进行硬件加速方面的匹配,大部分soc芯片都内置视频编解码的加速模块,比如海思、瑞芯微、MStar等等,一般可以轻松解码4-10路以上1080p@30fps的H265或H264文件;需要将这些芯片的MPP加速模块完美地整合到浏览器的硬件加速接口上。
- 为了保持界面的完整性,一般不会直接运行浏览器,而是编译基于该定制浏览器的CEF或electron开发库,一般嵌入式平台上基于libcef开发比较常见。
工作量最大的部分是硬件加速方面的匹配,好在chromium的硬件加速架构设计的比较灵活,可以灵活匹配各种标准的加速接口。如下图: