嵌入式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发邮件给我。谢谢。

categoriaFTK(嵌入式GUI) commento2 Comments dataMarch 6th, 2010
Read All

FTK google group开通,欢迎加入交流。

By 李先静 192 views

FTK google group开通,欢迎加入交流。

Homepage: https://groups.google.com/group/funnytoolkit
Group email: funnytoolkit@googlegroups.com

如果你不会翻墙,请用gmail发邮件给我。谢谢。

categoriaFTK(嵌入式GUI) commento3 Comments dataFebruary 28th, 2010
Read All

嵌入式GUI ftk-0.3发布

By 李先静 206 views

经过春节长假的努力,FTK-0.3如期发布,其主要修改有:

  • 引入FtkAllocator接口,用于内存使用情况统计分析。
  • 支持非压缩的BMP图像的解码。
  • 支持拼音输入法。
  • 支持五笔输入法。
  • 实现手写输入法框架。
  • 支持长按事件。
  • 修改了编译脚本的一些小问题。
  • 做了其它一些优化和完善。

特别感谢Huang Riwen兄和Feng HuaJun兄,Riwen兄发现并修改了BMP图像解码中的BUG。HuaJun同意我在FTK使用fitx输入法中的词库。

有兴趣的朋友请到FTK下载源代码。

categoriaFTK(嵌入式GUI) commento1 Comment dataFebruary 27th, 2010
Read All

在终端下修改Broncho A1的系统设置

By 李先静 149 views

一位朋友玩Broncho A1的锁屏图案,结果手机被锁住了,输入google ID也不行(在我这里可以)。恢复系统吧,他又不想重装所有软件,于是我研究了一下在命令行修改系统设置的方法。他不是搞技术的,所以我让他把 settings.db改个名或者删除掉,不过那样做有点暴力。这里介绍一种稍微麻烦但更友好一点的方法。

categoriaBroncho-A1-Hack commentoNo Comments dataFebruary 23rd, 2010
Read All

嵌入式GUI FTK支持输入法

By 李先静 190 views

春节期间给FTK增加输入法支持,目前支持拼音输入法,五笔输入法和手写输入法。手写输入法只是实现了框架,识别引擎才开个头,这是今年FTK开发的重点任务。拼音输入法,五笔输入法的基本功能都可以用了吧,易用性方面还需要进一步完善。

categoriaFTK(嵌入式GUI) commentoNo Comments dataFebruary 21st, 2010
Read All

改用gmail了:xianjimli at gmail.com

By 李先静 143 views

hotmail的邮件搜索功能太难用了,逼着我用gmail了:xianjimli at gmail.com

categoriaUncategorized commento1 Comment dataFebruary 20th, 2010
Read All

嵌入式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.

ftk

categoriaFTK(嵌入式GUI) commento2 Comments dataJanuary 31st, 2010
Read All

PC通过Android手机(Broncho A1)访问Internet

By 李先静 417 views

