嵌入式系统 第十四讲 嵌入式GUI及应用程序设计

发布于:2025-02-11 ⋅ 阅读:(85) ⋅ 点赞:(0)

• 14.1 嵌入式GUI设计概述

• 14.1.1 嵌入式GUI简介

GUI:Graphical User Interface,图形用户界面

– 嵌入式GUI设计包括以下3个方面的内容:

         ① 硬件设计:通过LCD控制器,将LCD显示器与开发板连接起来

        ② 驱动程序设计:为LCD设计驱动程序,并移植嵌入式GUI系统,为上层应用程序设计提供 图形函数库

        ③ 用户界面程序设计:使用嵌入式系统提供的函数库,进行图形化应用程序设计。

– 嵌入式GUI分为以下3大类:

        ① 与操作系统结合的GUI:这些GUI一般由有操作系统开发实力的大公司开发,如微软的 Windows Phone(其前身是Windows CE和Windows Mobile)、苹果公司的iOS等。

         ② 外挂GUI:这些GUI通常基于操作系统运行向应用层提供开发接口,如AndroidQt/E、 MiniGUI、Microwindows等。

        ③ 简单GUI:这些GUI通常与应用程序结合在一起,可重用性较差

• 14.1.2 嵌入式GUI设计需求

– GUI系统需要完成的主要功能是:

        ① 提供桌面和窗口管理功能。可同时运行多个应用程序,创建多个窗口。可 对创建的窗口进行显示、隐藏、移动、改变大小等操作。

        ② 提供多种窗口组件界面。如光标、菜单、按钮、编辑框、列表框、静态控 制框、滚动条、对话框和默认窗口等多种窗口界面对象。

        ③ 提供图形操作。编写的应用程序能够绘制各种复杂图形,还可以填充任何 闭合区域,如绘制直线、圆、曲线、矩形等图形。

        ④ 支持基本的输入输出硬件设备。能够通过各种输入设备,如鼠标、键盘等 对窗口进行控制或输入。

        ⑤ 提供资源管理的功能。支持当今大多数流行的通用图形格式,如BMP等, 支持多字符集和多字体,支持汉字输入法

• 14.1.3 嵌入式GUI设计原则

1、可移植性。嵌入式系统发展迅速,嵌入式硬件平台和操作系统的 种类繁多、更新速度快、系统特点不一,为了支持在不同的嵌入式平 台中运行,嵌入式GUI系统应具备良好的移植性。

2、较高的稳定性和可靠性。嵌入式系统运行环境大都较差,而且一 旦崩溃就可能导致无法挽回的严重后果。因此,嵌入式GUI系统要求 有较高的稳定性和可靠性。

3、系统开销少。嵌入式系统的硬件资源大都受限,处理器频率较低、 RAM和Flash容量较小等。而且在嵌入式系统中,通常还运行着比GUI 系统更为重要的系统软件和应用软件。因此,嵌入式GUI系统不能占 用过多的系统资源,运行开销要小。

4、较高可配置性。嵌入式GUI系统的可配置性通常包括功能配置、界 面特性配置、皮肤和主题配置等方面。不同的嵌入式应用对嵌入式 GUI系统配置有不同的要求,因此,嵌入式GUI系统应具有一定的可 配置性,从而适应不同系统的需求和不同用户体验的选择。

• 14.1.4 主流嵌入式GUI简介

– 1、Qt/E。Qt/Embedded是面向嵌入式系统的Qt版本Qt/Embedded是一 个C++函数库。是一个多平台的C++图形用户界面应用程序框架,能给用 户提供精美的图形用户界面所需要的所有元素

– 2、MiniGUI。MiniGUI是一个自由软件项目,其目标是为基于Linux的实时 嵌入式系统提供一个轻量级的图形用户界面支持系统,比较适合工控领 域的应用。MiniGUI具有:方便的编程接口、使用了图形抽象层和输入抽 象层、多字体和多字符集支持、多线程机制的特点。

– 3、MicroWindows。Qt/Embedded是一个开放源码的项目。是一个基于典 型客户/服务器体系结构的GUI系统。Qt/Embedded有三层:最底层是面 向图形输出和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的 抽象接口,并进行窗口管理;最高层分别提供兼容于X Window和 Windows CE的API。

– 4、Tiny-X。Tiny-X是标准X Window系统的简化版,去掉了许多对设备的 检测过程,无须设置显示卡驱动,很容易对各种不同硬件进行移植。其 设计目的是为了在小容量内存的环境下运行,非常适合用作嵌入式Linux 的GUI系统。

– 5、AndroidAndroid的应用程序都是使用Java来编写的,因此很容易移 植到新的硬件平台上,用户可以使用Google提供的SDK平台来设计与开发 Android周边应用,此外,Android平台还包括3D图形加速引擎、SQLite支 持、Webkit支持等特性。

– 6、Windows CE。是Microsoft针对嵌入式产品的一套模块化设计的操作系 统。为用户提供良好的GUI。Windows CE的基本GUI模块包括:窗口管理 模块、COM组件、窗口控制组件。

– 7、Palm。Palm OS是Palm公司研制的专门用于其掌上电脑产品Palm的操 作系统。Palm操作系统的特点是简单易用,运行需要的内存与处理器资 源较小,速度也很快,Palm操作系统不支持多线程。

