怎样优化j2me程序之中的 paint() 函数

J2ME移动游戏引擎架构解析:从标准MIDP到高性能游戏开发 在移动嵌入式开发领域,Java ME(J2ME)作为早期跨平台解决方案,通过MIDP规范为移动应用提供了基础运行环境。其核心原理是在资源受限设备上实现Java应用的标准化部署,技术价值在于平衡了开发效率与硬件多样性。然而,面对图形渲染、音效处理等高性能需求,标准API往往显得力不从心。为此,行业引入了专门的移动游戏引擎,通过在J2ME架构之上构建原生高性能桥梁,直接优化图形渲染与音效支持等关键模块。这类引擎通常遵循开放与优化双重设计原则,既保持与JCP标准的兼容性,又通过本地化实现和硬件抽象层提升执行效率。 阅读详情

  我们经常会遇到这样的问题,在模拟器上跑得很好的程序在实际的手机上却很慢,甚至运行不了,这大多数是因为重画机制的使用不当所致,j2me中的paint()函数起到了画屏幕的作用,往往在需要动画的情况下非常频繁地需要调用,而且在一些低端手机或移动设备上面,对于paint()函数的频繁调用会引起相应时间长甚至无法正常工作等问题。所以,对于paint()函数的优化就显得特别重要。这里,我们提出几点优化paint()函数的方法和注意事项,在编程中大家可以参考:

  其中的创建图片的方法由于需要io操作非常费时,因此要尽量避免,创建操作只在初始化的时候做一遍。

  2.使用像素较小的图片,一般来书,颜色种类少的图片显示时间就少,因此,尽量避免使用256色以上的图片,一些色调丰富,过度缓慢的图片往往需要 多种像素来满足需求,因此,尽量使用卡通图片,或者转换成256或16色的图片,会减少绘图时间。

  3.局部刷新, 每次的重画repaint()都要调用paint(),而并不是每一次repaint()都要重画整个屏幕,因此有时候之需要重画部分屏幕即可,这又有两种方法可以实现,第一种是利用clip,clip是一个矩形的绘图区域,当重绘时,仅仅重绘这个区域以内的内容,而不管其他部分,因此可以节省操作,可 以通过setclip()等函数设定绘图区域。

  另外可以通过repaint( x,y,width,height )来重画指定的某一个区域,这个函数实际上也是设定了某一个重绘clip(),不过使用起来会更加方便。

  4.减少repaint()的次数,尽量只在产生作用的时候才重画。

  5.将paint()函数的部分内容提到外面来做,使得重画减少计算量和操作。

  6.使用双缓存技术,某些设备本身就支持双缓存技术,判断设备是否支持双缓存可以用canvas类的isdoublebuffered()方法。实现双缓存可以使用image 类的可变图像技术。如,利用:

  来建立一个可变图像,它和canvas一样都能够得到graphics绘图对象的绘制。而且可以不在paint()函数里面,这一点非常重要。可以在init()中放入绘图语句,或者放到一个单独的函数中,把图片绘制到屏幕外缓冲当中,然后在paint()函数中仅仅是把这个image绘制到当前的canvas里面了,这样就可以节省很多计算操作。比如:
PMP--二模--解题--161-170 A:邀请团队成员在下一次回顾中分享经验。B:请求发起人增加具有所需经验的团队成员。C:在团队内计划知识共享会议。D:请求发起人为团队提供培训课程。A。 阅读详情

相关推荐

图解基站机房:AAU、RRU与BBU之间的线缆连接与规格选择

本文以图解方式详解了5G基站机房中AAU、RRU与BBU三大核心设备之间的线缆连接方案与规格选择。重点阐述了电力线(如2×10 mm²直流电缆)、数据光缆(如野战光缆与波分复用)及射频馈线的功能、选型标准与实战布线法则,为通信工程部署与维护提供清晰指导。

weixin_29306011的博客 506

关于canvas.drawArc,canvas.drawOval 和RectF 的关系

1.paint.setStyle(Paint.Style.STROKE) // radius="100dp" // interRadius="40dp" // linearWidth="10dp" // stokenWidth="40dp" mPaint=new Paint(); mPaint.setStyle(Paint.Style.STRO

Yang 6030

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记

①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。

qq_44684643的博客 2012

怎样优化J2ME程序当中的paint()函数

优化J2ME中的paint()函数林刚 { lirincy@163.com,  引用须注明出处作者} 关键字:优化paint J2ME, 局部刷新,局部重画,图片 我们经常会遇到这样的问题,在模拟器上跑得很好的程序在实际的手机上却很慢,甚至运行不了,这大多数是因为重画机制的使用不当所致,J2ME中的paint()函数起到了画屏幕的作用,往

飞旋无限 2992

Oracle ERP EBS R12 GL总帐业务方案 系统操作

