KJava虚拟机hack笔记-基于GTK的移植

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw) 本文仅根据官网介绍分析,存在纰漏仅供参考。 阅读详情
转载时请注明出处和作者联系方式
文章出处: 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上交流

PX4飞控CAN总线通信深度配置:从menuconfig到驱动加载的完整指南 本文详细解析了PX4飞控中CAN总线通信的深度配置流程,从menuconfig选项设置到驱动加载的完整指南。涵盖硬件抽象层、驱动层和应用层的配置细节,提供实际验证方法和故障排查技巧,帮助开发者高效实现CAN通信,特别适用于无人机和机器人底盘运动控制等场景。 阅读详情

相关推荐

SikuliX实战:5分钟搞定游戏挂机脚本(附防检测思路与Python集成技巧)

本文详细介绍了如何使用SikuliX快速开发游戏挂机脚本,包括环境配置、基础原理、防检测策略及Python集成技巧。通过实战案例展示如何实现自动化任务、高级防检测方案,并结合Python提升脚本性能与智能度,帮助玩家高效完成重复性游戏操作。

weixin_33228769的博客 335

udev的实现原理

udev实现原理              转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:李先静更新时间:2007-4-29 相对于linux来说,udev还是一个新事物。然而,尽管它03年才出现,尽管它很低调(J),但它无疑已经成为linux下不可或缺的组件了。udev是什么?它是如何实现的?最近研究Linux设备管理

国产开源 GUI 引擎 AWTK 3万+

软件项目质量管理

识别项目中涉及质量管理的不同角色,如项目经理、质量经理、测试人员等,明确每个角色的职责和任务,包括负责哪些质量管理活动和决策。1、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。2、编制软件项目的质量管理计划,包括确定项目的质量标准和要求,以及制定质量控制和质量保证策略等。测试用例表是质量控制过程中的关键工具,确保所有功能和场景都被验证,减少项目中的缺陷。1、理解项目质量管理的基本过程,包括质量计划、质量保证、质量控制和质量改进;明确质量管理活动中的角色和职责。

weixin_51996255的博客 1258

Linux HAL (Hardware Abstraction Layer)的工作原理

Linux HAL (Hardware Abstraction Layer)的工作原理                       转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:李先静更新时间:2007-5-3 HAL是Hardware Abstraction Layer的首字母缩写。我最早是在Winnt 3.5的帮助中

国产开源 GUI 引擎 AWTK 3万+

Android 导出aar 用于Unity 百度语音唤醒

AndroidStudio版本下载地址Android Studio Arctic Fox Unity版本2021.3.26f1c1 新建AndroidStudio工程 新建module 这里注意一下,网上很多教程说要注意包名要和unity一样,但是测试下来,不一样也可以的 在新建的module里添加这两个jar包,并点击右键add as library 导入jniLibs 右键创建这几个package 代码就安装这个大佬的写参考代码 需要注意的的是在WakeupListener脚本里U

weixin_38777563的博客 633

解决鸿蒙/荣耀设备GMS应用调试中的“Play保护机制认证”报错

本文详细解析了在鸿蒙或荣耀设备上调试GMS应用时,遇到“Play保护机制认证”报错的根本原因与解决方案。核心在于获取设备的GMS Device ID,并通过Google官方渠道完成临时注册,从而绕过认证限制。文章提供了无需Root和ADB查询两种具体方法,并分享了授权后的故障排查与实战经验,帮助开发者高效解决问题。

weixin_29288313的博客 299

WAP协议研究笔记—WAP传输协议

  转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 转载时请注明出处:http://blog.youkuaiyun.com/absurd 我们知道,彩信(MMS)和WAP浏览器是WAP协议的两大主要应用。WAP协议有点复杂,也算是SmartPhone中的核心技术之一吧,它包括

国产开源 GUI 引擎 AWTK 1万+

手把手教你用SlowFast训练自定义手势识别数据集(附FFmpeg抽帧技巧)