– 8、iOS。iOS是以Darwin为基础的,属于类UNIX的商业操作系统。iOS用 户界面的创新设计是多点触控。控制方法包括滑动、轻触开关和按键, 交互方式包括滑动、轻按、挤压和旋转等。

• 14.2 嵌入式GUI体系结构设计

• 14.2.1 嵌入式GUI体系结构

– 嵌入式GUI体系结构一般都采用分层设计(通常包括:抽象层、核 心层、接口层),以便简化整个GUI系统的设计。

– 分层设计的GUI系统具有清晰的层次结构,层与层之间的接口定义 相对简单,可增强整个GUI系统的可靠性和稳定性

– 典型的嵌入式GUI体系结构包括:抽象层、图形设备接口、窗口管 理、消息管理、内存管理和通信管理等模块。

• 14.2.2 抽象层

– 包括操作系统抽象层硬件输入抽象层图形输出抽象层

– 1、操作系统抽象层:主要用来隔离具体的操作系统

– 2、硬件输入抽象层:主要用来实现硬件输入功能

– 3、图形输出抽象层:主要用来实现图形输出功能

• 14.2.3 核心层

– 1、消息管理。其主要任务是保证消息能够正常地发送、传递、捕获和处理。 大部分GUI系统采用事件和消息驱动机制作为系统的基本通信机制

– 2、内存管理。在GUI初始化之初就申请一块连续的共享内存,用链表把此块 内存管理起来,避免在应用程序中频繁动态地申请和释放内存时造成大量的 内存碎片

– 3、窗口管理。负责窗口的分类窗口树Z序的管理、窗口剪切域的管理, 以及窗口绘制和跟GDI模块的交互等。

– 4、资源管理。资源是指GUI中所使用到的图片、字体库等。GUI把所有需要 用到的图片数据进行预处理,调用时可大大提高效率。

– 5、定时器管理。根据操作系统时钟,为GUI提供定时服务

– 6、图形设备接口。完成点、线、矩形、椭圆、多边形等绘制的基本操作。

• 14.2.4 接口层

– 接口层提供各种GUI对象(窗口、控件)的数据结构应用编程接口以及 绘制接口

– 数据结构包括各种图形设备接口对象的数据结构,如画笔、画刷、背景、 位图、字体等。

– 接口(应用编程接口、绘制接口)包括设备上下文的操作图形设备接 口对象的操作坐标系统转换图形绘制单元的操作等。

– 所有的接口一般以封装的方式提供,不仅可以提高代码的可重用性,还 便于开发人员对已有的窗口或控件对象进行扩展。

• 14.3 基于主流GUI的应用程序设计

• 14.3.1 MiniGUI开发环境搭建

– MiniGUI是一个自由软件项目,其目标是为基于Linux的实时嵌入 式系统提供一个轻量级的图形用户界面支持系统,比较适合工控 领域的应用。MiniGUI具有:方便的编程接口、使用了图形抽象层 和输入抽象层、多字体和多字符集支持、多线程机制的特点

– MiniGUI可以运行在Linux系统上,也可以运行在Windows系统上。 在Linux系统上搭建MiniGUI开发环境的步骤是:

– 1、安装MiniGUI相关程序

– 2、配置MiniGUI环境

– 3、MiniGUI的使用

• 14.3.2 基于MiniGUI的应用程序设计

– MiniGUI是一个典型的GUI图形界面支持系统,GUI应用程序通过监 控单击鼠标、按键等输入设备事件,再通过GUI内部处理,把相对 应的响应反馈传递到图形的窗口上,通过局部或整体重绘,达到 图形界面交互的效果。

– 1、编程环境介绍

        • MiniGUI完全由C语言编写。

– 2、MiniGUI框架介绍

         • MiniGUI采用了基于线程的体系结构,并在此基础上,架构起较为完备的消息 传递与多窗口处理机制

– 3、基础编程

• MiniGUI编程过程与传统的GUI编程方式十分相似。

• 14.3.3 Android开发环境搭建

– 1、Android开发环境介绍

        • 常用的有JBuilder、Eclipse、NetBeans、Android Studio等。

– 2、环境搭建步骤

        • 教材上介绍的是Eclipse环境搭建步骤。

        • 实验七给出了Android Studio环境的搭建步骤。

– 3、Android SDK介绍

        • Android SDK是Google为Android应用开发者提供的开发工具包,包括文档、 API、工具以及相关的例程。

        • Android工具包括:模拟器、调试桥、SD卡工具、编译器、批处理脚本等。

         • API集是Android SDK包中的核心功能组件,它提供了如函数、方法、属性、类 库等一系列在用户开发应用过程中所必需的应用编程接口集合

• 14.3.4 基于Android的应用程序设计

– 1、创建Android工程

        • 在创建Android工程的过程中,Eclipse(Android Studio)与Android SDK为用户 自动生成了支持Android与工程所需的相关文件,其中部分在用户开发时需要 修改或重写,而另外一部分则不能被修改。

– 2、基础UI设计

        • Android系统拥有自带的视图系统与窗口管理系统,针对基于Android的相关应 用,用户可以为其设计UI交互,降低人机交互成本,提升应用的用户体验。

– 3、扩展性设计

        • 在Android系统架构中包含GPS通信等相关的功能模块,开发者可以根据实 际应用情况进行扩展性的开发与设计。


网站公告

今日签到

点亮在社区的每一天
去签到