高效J2ME应用程序秘诀二十招

2016-02-19 15:58 3 1 收藏

下面请跟着图老师小编一起来了解下高效J2ME应用程序秘诀二十招,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】


  J2me程序由于其非凡的运行环境限制,所以优化就显得比较重要,以下是我在学习j2me编程所收集的一些技巧和自己的心得。
  
  本文主要是说明j2me平台上的非凡优化方法,与j2se重复的一些技巧就不再赘述了。
  
   !-- frame contents -- !-- /frame contents --   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设备上都起作用,也不一定都适合每一个程序,总之,应该根据自身的情况。

来源:https://www.tulaoshi.com/n/20160219/1610773.html

延伸阅读
我们将从定义 J2ME 开始,从最简单的J2ME 是什么开始讲起。然后讨论它的总体架构并学习 J2ME 目标设备。作为架构讨论的一部分,我们将提供有关简表和配置的概述。同时我们会简要介绍打包和配置 J2ME 应用程序过程中的一些注重事项。 J2ME 是什么? Sun Microsystems 将 J2ME 定义为“一种以广泛的消费性产品为目标的的高度...
在J2ME中基于UDP协议编程一文中介绍了如何使用Datagram和DatagramConnection来开发应用程序,本文将主要讲述在MIDP2.0中使用ServerSocketConnection和SocketConnection来开发联网应用程序。TCP协议是可以保证传输的质量的,这也是他和UDP的一大区别。由于以上谈到的四个类都属于GCF,他们在程序编写方面也非常相似,通常我们在Server端的某个端...
Command对象 发信站: 北大未名站 (2001年10月20日20:33:56 星期六) , 站内信件 在前面我们其实已经使用过Command对象了。J2ME的事件系统比较非凡,你必须首先定义一系列的命令,然后注册到容器对象中,例如(Form、Alert、List、TextBox),再设定命令监听者 ,编写好commandAction()方法即可。当系统发送某个命令,便由commandAction...
有几个想学J2ME的朋友问过我这个问题。我想这个问题可以有两个答案。 J2ME是简单的。 !-- frame contents -- !-- /frame contents -- 说其简单,更主要的原因是J2ME开发使用的是Java,离开平台技术范畴(J2SE,J2ME,J2EE),Java语言本身是简单的,或者说“简洁”更为强大。比起C++的程序代码来说,Java Code让人看起来更舒适,也更直观。 ...
引言 在上一篇文章中对Eclipse的运行环境作了配置,同时也对J2ME开发作了简要的介绍。通过上述介绍,读者应该理解:对手机应用程序的开发实际也就是进行J2ME项目的开发。虽然在上一篇文章对环境进行了配置,使其能够支持J2ME的开发,但是目前安装的Ecilpse作为一个Java应用的IDE,使用是非常方便,可是对于J2ME的开发支持还是远...

经验教程

676

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部