嵌入式GUI FTK设计与实现-目录
By 李先静 135 views
总体介绍
1.FTK的三项基本原则
2.GUI的几种常见模型
3.FTK的分层视图
基本框架
1. 主循环
2. 事件源
3. 显示设备
4. 位图
5. 画布
6. 图片加载
7. 字体与编码
8. Widget
9. 主题
窗口与窗口管理器
1. 窗口
2. 窗口管理器
3. 对话框
4. 状态栏
5. 弹出菜单
各种控件
1. Button
2. Label
3. Entry
4. ProgressBar
5. ...
输入法
1. 输入法框架
2. 拼音/五笔输入法
3. 手写输入法
平台移植
1. X11
2. FrameBuffer
3. DirectFB
4. Windows
其它
1. XUL
2. 动画效果
3. 内存管理
4. 脚本绑定
欢迎大家补充和参与文档编写。
附:
FTK google group开通,欢迎加入交流。
Homepage: https://groups.google.com/group/funnytoolkit
Group email: funnytoolkit@googlegroups.com
如果你不会翻墙,请用gmail发邮件给我。谢谢。
FTK google group开通,欢迎加入交流。
By 李先静 192 views
FTK google group开通,欢迎加入交流。
| Homepage: | https://groups.google.com/group/funnytoolkit | |
| Group email: | funnytoolkit@googlegroups.com |
如果你不会翻墙,请用gmail发邮件给我。谢谢。
嵌入式GUI ftk-0.3发布
By 李先静 206 views
在终端下修改Broncho A1的系统设置
By 李先静 149 views
一位朋友玩Broncho A1的锁屏图案,结果手机被锁住了,输入google ID也不行(在我这里可以)。恢复系统吧,他又不想重装所有软件,于是我研究了一下在命令行修改系统设置的方法。他不是搞技术的,所以我让他把 settings.db改个名或者删除掉,不过那样做有点暴力。这里介绍一种稍微麻烦但更友好一点的方法。
嵌入式GUI FTK支持输入法
By 李先静 190 views
春节期间给FTK增加输入法支持,目前支持拼音输入法,五笔输入法和手写输入法。手写输入法只是实现了框架,识别引擎才开个头,这是今年FTK开发的重点任务。拼音输入法,五笔输入法的基本功能都可以用了吧,易用性方面还需要进一步完善。
改用gmail了:xianjimli at gmail.com
By 李先静 143 views
hotmail的邮件搜索功能太难用了,逼着我用gmail了:xianjimli at gmail.com
嵌入式GUI ftk-0.2发布
By 李先静 456 views
经过一个月的努力,FTK-0.2如期发布,其主要修改有:
- 修改了一些BUG,对代码做了一些优化。考虑到RTOS不支持select,所以去掉了main loop对pipe的依赖,提高FTK的可移植性。
- 移植到Windows平台,加了VS2008 Express Edition的工程文件。
- 增加了MessageBox和Tips的支持。
- 增加了弹出菜单的支持。
- 增加了ComboBox的支持。
- 增加了窗口从中间向四周扩展的效果。
- 增加窗口淡入效果。
- 对话框支持模态和非模态两种。
- 增加了C++调用的支持。
- 增加了Cursor的支持,由–enable-cursor命令行参数决定。
有兴趣的朋友请到FTK下载源代码。
附:
A gui library for embedded system. FTK equals funny tool kit, write it just for fun.

