zoukankan      html  css  js  c++  java
  • KJava虚拟机hack笔记基于GTK的移植

    转载时请注明出处和作者联系方式
    文章出处:http://www.limodev.cn/blog
    作者联系方式:李先静 <xianjimli at hotmail dot 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中, 我们将详细介绍上述的各个子系统的实现方法。

    欢迎到Linux mobile development上交流

  • 相关阅读:
    Codeforces Round #639 Div2 A~D题解
    Codeforces Round #548 Div2 A~C题解
    Codeforces Round #581 Div2 A~D题解
    Educational Codeforces Round 69 Div2 A~D题解
    Codeforces Round #572 Div2 A~E题解
    Codeforces Round #663 Div2 A~D 题解
    44. 通配符匹配 leetcode 每日一题
    174. 地下城游戏 leetcode每日一题
    将有序数组转换为二叉搜索树 2020/7/3
    Multiplication 3 AtCoder
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167588.html
Copyright © 2011-2022 走看看