嵌入式系统中QT与文件系统和应用程序的关系
前言
从硬件底层到应用程序,构建linux嵌入式系统的过程分为5部分:bootloader移植,内核移植,根文件系统构建,图形系统构建和应用程序开发。根据网络资料,我们都能够分步完成这5个部分,但有的时候总觉知其然不知其所以然,好像不知不觉都已经建立起了一个系统,但相关的概念和方法仍然很模糊,尤其是图形系统构建。本文的“图形系统”特指应用于linux嵌入式系统中的QT。本文的目的是说明在构建嵌入式系统时,已经启动了文件系统后,图形系统建立所需要做的工作。
一、与X Windows system 架构思维类比
在显示器上我们打开一个应用程序,系统就弹出该程序的窗口,考虑一下这个过程是怎么实现的。
方法一
计算机显示的图像是由像素组成的,最直接的方法就是应用程序把像素一个一个的画出来。显然这是一个旷日持久的过程。
方法二
一个一个像素点的画很麻烦,而应用程序也不需要用到单位像素点这么精细,抽象出来就是点(多个像素点)、线、圆、染色(填充)等。那就做一些函数库专门来实现这些基本操作,好处大家都可想象。看来抽象出共同的操作,然后把这些共同操作用函数库实现,使用的时候直接调用的方法确实好。
方法三
能否再进一步抽象我们应用程序需要做的工作呢?使用方法二的操作函数做出一些组件,如按钮、滑块、文本框,我们程序中用这些组件就可以实现应用程序窗口了。当然,组件化导致的是同一化问题,但是不管怎样,现在我们设计窗口更容易了。实现了这个小康,闲着闲着我们又发现每个程序有自己的窗口,可是程序之间的窗口切换缩放等问题