精通嵌入式Linux编程:构建自己的GUI环境

售价 降价通知
市场价 ¥38.61
会员等级价格
  • 上架时间
    2022-03-12
  • 累积评价0人评价

  • 累计销量

  • 赠送积分27

  • 数量
    减少数量 增加数量   有货
平台自营
商家名称:
标准查询网
客服邮件:
2591325828@qq.com
客服电话:
010-62993931
在线客服:
QQ

扫一扫,手机访问微商城

推荐精品

同类品牌

最近上新

  • 商品名称:精通嵌入式Linux编程:构建自己的GUI环境
  • 商品编号:10003933
  • 品牌:
  • 上架时间:2022-03-12
精彩书摘:
  这时候就需要一个“技术部经理”出来说话,他来协调每个人发言的时间,以便每个人表达的信息都能为别人所了解。那么这个协调与被协调的关系算不算是一个客户机/服务器结构呢?一般意义上讲应该说不算,因为所谓客户机/服务器结构应该是:客户机发出请求,服务器进行处理,并将处理的结果返回到客户机。技术部开会的时候并不是每个工程师发请求到技术部经理,由技术部经理完成处理后返回信息到工程师。在这个系统中,技术部经理只是一个协调者的角色,而不是服务者的角色,所以并不是通常意义上讲的客户机/服务器结构。但是另一方面,客户端有胖瘦之分,客户端要求服务器端处理的事情可能很复杂,也可能很简单。在很复杂的情况下,客户端很少自己做事情,大部分事情都由服务器端完成;相反,客户端可能要求服务器做很少的事情,大部分事情由自己完成。无论何种情况,它们之间有一个请求与被请求的关系、协调与被协调的关系。所以,在这里不必过多讨论这是不是严格意义上的客户机/服务器结构,姑且认为协调者的角色就是服务器,被协调者的角色就是客户机。
  在多个进程同时运行的情况下,任何一个进程在对屏幕进行输出的时候,都需要了解当前屏幕上的哪些区域是町以输出的,哪些区域是不可以输出的。具体实现的时候,有两种方法:一是所有的输出都由一个服务进程来完成,由这个服务进程来确定当前对于哪些屏幕区域的输出请求是允许的,哪些是不允许的,这样就避免了多个进程对于屏幕区域的竞争;另一种方法就是其他进程只从服务进程那里请求并得到允许输出的区域,而具体的输出操作由自己完成。前一种方法面临的问题是需要在进程之间不停地传递大量数据。不同进程之间除非通过IPc,否则因为不同的进程空问不允许互相访问数据,大块的数据需要在进程之间传递,这是非常耗费资源的操作,这在嵌入式环境中更是不可取的。而后一种方法需要输出的进程只请求允许输出的屏幕区域,输出的操作由进程自己完成,相对而言.效率会有很大提高。而LGUI就是采取了这种方式。
  4.1.4 为什么要多进程
  从GUI的角度讲,多进程实际上是多个进程对于屏幕的输出管理。如果有很多进程在同时运行,但并没有屏幕输出的要求,就谈不上多进程的管理。
  LGUI是一个支持多进程、多线程的客户机/服务器系统。为什么要多进程?单个进程不是更简单吗?
  当然,并不是所有的嵌入式环境都要求多个进程同时运行,或者同时要求进行屏幕输出。例如,一个机顶盒的GUI系统,就不会这样复杂。但在一些复杂的嵌入式环境中,多进程是必需的,例如PDA等。不能要求用户在PDA中添加一项功能,就重新将系统编译一下。
内容简介:
  本书针对使用Linux构建嵌入式系统的一个关键环节——图形用户界面(GUI),首先讲述了Linux编程的高级技巧,包括多进程、多线程等技术;然后通过实例重点讲述了窗口系统的基本知识与实现技巧,为读者开发自己的面向嵌入式Linux的GUI环境提供了一个参考实现范例。重点包括:LGUI多窗口的设计与实现、LGUI的消息管理、窗口与无效区的管理、设备上下文与图形设备接口的设计与实现等。
  本书适用于使用Linux构建嵌入式系统的软件工程师以及希望深入了解窗口系统实现原理的读者。