本文档是Oracle ERP系统的总账管理模块使用手册,主要包含以下内容:1.系统架构设计,详细介绍多组织架构、会计科目设置等核心概念;2.总账日常操作流程,包括凭证录入、审核、过账等全流程管理;3.特殊业务处理,涵盖预算控制、内部往来、合并报表等专项功能;4.期末处理,说明月结、年结的操作步骤;5.系统设置指南,提供会计科目表、权限控制等配置说明;6.附录包含各业务模块的分录示例和系统操作图标说明。本手册适用于财务人员学习和使用Oracle ERP总账系统,重点讲解系统功能要点和实操步骤。

anpeng2019的博客 1888

Apollo学习笔记(1) 百度 Apollo Cyber RT简介、基本概念以及与 ROS 对照

一、背景 ROS 应用于自动驾驶领域的不足: 调度的不确定性:各节点以独立进程运行,节点运行顺序无法确定,因而业务逻辑的调度顺序无法保证; 运行效率:ROS 为分布式系统,存在通信开销 二、Cyber RT 框架 从下到上依次为: 基础库:高性能,无锁队列; 通信层:Publish/Subscribe机制,Service/Client机制,服务自发现,自适应的通信机制(共享内存、Socket、进程内); 数据层:数据缓存与融合。多路传感器之间数据需要融合,而且算法可能需要缓存一定的数据。比如典型的仿真应用

qq_24649627的博客 3393

j2me中的paint()函数

我们经常会遇到这样的问题,在模拟器上跑得很好的程序在实际的手机上却很慢,甚至运行不了,这大多数是因为重画机制的使用不当所致,J2ME中的paint()函数起到了画屏幕的作用,往往在需要动画的情况下非常频繁地需要调用,而且在一些低端手机或移动设备上面,对于paint()函数的频繁调用会引起相应时间长甚至无法正常工作等问题。所以,对于paint()函数的优化就显得特别重要。这里,我们提出几点优化pai

猫叔的专栏 914

WGCNA分析中那些没人告诉你的坑:以肺结核差异基因模块筛选为例

本文深入探讨WGCNA分析在肺结核差异基因模块筛选中的七个关键陷阱,包括soft-thresholding选取、样本离群值检测、模块合并阈值调整等。通过实际案例和R代码示例,揭示生信数据挖掘中常被忽视的技术细节,帮助研究者避免常见错误,提升分析结果的可靠性和生物学意义。

weixin_29218509的博客 262

优化J2ME中的paint()函数

我们经常会遇到这样的问题,在模拟器上跑得很好的程序在实际的手机上却很慢,甚至运行不了,这大多数是因为重画机制的使用不当所致,J2ME中的paint()函数起到了画屏幕的作用,往往在需要动画的情况下非常频繁地需要调用,而且在一些低端手机或移动设备上面,对于paint()函数的频繁调用会引起相应时间长甚至无法正常工作等问题。所以,对于paint()函数的优化就显得特别重要。这里,我们提出几点优化pai

kbest的专栏 598

Dify保姆级教程:从零搭建AI知识库,让大模型真正懂你的文档

通用大模型的知识边界来自公开语料,面对企业内部制度、产品手册等私有内容,往往只能靠“猜”,由此产生幻觉。要解决这个问题,需要借助检索增强生成(RAG)技术,为模型配置一个外挂资料库。RAG的原理类似开卷考试:先对文档进行文本切分、向量化,再在提问时检索语义相关的片段,交由大模型生成答案。Dify作为开源AI知识库平台,将文档导入、分段设置、向量索引、召回测试等复杂链路封装成可视化操作,让产品经理、运营等非研发人员也能独立搭建企业级问答助手。本文从环境部署、模型接入、参数调优到多知识库维护,完整覆盖一条可落地

weixin_29039773的博客 221

GB 47955—2026 L2组合驾驶辅助强制国标全解、合规方案与工程代码落地

GB 47955—2026 L2辅助驾驶国标合规工程代码# 运行环境:Python3.8+,适配车载仿真、台架测试、算法验证场景# 依赖安装:pip install numpy dataclasses tqdm struct time json# ===================== 国标强制时序参数(完全对标GB 47955—2026) =====================HAND_OFF_FIRST_WARN = 5.0 # 手部脱离5s触发一级预警。

lin_xiu的博客 313

java paint方法哪个周期调用_[J2ME] paint()方法被调用场合及优化

paint()方法使用场合1. 当midlet或程序的其他部分用display.setcurrent()将唯一的display交给本canvas时,paint()方法会自动调用一次。2. 当程序中使用canvas.repaint()时,paint()方法会调用一次。3. 除此之外,paint()并不会自动调用。如果将paint拼错,程序不会正确编译。因为paint()方法是canvas的一个abs...

weixin_35042833的博客 727

STM32(HAL库)驱动OLED

通过STM32F103C8T6单片机采用HAL库方式对0.96寸OLED(IIC通讯)屏幕进行驱动。

