J2ME程序优化方法二十条
来源:互联网 发布:数据库性能测试案例 编辑:程序博客网 时间:2024/05/31 13:14
J2me程序由于其特殊的运行环境限制,所以优化就显得比较重要,以下是我在学习j2me编程所收集的一些技巧和自己的心得。
本文主要是说明j2me平台上的特殊优化方法,与j2se重复的一些技巧就不再赘述了。
1.显示图象时确定好你的fps,最好先做几次小实验,这样能让你在显示效果和运行速度上有比较好的平衡。
2.GamaCanvas.getGraphics()每次都会产生一个全新的对象,但是对这些对象的操作都是对同一个graphics,所以还是只取一次供后面使用。
3.让多个对象使用同样的监听器,比如让主MIDlet类实现CommandListener和ItemStateListener接口。
4.考虑使用手机开发商提供的一些sdk,没人会比他们更了解他们手机,所以有些时候能显著提高速度,特别是图片,视频使用方面。
5.使用监视工具分析MIDlet的瓶颈,wtk和各个公司提供的开发包里都会有,可以找到程序的弱点。如果是在手机上,用timer测试你认为有可以的地方。
6.使用System.gc(),在无线程阻塞的情况下可以有效的缓解内存压力,但是有些公司不是太推荐使用(如nokia).sun的说法也是越低端的机子执行的越慢,总之,慎用吧。
7.用固定的数组代替使用Vector。
8.图片的优化。考虑使用设备的规格,可能高分辨率的图片不一定显示的出来。
9.不用的对象赋值为null,为更快的回收
10.用混淆器处理你的类文件,防止反编译,还有一个好的副作用就是它减小class文件的大小,因为混淆器往往用较短的字符串代替原来的变
量或方法名。
11.若数据太大,可以将数据编码为字符串,运行时解码,或把数据存为二进制文件并与程序打包,用类装载器的getResourceAsStream方法在运行时存取。
12.使用现有的类,比如你使用了GameCanvas,就不用自己生成off-screen,另外像CLDC的profile没有构造集合类,所以我们可以用内建的Hashtable和Vector类来实现。
13.用优化软件jPresto(http://www.s5systems.com/jPresto.htm)---没用过,不过暂且写上吧。
如果对文件大小,内存限制非常严格,这时候就只能用一些非常规的方法了,可能这些方法背离了OO思想,但是多数情况下,它是起到了非常积极的作用的(但是也可能),假如你更在意于程序的维护和扩展方面,我建议你还是跳过吧 -_-||
14.把所有资源文件做成一个数据文件。
15.把所有的小图片文件做成一个文件,在运行时再"切割"开。
16.使用有限的面向对象,因为纯粹的OO往往意味着更多的虚方法,更多的层次关系,更多的class
17.生成尽可能少的class,class都有一定的系统开销。
18.class中生成尽可能少的方法。速度比较:同步方法《接口方法《实例方法《final方法《静态方法。
19.用final static限定方法可以获得小幅的速度提高。
20.对数据成员用public限定,来代替get和set方法,不过要注意安全性。
J2ME优化可能使你的程序在不同的模拟器,不同的设备下有不同的运行效果,所以 优化一定要建立在开发设备的规格上。
以上所列举的方法不一定在所有midp设备上都起作用,也不一定都适合每一个程序,总之,应该根据自身的情况
本文主要是说明j2me平台上的特殊优化方法,与j2se重复的一些技巧就不再赘述了。
1.显示图象时确定好你的fps,最好先做几次小实验,这样能让你在显示效果和运行速度上有比较好的平衡。
2.GamaCanvas.getGraphics()每次都会产生一个全新的对象,但是对这些对象的操作都是对同一个graphics,所以还是只取一次供后面使用。
3.让多个对象使用同样的监听器,比如让主MIDlet类实现CommandListener和ItemStateListener接口。
4.考虑使用手机开发商提供的一些sdk,没人会比他们更了解他们手机,所以有些时候能显著提高速度,特别是图片,视频使用方面。
5.使用监视工具分析MIDlet的瓶颈,wtk和各个公司提供的开发包里都会有,可以找到程序的弱点。如果是在手机上,用timer测试你认为有可以的地方。
6.使用System.gc(),在无线程阻塞的情况下可以有效的缓解内存压力,但是有些公司不是太推荐使用(如nokia).sun的说法也是越低端的机子执行的越慢,总之,慎用吧。
7.用固定的数组代替使用Vector。
8.图片的优化。考虑使用设备的规格,可能高分辨率的图片不一定显示的出来。
9.不用的对象赋值为null,为更快的回收
10.用混淆器处理你的类文件,防止反编译,还有一个好的副作用就是它减小class文件的大小,因为混淆器往往用较短的字符串代替原来的变
量或方法名。
11.若数据太大,可以将数据编码为字符串,运行时解码,或把数据存为二进制文件并与程序打包,用类装载器的getResourceAsStream方法在运行时存取。
12.使用现有的类,比如你使用了GameCanvas,就不用自己生成off-screen,另外像CLDC的profile没有构造集合类,所以我们可以用内建的Hashtable和Vector类来实现。
13.用优化软件jPresto(http://www.s5systems.com/jPresto.htm)---没用过,不过暂且写上吧。
如果对文件大小,内存限制非常严格,这时候就只能用一些非常规的方法了,可能这些方法背离了OO思想,但是多数情况下,它是起到了非常积极的作用的(但是也可能),假如你更在意于程序的维护和扩展方面,我建议你还是跳过吧 -_-||
14.把所有资源文件做成一个数据文件。
15.把所有的小图片文件做成一个文件,在运行时再"切割"开。
16.使用有限的面向对象,因为纯粹的OO往往意味着更多的虚方法,更多的层次关系,更多的class
17.生成尽可能少的class,class都有一定的系统开销。
18.class中生成尽可能少的方法。速度比较:同步方法《接口方法《实例方法《final方法《静态方法。
19.用final static限定方法可以获得小幅的速度提高。
20.对数据成员用public限定,来代替get和set方法,不过要注意安全性。
J2ME优化可能使你的程序在不同的模拟器,不同的设备下有不同的运行效果,所以 优化一定要建立在开发设备的规格上。
以上所列举的方法不一定在所有midp设备上都起作用,也不一定都适合每一个程序,总之,应该根据自身的情况
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- J2ME程序优化方法二十条
- j2me程序优化技巧
- J2ME程序优化
- 优化J2ME程序大小
- j2me 程序优化
- J2ME内存优化方法
- J2ME内存优化方法
- 关于j2me程序的优化!
- J2ME开发内存优化方法
- J2ME编程技巧与程序优化
- J2ME内存占用详解及优化方法
- J2ME内存占用详解及优化方法
- 2002-8-24 CSDN掌上开发专业讲座
- EhLib使用说明
- 开篇之作
- J2me手机游戏编程初体验
- J2ME学习过程中的一点心得整理
- J2ME程序优化方法二十条
- J2ME设备的实际性能
- J2ME开发笔记-键盘响应
- 使用J2ME技术实现简单的动画(附代码实现)
- 此篇写给城里普通收入的年轻人
- 从Windows转到DOS下开发的一些心得体会
- 如何使用J2ME中的线程
- 手机与Servlet的网络通信技巧 (申请积分)
- KMP字符串模式匹配详解