本文提供了一份基于SlowFast架构训练自定义手势识别数据集的完整实战指南。文章重点剖析了数据准备的核心挑战,详细讲解了利用FFmpeg进行高、低帧率抽帧的技巧,并介绍了构建半自动标注流水线、生成符合SlowFast要求的AVA格式数据集文件的具体方法。最后,针对手势识别场景,给出了关键的模型训练配置与调优建议,帮助开发者高效完成从数据到模型的全流程。

s1t2u3的博客 909

Android IPC机制详解

Android IPC机制详解 转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 o IBinder接口IBinder接口是对跨进程的对象的抽象。普通对象在当前进程可以访问,如果希望对象能被其它进程访问,那就必须实现IBinder接口。IBinder接口可以指向本地对象,也可以指向远程对象,调用者不需要关心指向

国产开源 GUI 引擎 AWTK 1万+

FPGA_adc采样并通过以太网发送到上位机

本项目使用FPGA-ZYNQ-7020采集8通道ADC数据,通过以太网上传到上位机显示波形PL部分包括数据的获取与处理,数据从PL传递到PSPS部分包括以太网的发送,由PL到PS的中断触发本文章不详细讲解背后原理 但保证每一步足够详细,跟着就能实现。本人FPGA平台 大磊FPGA7020开发板 vivado2020.2 vitis2020.2 匿名上位机公开版

weixin_42304868的博客 5626

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 254

WAP协议研究笔记—彩信的传输

WAP协议研究笔记—彩信的传输 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 我们知道,彩信(MMS)和WAP浏览器是WAP协议的两大主要应用。WAP协议有点复杂,也算是SmartPhone中的核心技术之一吧,它包括WDP/WTP/WSP这一套传输协议,也包括W

国产开源 GUI 引擎 AWTK 1万+

双重分组进位跳跃进位链

跳跃进位链

qq_62260432的博客 941

Linux电源管理研究笔记—gnome-power-manager的工作原理

Linux电源管理研究笔记—gnome-power-manager的工作原理 转载时请注明出处:http://blog.youkuaiyun.com/absurd/ 在手持设备设计中,电源管理历来为重要的研究课题之一。我们日常所说的省电就属于电源管理的范畴,这也是我们最关心的一个部分。通过挂起不必要的设备、降低CPU的频率或者其它方法,可以减少能量的消耗,达到省电的目的。电源管理实际上是一个系

国产开源 GUI 引擎 AWTK 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

linux蓝牙驱动代码阅读笔记

linux蓝牙驱动代码阅读笔记转载时请注明出处和作者联系方式作者联系方式:李先静 昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。net/hci_core.cHCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件

国产开源 GUI 引擎 AWTK 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

小心pthread_cond_signal和SetEvent之间的差异

小心pthread_cond_signal和SetEvent之间的差异 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 今天帮同事查一个多线程的BUG,其中一个线程挂在g_cond_wait上不动了。从代码来看,看出不出任何问题,g_cond_wait和g_con

