KJava虚拟机hack笔记-基于GTK的移植
1,057 views| 2008-11-25| 李先静| KVM hack notes| | 发表评论转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli@gmail.com>
CLDC只依赖于硬件平台和操作系统,不依赖于GUI,在移植到GTK+上时不需要做任何修改。MIDP则与GUI密切相关,在移植到GTK+上时主要修改这部分内容。因为MIDP没有基于GTK+的实现,不是简单的编译一下就行的,而是要动手写上万行的代码。这里面我们从总体介绍一下移植Phoneme_Feature到GTK上的方法:
1.建立编译环境。
为了简单,我们把midp/build/linux_qte_gcc拷贝一份到midp/build/linux_gtk_gcc,把文件名和文件内容中的qte全部改为gtk。再修改gtk.gmk:
MAINWINDOW_TITLE=”$(PROJECT_NAME_SHORT) $(BUILD_ID)”
EXTRA_INCLUDES += $(shell pkg-config –cflags gtk+-2.0)
EXTRA_CFLAGS += -DMAINWINDOW_TITLE=\”$(MAINWINDOW_TITLE)\”
LIBS += $(shell pkg-config –libs gtk+-2.0)
2.建立配置文件(midp/src/configuration/configuration_xml/linux_gtk), 先从midp/src/configuration/configuration_xml/stubs拷贝一份。
3.实现事件队列(midp/src/events/eventqueue_port/linux_gtk),先从midp/src/events/eventqueue_port/stubs拷贝一份,然后编写里面需要的函数。
4.实现事件主循环(midp/src/events/slavemode_port/linux_gtk),仿照QTE创建相应的文件和目录,编写midp_slavemode_port.h中需要的函数。
5.实现平台相关的控件(midp/src/highlevelui/lfpport/linux_gtk),仿照QTE创建相应的文件和目录,编写highlevelui/lfpport/include/中头文件中需要的所有函数。
6.实现马达/铃音等相关函数(midp/src/highlevelui/annunciator/linux_gtk),先从midp/src/highlevelui/annunciator/stubs拷贝一份,然后编写里面需要的函数。
7.实现图形图像绘制渲染函数(midp/src/lowlevelui/platform_graphics_port/linux_gtk),先从midp/src/lowlevelui/platform_graphics_port/stubs拷贝一份,然后编写里面需要的函数。
8.实现运行本地命令的函数(midp/src/ams/platform_request/linux_gtk),把qte的实现拷贝过来,做简单修改即可。
9.实现唤醒和挂起虚拟机的函数(midp/src/core/suspend_resume/sr_vm/linux_gtk),把qte的实现拷贝过来,做简单修改即可。
9.建立资源文件(midp/src/ams/appmanager_ui_resources/linux_gtk),先把midp/src/ams/appmanager_ui_resources/linux_qte拷贝一份就行了。
10.实现push_timer(midp/src/push/push_timer/linux_gtk),先把midp/src/push/push_timer/linux_fb拷贝一份。
相应目录中的Makefile也要修改,这个都很简单,仿照qte的实现就行了。在后面的BLOG中, 我们将详细介绍上述的各个子系统的实现方法。
Share
Tags
Recent Posts
Most Viewed
- 系统程序员成长计划写作提纲 - 19,605 views
- Android IPC机制详解 - 6,277 views
- 系统程序员成长计划-走近专业程序员(上) - 6,253 views
- 系统程序员成长计划-写得又快又好的秘诀(一) - 5,390 views
- 系统程序员成长计划-背景知识 - 5,070 views
- i++循环与i–循环的执行效率 - 4,712 views
- 系统程序员成长计划-Write once, run anywhere(WORA)(上) - 4,700 views
- 系统程序员成长计划-走近专业程序员(下) - 4,254 views
- Linux下的调试工具 - 4,017 views
- Advanced Linux Sound Architecture (ALSA) 研究笔记 - 4,017 views
- 系统程序员成长计划-序 - 3,985 views
- 系统程序员成长计划-写得又快又好的秘诀(三) - 3,929 views
- 中国人与自由软件文化研究(搞笑版) - 3,735 views
- Android中的MessageQueue,Handler,Looper和Thread - 3,686 views
- 答复:我不会OOO,仍然可以XXX - 3,658 views
Categories
- Android (28)
- Broncho-A1-Hack (6)
- DirectFB (7)
- FTK(嵌入式GUI) (24)
- GTK+ (29)
- KVM hack notes (8)
- Linux Mobile (65)
- Management (5)
- Mozilla (9)
- Open Source (5)
- Programming (34)
- Tools (9)
- Uncategorized (23)
- Win32 (3)
- X Windows (31)
- 沉思录 (29)
- 系统程序员成长计划 (67)
Blogroll
gallery
Linux guru
推荐网站
Recent Comments
- Dig on 嵌入式GUI FTK设计与实现-事件源(FtkSource)
- 用心生活每一天 » GNU gprof: linux profiling tools 使用 on gcc profiling的工作原理
- JavaScript for: i++ vs i–-传播、沟通、分享-一直“有你” on i++循环与i–循环的执行效率
- Frankly Law on 嵌入式GUI FTK介绍(11)-交叉编译
- tracing on Linux下的调试工具
- ndljsn on FTK移植指南(初稿)
- tracing on 爬塘朗山
- tracing on GTK+(基于DirectFB)的字体处理
- Kely on 系统程序员成长计划写作提纲
- tracing on 爬塘朗山



November 25th, 2008