|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令。
在嵌进式Linux下有良多图形界面体系GUI,包含Qt/Embedded,FLTK,Microwindows和GTK+等。作为一个开辟者,究竟利用甚么样的GUI体系呢?对一个体系,将它改革为切合你的需求,你要做几修正呢?修正后的体系的尺寸一样平常会有多年夜呢?这些都是开辟职员会碰到的成绩。
我们在这里会商的就是要对这些内容做一个详细仔细的剖析,经由过程我们的会商,人人会对基于GTK+和X的GUI在嵌进式Linux下的使用有一个切实的懂得。
在嵌进式体系使用日趋开展的明天,愈来愈多的使用都必要利用到GUI来举行开辟,以此来取得更好的交互性。
嵌进式Linux下GUI的选择,对年夜多半开辟职员来讲是一个必要衡量对照的历程。选择GTK+运转在X体系上,然后X体系运转在嵌进体系的framebuffer上,这会是一个很好的选择。
GTK+与X的长处
固然,GTK+与X一样平常都是被人人思索为体积较年夜的桌面体系的好搭配,但实践上关于嵌进体系来讲,它也有着诸多的长处:
1、X-window体系与GTK+都十分不乱牢靠,X-window体系是履历了临时的开辟及使用理论的,GTK+也是一个对照成熟的开放源代码项目;
2、X-window体系是一个天真的client/server的模子布局,一个使用客户真个溃散不会影响到图形体系的其他部分,这是一个很主要的特征,它有益于撑持第三方使用的扩大开辟,而不影响到主体部分;
3、GTK+有两个主要的库:GDK和GLIB.GDK笼统了底层的窗口办理,要移植GTK+到另外一个分歧的窗口体系的话,我们只必要移植GDK就能够了。GLIB是一个工具汇合,它包含了数据范例,各类宏界说,范例转化,字符串处置,任何使用程序都能够链接这个GLIB库,利用个中的各类数据范例、办法,来制止反复代码,大概说制止开辟职员从头创造轮子,如许有益于削减全部体系的尺寸;
4、对GTK+/X的裁剪是很简单的,它们有着很好的可设置的选项,有着明晰的代码布局,能够包管平安准确地往失落年夜段的不必要的代码;
5、GTK+有着大批的使用,GTK+已被用在了良多主要的使用体系中;
6、GTK+的受权是LGPL体例的,X是non-copyleftfreelicense的,第三方开辟的体系都能与它们举行链接;
7、GTK+/X两者都是基于C代码的,而不是C++;
8、GTK+利用C来完成了面向工具的架构;
其他GUI体系
其他能够选择的图形体系包含:Qt/Embedded,FLTK和Microwindows.
1、Qt/E是个中较初级的,它是一个完全的,基于framebuffer的GUI体系,由Trolltech公司开辟;
2、Qt/E有着高效的图形衬着效果,还包含TrueType字系统统,及alphablending半通明处置;
3、但Qt/E不是利用LGPL受权体例,而是利用两种受权体例:开辟利用GPL,而商用必要受权与版税;
4、Qt/E是用C++编写的;
5、Qt/E十分年夜,一个iPAQQPE就包含了3.3MB的Qt/E库和一个718KB的QPE库(和Xlib相似的一种库);
6、Qt/E不敷不乱,QPEdemo不错,但呈现过溃散;
7、FLTK(theFastLightToolkit)是一个小型的GUI图形体系,它也是用C++写的,特征太少,使用局限较少,不敷成熟;
8、Microwindows和X-Window比拟也是一个不错的选择,它占用约莫100KB-600KB巨细的内存,和文件存储空间,固然已有了一个其上的GTK+移植,但仍是不敷成熟;
X-window:比你设想的要小良多
关于X-window体系,宽大的收集开辟者已做了大批的事情来减小其的尺寸,最出名的有TinyX.能够经由过程对不必要的代码的裁剪及往除XLIB中静态数据来削减整体的尺寸,如:color办理体系,弧形,粗线条等。
在年夜多半开辟职员的印象里,X体系很复杂,但实践上,你听到的,是那些对X不敷懂得的人的一种曲解。在经由裁剪后的情形下,GTK+/X要比GTK+/FB与Qt/E还要来得无效,且XLIB对一样平常的使用程序有着更好的撑持感化,使用程序的开辟会变得更高效。
怎样裁剪GTK+
我们能够从尺度的GTK+刊行版原本裁剪,裁剪失落个中的不必要的,修正已有的代码,并到场新的特征所必要的代码。裁剪的局限包含小的修改,也包含一些年夜的布局性的、中心的改动。
1、往除Widgets窗口
最入手下手,我们把不必要的Widgets往撤除,好比:GtkGamma、GtkHRuler、过期了的GtkList(被GtkCList所替换了)、和我们不必要的GtkFrame边框。
2、Widgets窗口尺寸与绘制
接着,修正Widgets的巨细与绘制办法,GTK+供应了一个主题引擎机制,来把持窗口的表面与效果。它同意在运转中设置字体,设置行距离,设置绘制特征。如许的机制很不错,但不敷天真,代码中良多设置的中央都是利用硬编码的体例;别的,一种主题,就是一堆分外的代码段和参数,如许会增添全体的尺寸。
必要找出影响到窗口体系全体尺寸的内容,再来修正它。好比,一个按钮的巨细与绘制,包含如许的参数:边框的宽度,x/y的地位(主题引擎必要的参数),缺省的距离(常量),缺省的左上角的地位(常量),取得核心。这些在嵌进体系中其实不必要那末完全,我们能够依据实践的需求来简化代码,来制止GTK+的庞大性。
别的,利用面向工具的办法,来承继窗口Widgets的特征,作为子类也是一个无效的办法。
3、GtkWindow
GTK+老是假定一个窗口内里包括了另外一个窗口,它们就是嵌套干系。但关于我们常常会碰着的有软键盘的使用时,就不完整准确了。软键盘固然是属于一个窗口的,但却会超越谁人窗口。以是为了冲破这个假定,必要对GtkWindow增添一些特征,将软键盘处置成一种特别的子窗口。
软键盘地点的窗口,必要处置软键盘的按键事务,并将按键转发给软键盘工具条。当软键盘按下,软键盘的回调函数就被注册到原始窗口上,如许软键盘就会呼应按键事务。在GtkWindow上增添接口,能够创立,呼应按键。
在小屏幕的嵌进体系中,能够将转动条做得更简化些,往失落边框,利用单个转动条。这些都更合适嵌进体系
</p>
使用gcc或g++进行编译,使用gdb进行调试; |
|