国产开源 GUI 引擎 AWTK 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux PPP 数据收发流程

 Linux PPP 数据收发流程                       转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:李先静更新时间:2007-5-4 PPP(Point-to-Point)提供了一种标准的方法在点对点的连接上传输多种协议数据包,它最常见的用途可能是传统的拨号上网了(据说现在的宽带接入也有采用

国产开源 GUI 引擎 AWTK 1万+

Linux电源管理研究笔记—动态电源管理(DPM)

Linux电源管理研究笔记—动态电源管理(DPM) 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 在手持设备设计中,电源管理历来为重要的研究课题之一。我们日常所说的省电就属于电源管理的范畴,这也是我们最关心的一个部分。通过挂起不必要的设备、降低CPU的频率或者其

国产开源 GUI 引擎 AWTK 1万+

试玩UML(User Mode Linux)

试玩UML(User Mode Linux) 转载时请注明出处:http://blog.youkuaiyun.com/absurd/ 这里的UML并非指统一建模语言,而指用户模式的linux。顾名思义,就是让linux系统作为一个用户进程运行。为什么要这样做呢?大家都知道调试linux 内核是件麻烦的事情,虽然可以使用kdb、gdb或者虚拟机来调试内核,但这些本身方法都有一些限制,而且我总感觉

国产开源 GUI 引擎 AWTK 1万+

Sqlite中文排序研究

Sqlite中文排序研究 转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/absurd作者联系方式:Li XianJing 更新时间:2006-12-19 Sqlite是一个用C语言实现的小型SQL数据库引擎。它体积小巧但功能强大,对硬件资源要求很低而且性能表现卓越,非常适合于嵌入式应用环境。最近发现sqlite并不支持中文(拼音/笔画)排序,

国产开源 GUI 引擎 AWTK 1万+

几则gdb使用技巧

几则gdb使用技巧 转载时请注明出处:http://blog.youkuaiyun.com/absurd/ gdb的功能强大,与带GUI的调试器相比有过之而无不及,使用也就相对复杂一些。一方面是它的亲和力稍差,毕竟是给程序员用的,不用做得傻瓜化。另外一方面它的命令太多,我们常常浅尝辄止,只记得几个常用的命令就知足了,没有充分发挥它的潜力。今天要调试一段ARM汇编代码,按常规方法调试汇编代码非常

国产开源 GUI 引擎 AWTK 1万+

在Linux下开发多语言软件: Hello GetText!

 转载时请注明出处和作者联系方式作者联系方式:李先静 开发多语言软件是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同,glibc提供了大量的函数处理这些事情,不再聱述了。这里要做的是,用一个简单的实例说明一下GetText的用法,GetText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的。GetText并不是一个神秘的东西

国产开源 GUI 引擎 AWTK 1万+

构建手机模拟环境

构建手机模拟环境 转载时请注明出处和作者联系方式作者联系方式:李先静  在PC上调试应用程序比较在小机上方便得多,所以我们常常在PC上模拟运行手机软件,直到比较稳定后才到小机上测试。在PC上建立手机模拟运行环境是必不可少的,幸好在linux下,要建立手机模拟运行环境非常简单。本文介绍一下如何使用matchbox-nest建立手机模拟运行环境,这种方法适用于所有用QT、GTK+和Di

国产开源 GUI 引擎 AWTK 1万+

Linux 进程控制:fork、exit、wait、exec 与手写一个 mini shell

讲清进程控制的四个动作:fork 创建(内核四件事与写时拷贝)、exit/_exit/return 终止与 8 位退出码、wait/waitpid 等待与 status 位图、exec 七接口与唯一系统调用 execve,最后用这些零件拼出一个支持 cd/export/echo 的 mini shell,并解释环境变量两张表与 putenv 浅拷贝坑。附速查表与 14 道自测题。

BIII__的博客 175

第一章 Shell 概述

本文介绍了Shell编程的基础知识,包括Shell的起源与发展、常见Shell类型及查看方式,阐述了Shell作为命令解释器连接用户与操作系统内核的作用。强调其作为解释型脚本语言的优势,适用于系统管理自动化任务。内容涵盖Shell脚本基本结构、注释规范、编写风格、执行方法及常用命令(如echo、printf、history、管道等),并讲解了命令执行顺序、退出状态码等核心概念,为初学者提供系统学习路径。

sbjdhjd的博客 292

DeepAgents框架构建一个带有严格安全护栏的本地 Shell 执行环境。

核心亮点在于:通过精心设计的 System Prompt(系统提示词)强制约束大模型的行为,防止其通过操作系统底层的 Shell 命令绕过框架的虚拟沙箱,从而确保本地物理磁盘的绝对安全。DeepAgents 框架接入 DeepSeek 模型并构建一个带有严格安全护栏的本地 Shell 执行环境。

qq_42092076的博客 70
上一篇: 系统程序员成长计划-你的数据放在哪里(下)
下一篇: KJAVA虚拟机Hack笔记-实现MIDP的SLAVE事件模型
李先静
博客等级 码龄23年 2万+粉丝 846原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值