欢迎来到天天文库
浏览记录
ID:9725795
大小:66.50 KB
页数:11页
时间:2018-05-06
《嵌入式 linux 智能设备应用中 web 支持的实现,第 1 部分:在设备上提供常规 web 功能的支持》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、嵌入式linux智能设备应用中web支持的实现,第1部分:在设备上提供常规Web功能的支持 嵌入式Linux智能设备开发的现状 近几年,嵌入式Linux在智能设备中的应用发展的非常迅速。可以预见,嵌入式智能设备和我们的生活将会越来越密不可分。 Linux在嵌入式系统中的应用可以分为两大类:面向服务类和面向应用类。典型的面向服务类系统有交换机、路由器、监控设备等;典型的面向应用类的系统有、PDA、机顶盒等。本文主要讨论面向应用类,特别是指带有网络和UI的应用系统。 在嵌入式Linux上进行带UI的应用程序开发是一件非常复杂的事情,主要涉及以下几个方面: UI系统 Linux本身的
2、UI系统并不统一,嵌入式版本上的UI系统更是五花八门,而且与其PC版本相比也有一些适应性的改变。而有些产品的开发甚至不使用UI系统,通过直接往framebuffer贴图的方式来实现UI。而且与PC相比,嵌入式系统的性能问题,也让嵌入式的UI系统在表现上做出很多妥协。这些都使得开发难度增加,带来更多的不兼容问题。这些都使嵌入式Linux上的应用开发和移植变得更加困难,另外也使培养一名合格的嵌入式工程师的成本变的比较高。 厂商支持 对于一个嵌入式平台,其主芯片的生产商对这个平台影响巨大。一般来说,生产商会提供对某个或者某些UI系统的支持,但是他们不可能支持所有的系统。所以,选定一个嵌入式平
3、台就意味着开发团队需要切换到这个平台所能支持的UI平台上。这个团队之前做的应用就需要移植到新的UI平台,而这个移植是非常麻烦的。 浏览器 嵌入式Linux的网络接口一般都支持posix的标准,但是嵌入式设备的浏览器则与UI系统一样是五花八门的。在应用的推动下,嵌入式Linux平台上的浏览器在近年发展也非常迅速。他们基于不同的UI平台进行开发(也有一些直接操作framebuffer),对L标签,优秀的产品则能在兼容性上做到与PC平台上的浏览器几乎同样的水平。编缉推荐阅读以下文章暂无相关文章 服务器技术 很多嵌入式应用需要与服务器进行连接,点菜机就是一个典型的应用。手持智能设备端需要将
4、用户的操作写入远程的服务器,然后远程的信息管理系统进行进一步的处理。这种类型的应用对于PC平台来说就是一个非常简单的数据库应用系统,数据库、远程调用、并发、中间件等技术已经应用了多年,而且还有众多成熟的企业应用的框架,可以灵活而快速的搭建出一个系统。但是这些在嵌入式平台都是不存在的,这意味着开发人员还需要用相当于PC平台十几年前的水平来进行开发,为了让嵌入式系统和服务器的数据库进行对接,开发人员还需要在服务器端编写一个专门的程序来充当桥梁的作用。笔者见过在不少项目里还需要直接控制socket来和服务器进行数据交换,这些对于PC平台都是不可想象的。另外开发一个支持多个客户端并发的稳定服务器程
5、序并不是一件容易的事情,这些问题都会影响整个嵌入式开发过程的成本和质量。 如果一个公司希望在某个嵌入式Linux平台上开发一个包含了e等浏览器均使用了bedded-Linux-opensou1234下一页——感谢阅读这篇文章,..,rce-src-4.5.3src3rdpartyL,constQUrlbaseUrl=QUrl());编缉推荐阅读以下文章暂无相关文章 这两个函数可以让QWebVieetry( 50 , 50 , 400 , 300 ); view -> show(); view -> load( QUrl(".google.") ); 设备网络配
6、置好之后,运行程序,我们就可以看到在窗体中有一个区域显示出google的主页(编译的时候要注意在项目的pro文件中包含WebKit的头文件路径和动态库)。可见,Qt已经将WebKit做了很好的封装,子应用程序中加入网页浏览功能是非常方便的。 如果希望能知道网页加载的进度,可以通过如下的代码来实现: 首先实现槽函数的定义:清单2.槽函数的定义 Private slot: void setProgress(int progress) { // progress,即百分比进度 } void loadFinished() { // 表示网页加载完毕 } 编缉推荐阅读以下文章
7、暂无相关文章 第二步连接Qt的信号与槽函数:清单3.连接Qt信号与槽函数 connect(view , SIGNAL(loadProgress(int)), this, SLOT(setProgress(int))); connect(view , SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); 这样,在程序中加一个进度条表示网页加载过程就实现了。
此文档下载收益归作者所有