目录:
第1章 概论1
1.1 嵌入式系统的基本概念1
1.2 嵌入式系统的特征1
1.3 选择Linux构建嵌入式系统2
1.4 GUI在嵌入式Linux系统中的地位及要求3
1.5 用户界面概况4
1.5.1 用户界面的历史4
1.5.2 图形用户界面的特征4
1.5.3 图形用户界面系统的结构模型5
1.5.4 用户界面的发展:GUI+新人机交互技术6
1.6 Linux图形环境及桌面平台简介6
1.7 各种嵌入式Linux上的图形库与GUI系统介绍13
1.7.1 Qt/Embedded13
1.7.2 MicroWindows/NanoX14
1.7.3 MiniGUI15
1.7.4 OpenGUI16
1.7.5 GTK+17
1.8 Linux系统中的多语言问题18
1.9 一个嵌入式LinuxGUI系统开发的实例21
1.9.1 开发GUI系统主要考虑的问题22
1.9.2 后续讲解的实例24

第2章 Linux基本编程知识25
2.1 编译器的使用25
2.2 函数库的使用27
2.3 Makefile28
2.4 GDB30
2.5 建立交叉编译环境34
2.5.1 什么是交叉编译环境34
2.5.2 交叉编译的基本概念34
2.5.3 建立arm_linux交叉编译环境34
2.6 Linux下常见的图形库编程简介42
2.6.1 Qt43
2.6.2 GTK+57

第3章 Linux高级程序设计简介62
3.1 LinuxIPC介绍62
3.1.1 信号63
3.1.2 管道68
3.1.3 消息队列71
3.1.4 信号量71
3.1.5 共享内存71
3.1.6 DomainSocket73
3.2 Linux多线程编程介绍77
3.2.1 创建线程78
3.2.2 线程的退出与取消81
3.2.3 线程退出时的同步问题83
3.2.4 线程清理函数83
3.2.5 线程取消状态84
3.2.6 线程同步84
3.2.7 第三方函数库94
3.3 FrameBuffer编程简介95

第4章 基本体系结构100
4.1 基础知识100
4.1.1 嵌入式Linux的GUI到底有什么用100
4.1.2 如何定义基本体系结构101
4.1.3 为什么用客户机/服务器结构101
4.1.4 为什么要多进程102
4.1.5 为什么要多线程103
4.2 体系结构综述103
4.2.1 客户机与服务器之间的通信通道103
4.2.2 客户机需要与服务器交换什么信息105
4.2.3 服务器对客户机进程的管理107
4.3 进程创建与进程的管理109

第5章 多窗口的设计与实现110
5.1 窗口树110
5.2 窗口的Z序112
5.3 窗口的剪切与剪切域112
5.3.1 如何生成窗口剪切域112
5.3.2 窗口/控件剪切域的生成过程113
5.3.3 窗口剪切域的存储方法114
5.4 进程主窗口的初始剪切域与进程内窗体剪切域115
5.5 客户端对剪切域的管理116
5.6 窗口类的注册管理117
5.6.1 注册内容118
5.6.2 如何管理注册窗口类118
5.6.3 注册窗口类如何发挥作用121

第6章 GUI中的消息管理123
6.1 外部事件收集与分发123
6.2 消息队列125
6.3 GUI的消息125
6.3.1 LGUI的消息队列结构126
6.3.2 通知消息(NotifyMessage)128
6.3.3 邮寄消息129
6.3.4 同步消息131
6.3.5 绘制消息132
6.3.6 其他消息发送方式134
6.4 LGUI中消息堆的内存管理134

第7章 窗口输出及无效区的管理137
7.1 窗口的客户区与非客户区137
7.2 坐标系统137
7.3 输出管理机制138
7.4 无效区139