PC通过Android手机(Broncho A1)访问Internet
By 李先静 417 views
Broncho A1和普通Android手机一样,不能直接拿来当modem使用,不过可以把它当作一个网关或代理,这样,PC就可以通过A1来访问Internet 了。今天用privoxy(http://www.privoxy.org/)试了一下,工作正常,具体步骤如下:
通过VNC在PC上操作Broncho A1
By 李先静 305 views
Broncho A1支持VNC,可以在PC上直接操作A1上所有应用程序。目前可以通过WIFI和adb两种方式访问VNC。
1.先在A1的设置中打开VNC服务,并输入访问的密码。
嵌入式GUI FTK介绍(11)-交叉编译
By 李先静 253 views
考虑到交叉编译只是个浪费时间的体力活,FTK提供了一个Makefile来交叉编译FTK本身和其依赖的软件包,在tools/cross-build/README里说明:
用embedded-lfs构建嵌入式Linux系统
By 李先静 550 views
embedded-lfs代表embedded linux from scratch,也就是从头构建一个嵌入式Linux系统,不过它与标准LFS没有太大关系,只是借用了LFS这个名称而已。要说构建嵌入式Linux系统,openembedded相关项目应该是最有名的,不过它做得太复杂,如果不出问题,用起来很方便,但是一旦出点问题,就不知怎么去搞了。玩了一次,总是出问题,让我很沮丧,后来在华清远见上课时,自己整了一个embedded-lfs。embedded-lfs非常简单,当然功能也要弱一些,对于只想玩玩的初学者还是有帮助的。
嵌入式GUI FTK介绍(9)-在Android模拟器上运行FTK
By 李先静 503 views
在Android模拟器是用QEMU实现ARM虚拟机,在很大程度上可以模拟真实的运行环境。FTK可以在Android模拟器上运行,其方法如下:

让Broncho A1支持usbnet
By 李先静 311 views
下载支持usbnet的内核:http://limodev.cn/download/broncho/kernel.bin-usbnet
关于A1通过usbnet访问internet的方法请参考:http://www.limodev.cn/blog/archives/1381
Gears Android WIFI/基站定位源代码分析
By 李先静 679 views
Broncho A1还不支持基站和WIFI定位,Android的老版本里是有NetworkLocationProvider的,它实现了基站和WIFI定位,但从 android 1.5之后就被移除了。本来想在broncho A1里自己实现NetworkLocationProvider的,但一直没有时间去研究。我知道 gears(http://code.google.com/p/gears/)是有提供类似的功能,昨天研究了一下Gears的代码,看能不能移植到 android中来。
推荐:弯曲评论(www.tektalk.cn)
By 李先静 663 views
昨天没事在BLOG上安装了analytics360,今天看到分析结果中,居然有20个访问是从tektalk.cn过来,出于好奇去tektalk.cn看了一下。先是网站的名称吸引了我“弯曲评论”,好熟悉的名字,以前一定看过她的文章。其次是网站的布局美观大方,赏心悦目。于是忍不住读了几篇,感觉非常专业。最后看到一篇《3G手机 。Android 。Broncho》,终于明白为什么有来自tektalk.cn的访问了。
非常好的评论网站,欢迎大家访问。为了方便以后经常的访问,我在BLOG上加了一个友情链接。本来特意申请了一个帐号的,可能是hotmail出问题了,一直没有收到密码通知。
Linux手机通过usbnet访问internet
By 李先静 583 views
设置手机端的IP和路由:
配置usbnet ifconfig usb0 1.1.1.2
配置网关(需要busybox): route add default gw 1.1.1.1
PXA300/310的2D图形加速示例代码
By 李先静 377 views
第一次使用PXA300/310的2D图形加速库,真是有点麻烦。其中一个问题就是缩放功能根本不工作,只要一执行缩放功能系统就不动了,折腾了两天时间才找出原因(datasheet太长,否则花两天时间去读datasheet也不会出现这个问题了)。网上也找不相关资料,这里放个测试程序供大家参考吧(有兴趣的朋友可以拿新版本的broncho a1测试一下)。
PXA300/310的2D图形加速
By 李先静 383 views
Marvell的PXA300/310都有硬件2D图形加速单元,Broncho A1用是PXA300,但一直没有使用它的图形加速功能,前几天花了点时间研究它,这个里记个笔记:
Argument list too long从何而来
By 李先静 232 views
这两天在Android eclair版本上增加WML浏览功能,以前在cupcake版本(broncho a1)上实现过,技术上倒是没有什么难题,但编译时总是出现Argument list too long的错误。WebKit里源文件太多,没有WML时还可以编译过去,但加上了WML之后,命令行参数确实很长了,ar后面跟的参数大概都有几百K。奇怪的是,在终端单独运行ar没有问题,但是在Makefile里就是不行。
嵌入式GUI FTK介绍(7)-主题
By 李先静 277 views
FTK的主题非常直观,包括一个XML文件和一些图片。具体用法请参考doc/theme.txt
<theme name="default"> <button bg_image[normal]="btn_default_normal.png" bg_image[focused]="btn_default_selected.png" bg_image[active]="btn_default_pressed.png" bg_image[disable]="btn_default_normal_disable.png"/> <progress_bar bg[normal]="ff9d9e9d" fg[normal]="ffffd300" bg[focused]="ff9d9e9d" fg[focused]="ffffd300" bg[active]="ff9d9e9d" fg[active]="ffffd300" bg[disable]="ff9d9e9d" fg[disable]="ffffd300"/> <entry bg[normal]="ffffffff" fg[normal]="ff000000" bd[normal]="ffd0d0d0" bg[focused]="ffffffff" fg[focused]="ff000000" bd[focused]="ffffbb00" bg[active]="ffffffff" fg[active]="ff000000" bd[active]="ffe2ceee" bg[disable]="ffffffff" fg[disable]="ffaca899" bd[disable]="ffe2ceee"/> <text_view bg[normal]="ffffffff" fg[normal]="ff000000" bd[normal]="ffd0d0d0" bg[focused]="ffffffff" fg[focused]="ff000000" bd[focused]="ffffbb00" bg[active]="ffffffff" fg[active]="ff000000" bd[active]="ffe2ceee" bg[disable]="ffffffff" fg[disable]="ffaca899" bd[disable]="ffe2ceee"/> <check_button fg[normal]="ff000000" fg[focused]="ffffbb00" fg[active]="ffffbb00" fg[disable]="ffaca899"/> <radio_button fg[normal]="ff000000" fg[focused]="ffffbb00" fg[active]="ffffbb00" fg[disable]="ffaca899"/> <icon_view bg_image[normal]="icon_view_bg.png" bg_image[focused]="icon_view_bg.png" bg_image[active]="icon_view_bg.png" bg_image[disable]="icon_view_bg.png"/> <menu_panel bg[normal]="ffffffff" fg[normal]="ffccc9b8" bd[normal]="ffb0a080"/> <menu_item bg_image[focused]="menuitem_background_focus.png" bg_image[active]="menuitem_background_ pressed.png" /> </theme>
每种控件四种状态,你可以为每种控件的每种状态,设置背景颜色/图片,前景颜色/图片和边界颜色,如果不设置则使用默认的。
嵌入式GUI FTK介绍(6)-特性
By 李先静 334 views
基本特性:
1. Lightweght.
2. Beautiful look and feel.
3. High code quality: design pattern, good code style.
4. Stable: code review, unit test, stress test, valgrind checked.
5. Full gui features: window, dialog, panel, button, menu…
6. Good portability: Unix, Windows, RTOS…
7. Release under LGPL license
摩登特性:
1. Window animation.
2. Alpha channel to implement transparent/translucent window.
3. Guesture recognition(TODO).
4. XML UI description language.
5. Script binding.
6. InputMethod with Handwrite(TODO).
7. Screen rotation(TODO).
8. Theme.
呵,有点自吹自擂吧,欢迎有兴趣的朋友一起来玩,希望在2010底能实现这些目标。



March 6th, 2010