Broncho A1和普通Android手机一样,不能直接拿来当modem使用,不过可以把它当作一个网关或代理,这样,PC就可以通过A1来访问Internet 了。今天用privoxy(http://www.privoxy.org/)试了一下,工作正常,具体步骤如下:

categoriaAndroid commento5 Comments dataJanuary 25th, 2010
Read All

通过VNC在PC上操作Broncho A1

By 李先静 305 views

Broncho A1支持VNC,可以在PC上直接操作A1上所有应用程序。目前可以通过WIFI和adb两种方式访问VNC。

1.先在A1的设置中打开VNC服务,并输入访问的密码。

vnc3.png

categoriaAndroid commentoNo Comments dataJanuary 25th, 2010
Read All

嵌入式GUI FTK介绍(11)-交叉编译

By 李先静 253 views

考虑到交叉编译只是个浪费时间的体力活,FTK提供了一个Makefile来交叉编译FTK本身和其依赖的软件包,在tools/cross-build/README里说明:

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 24th, 2010
Read All

嵌入式GUI FTK介绍(10)-编译选项

By 李先静 266 views

作为嵌入式GUI, FTK必须要能适应不同的环境,在Linux下,这可以通过编译选项来配置。

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 24th, 2010
Read All

用embedded-lfs构建嵌入式Linux系统

By 李先静 550 views

embedded-lfs代表embedded linux from scratch,也就是从头构建一个嵌入式Linux系统,不过它与标准LFS没有太大关系,只是借用了LFS这个名称而已。要说构建嵌入式Linux系统,openembedded相关项目应该是最有名的,不过它做得太复杂,如果不出问题,用起来很方便,但是一旦出点问题,就不知怎么去搞了。玩了一次,总是出问题,让我很沮丧,后来在华清远见上课时,自己整了一个embedded-lfs。embedded-lfs非常简单,当然功能也要弱一些,对于只想玩玩的初学者还是有帮助的。

categoriaLinux Mobile commento2 Comments dataJanuary 16th, 2010
Read All

Android中的自动测试(2)

By 李先静 527 views

这里结合Music的测试程序,分析一下Android测试程序的结构和执行流程。

categoriaAndroid commentoNo Comments dataJanuary 14th, 2010
Read All

嵌入式GUI FTK介绍(9)-在Android模拟器上运行FTK

By 李先静 503 views

在Android模拟器是用QEMU实现ARM虚拟机,在很大程度上可以模拟真实的运行环境。FTK可以在Android模拟器上运行,其方法如下:

categoriaFTK(嵌入式GUI) commento3 Comments dataJanuary 14th, 2010
Read All

Android中的自动测试(1)

By 李先静 423 views

这几天做Broncho A1的Android兼容性测试(CTS),研究了一下Android的自动测试功能。它的执行流程如下:

categoriaUncategorized commentoNo Comments dataJanuary 12th, 2010
Read All

让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

categoriaBroncho-A1-Hack commento2 Comments dataJanuary 11th, 2010
Read All

嵌入式GUI FTK介绍(8)-编译/运行PC模拟版本

By 李先静 495 views

FTK可以在X Window下模拟运行。

categoriaFTK(嵌入式GUI) commento5 Comments dataJanuary 11th, 2010
Read All

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中来。

categoriaUncategorized commentoNo Comments dataJanuary 10th, 2010
Read All

推荐:弯曲评论(www.tektalk.cn)

By 李先静 663 views

昨天没事在BLOG上安装了analytics360,今天看到分析结果中,居然有20个访问是从tektalk.cn过来,出于好奇去tektalk.cn看了一下。先是网站的名称吸引了我“弯曲评论”,好熟悉的名字,以前一定看过她的文章。其次是网站的布局美观大方,赏心悦目。于是忍不住读了几篇,感觉非常专业。最后看到一篇《3G手机 。Android 。Broncho》,终于明白为什么有来自tektalk.cn的访问了。

非常好的评论网站,欢迎大家访问。为了方便以后经常的访问,我在BLOG上加了一个友情链接。本来特意申请了一个帐号的,可能是hotmail出问题了,一直没有收到密码通知。

categoria沉思录 commento1 Comment dataJanuary 9th, 2010
Read All

Linux手机通过usbnet访问internet

By 李先静 583 views

设置手机端的IP和路由:
配置usbnet ifconfig usb0 1.1.1.2
配置网关(需要busybox): route add default gw 1.1.1.1

categoriaAndroid commento6 Comments dataJanuary 8th, 2010
Read All

PXA300/310的2D图形加速示例代码

By 李先静 377 views

第一次使用PXA300/310的2D图形加速库,真是有点麻烦。其中一个问题就是缩放功能根本不工作,只要一执行缩放功能系统就不动了,折腾了两天时间才找出原因(datasheet太长,否则花两天时间去读datasheet也不会出现这个问题了)。网上也找不相关资料,这里放个测试程序供大家参考吧(有兴趣的朋友可以拿新版本的broncho a1测试一下)。

categoriaAndroid commentoNo Comments dataJanuary 7th, 2010
Read All

PXA300/310的2D图形加速

By 李先静 383 views

Marvell的PXA300/310都有硬件2D图形加速单元,Broncho A1用是PXA300,但一直没有使用它的图形加速功能,前几天花了点时间研究它,这个里记个笔记:

categoriaAndroid commentoNo Comments dataJanuary 7th, 2010
Read All

Argument list too long从何而来

By 李先静 232 views

这两天在Android eclair版本上增加WML浏览功能,以前在cupcake版本(broncho a1)上实现过,技术上倒是没有什么难题,但编译时总是出现Argument list too long的错误。WebKit里源文件太多,没有WML时还可以编译过去,但加上了WML之后,命令行参数确实很长了,ar后面跟的参数大概都有几百K。奇怪的是,在终端单独运行ar没有问题,但是在Makefile里就是不行。

categoriaProgramming commentoNo Comments dataJanuary 7th, 2010
Read All

嵌入式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>

每种控件四种状态,你可以为每种控件的每种状态,设置背景颜色/图片,前景颜色/图片和边界颜色,如果不设置则使用默认的。

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 4th, 2010
Read All

嵌入式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底能实现这些目标。

categoriaFTK(嵌入式GUI) commento1 Comment dataJanuary 4th, 2010
Read All