weixin_44597885的博客 8806

【代码】如何快速将J2me游戏移植到Android上

前言 小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。” 老大:“恩,不错,小白,你知道Android这个平台吧?” 小白:“恩,听过。听说和J2ME有很多共同点。” 老大:“(一阵奸笑)很多共同点是吧?” 小白:“恩。” 老大:“那好,你把这几个J2ME游戏给我移植到Android上去。” 小白:“……” 很多J2ME开发者可能都会遇到这样的临时性需求

清源教育 2322

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

J2ME的repaint效率问题

低级Canvas界面开发是J2ME开发者热衷的 paint函数的效率影响着整个程序的运行 我们经常实用局部重画,也就是repaint(x,y,w,h),但是一般paint函数会包含或调用一些教复杂的运算,那么即使我们使用的局部重画,仅仅优化的是J2ME最底层的东西 而我们在paint函数中的很多不在该区域的运算还是会进行 所以尽量在paint函数中,每部分的绘制加上判断条件,在调...

didu45535的博客 167

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何使用J2ME中的线程

线程在J2ME开发中是不可或缺的一部分,J2ME继承了J2SE中关于java.lang中的Runnable接口,以及Thread类。但是,由于J2ME应用的特殊性,J2ME程序中去除了部分API,没有线程组的概念,也没有daemon线程。今天,我们从一个例子出发,来学习J2ME当中的线程的概念。我们选取的例子是俄罗斯方块。首先,有一些要注意的事项:1.注意一点,要注意在J2me中不要使用浮点数,这

Scent of Mobile Application 1911

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2005年毕业论文----J2ME手机游戏开发高计

一  前  言 1.1 摘要 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。 随着手机的日益普及、Java功能在移动设备上的实现,Java应用

临界思考 4550

浅谈J2me游戏如何快速移植到Android

前言 小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。”老大:“恩,不错,小白,你知道Android这个平台吧?”小白:“恩,听过。听说和J2ME有很多共同点。”老大:“(一阵奸笑)很多共同点是吧?”小白:“恩。”老大:“那好,你把这几个J2ME游戏给我移植到Android上去。”小白:“……” 很多J2ME开发者可能都会遇到这样的临时性需求。其实J2ME程序往Android移植,并不...

kalogen的专栏 170

[转]J2ME中的按键处理

MIDP1.0中的按键处理是用keyPressed、keyReleased、keyRepeated几个回调函数来实现的。这样的处理有2个缺点:1,不支持多按键同时按下的处理(这个是MIDP1.0标准本身的缺陷),这对于很多动作复杂的游戏是非常致命的限制。2,由于程序的UI使用同一个线程,这样在同一时刻按键处理和paint刷屏动作只能执行其一,而很多情况下在按键处理的同时都会引起较长较复杂的逻辑处理

IntoTheDream的专栏 2310

J2ME低级用户界面

1.重绘和强制重绘 在用J2ME的低级UI时,所有的界面绘制要靠自己来实现,主要是在paint消息中来做,这里涉及几个接口:paint,repaint,serviceRepaints,callSerially, paint paint相当于是个回调函数,被J2ME主线程(处理UI和事件)来调用,任何时候我们都不能自己直接调用paint,程序在paint里面按部就班的画出界面即可,paint...

duck991的专栏 217

j2me 渐进学习过程

最近公司要做手机客户端的应用,于是我便报了名,公司便把j2me模块的任务给了我。该文章便是记录整个学习过程,包括了个人心得。 1.学习j2me的基本知识,找一些入门级的文章看一下。推荐J2me tutorial 系列[url]http://today.java.net/pub/a/today/2005/02/09/j2me1.html[/url] 2.下载nokia的s60模拟器,地址 ...

stonecsdn的专栏 187

QT文字绘制全解析:从基础原理到高级优化实战

在图形界面开发中,文字渲染是构建用户体验的基础技术。其核心原理涉及字体管理、布局算法和渲染管线,通过精确控制字形、度量信息和绘制坐标,确保文本在不同分辨率与DPI下的清晰对齐。这项技术的工程价值在于提升界面的专业性与性能,尤其在数据可视化、工业控制等需要高频刷新或海量文本的场景中至关重要。本文聚焦于QT框架,深入探讨如何利用QPainter、QFontMetrics等核心组件实现抗锯齿、精准布局及性能优化,并针对字体打包、高DPI适配等实际部署问题提供解决方案,帮助开发者掌握从基础绘制到高级特效的全链路技能

java2000.net 384

LintCode_516 Paint House II

There are a row of n houses, each house can be painted with one of the k colors. The cost of painting each house with a certain color is different. You have to paint all the houses such that no tw

Bernini @ buffalo 456
上一篇: 利用j2me开发无线蓝牙应用
下一篇: 有关motorola j2me开发的几个细节问题
Labber
博客等级 码龄19年 26粉丝 1976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值