第8章 DC与GDI的设计与实现142
8.1 设备上下文DC的描述142
8.2 GDI145
8.3 预定义GDI对象的实现145
8.4 GDI对象的描述结构及创建方法146
8.5 将GDI对象选入DC中147
8.6 GDI绘图及优化147
8.7 图形库156
8.7.1 GD156
8.7.2 Cairo157
8.7.3 AGG157
8.7.4 GDI与GDI+160

第9章 控件实现163
9.1 如何实现一个控件163
9.2 不同消息的处理过程169

第10章 定制GUI对图像的支持174
10.1 GUI中图像解码的基本需求174
10.2 BMP文件175
10.3 JPEG文件176
10.4 GIF文件177
10.5 PNG文件178

第11章 字库及输入法的实现180
11.1 字符集与字符编码180
11.1.1 ASCII码180
11.1.2 DBCS双字符集180
11.1.3 Unicode181
11.2 在嵌入式GUI中如何支持字符集与编码183
11.3 在GUI中选择合适的字符集184
11.4 关于字库的问题185
11.5 FreeType189
11.6 输入法192

第12章 GUI的移植194
12.1 操作系统适配层194
12.2 输入设备的抽象198
12.3 显示设备的差异199

第13章 LGUI应用开发模式200
13.1 应用开发的模式200
13.2 开发调试方法202
13.3 应用程序简例203

第14章 GUI系统的效率问题206
后记——LGUI开发的一些体会208
参考文献210
商品评价
  • 0%

    好评度

  • 好评(0%)
    中评(0%)
    差评(0%)
  • 全部评价(0)
  • 好评(0)
  • 中评(0)
  • 差评(0)
  • 用户晒单(0)
售后保障
售前服务电话:010-62993931
售后服务电话:010-62993931
本商城向您保证所售商品均为正品行货。本商城还为您提供具有竞争力的商品价格和运费政策,请您放心购买!

注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!若本商城没有及时更新,请大家谅解!
权利声明:
本商城上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是标准查询网重要的经营资源,未经许可,禁止非法转载使用。

注:本站商品信息均来自于厂商,其真实性、准确性和合法性由信息拥有者(厂商)负责。本站不提供任何保证,并不承担任何法律责任。

常见问题
下单后可以修改订单吗?

由本网站发货的订单,在订单发货之前可以修改,打开“订单详情”页面,若已经出现物流信息,则表示订单无法修改。

无货商品几天可以到货?

您可以通过以下方法获取商品的到货时间:若商品页面中,显示“无货”时:商品具体的到货时间是无法确定的,您可以通过商品页面的“到货通知”功能获得商品到货提醒。

订单如何取消?

如订单处于暂停状态,进入“我的订单"页面,找到要取消的订单,点击“取消订单”按钮,若已经有物流信息,则不能取消订单。

可以开发票吗?

本网站所售商品都是正品行货,均开具正规发票(图书商品用户自由选择是否开发票),发票金额含配送费金额,另有说明的除外。

如何联系商家?

在商品页面右则,您可以看到卖家信息,点击“联系客服”按钮,咨询卖家的在线客服人员,您也可以直接致电。

收到的商品少了/发错了怎么办?

同个订单购买多个商品可能会分为一个以上包裹发出,可能不会同时送达,建议您耐心等待1-2天,如未收到,本网站自营商品可直接联系标准查询网在线客服。

如何申请退货/换货?

登陆网站,进入“我的订单”,点击客户服务下的返修/退换货或商品右则的申请返修/退换货,出现返修及退换货首页,点击“申请”即可操作退换货及返修,提交成功后请耐心等待,由专业的售后工作人员受理您的申请。

退/换货需要多长时间?

一般情况下,退货处理周期(不包含检测时间):自接收到问题商品之日起 7 日之内为您处理完成,各支付方式退款时间请点击查阅退款多久可以到账;
换货处理周期:自接收到问题商品之日起 15 日之内为您处理完成。

温馨提示

确定取消
温馨提示

关闭
您尚未登录

用户登陆

立即注册
忘记密码?