|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
视图是仪表盘模型是发动机控制器是控制芯片CoreData---管理数据OBJC刚学的时候觉得CD很高深其实他是最容易用的库之一1.1内容先容
跟着如今的手机品牌愈来愈多,原本J2ME的手机功能相对智能机来讲就差,加上如今盛行的MTK,如许招致手机的CPU,内存就更少的了。这篇文章就是怎样办理这些小内存,CPU,RMS都严峻受限的参考文档。
1.2预期读者
本文次要合适那些有履历的J2ME程序员在优化软件,大概是必要思索软件兼容性时的参考文档。
2优化条记
J2me程序因为其不凡的运转情况限定,以是优化就显得对照主要,以下是我在进修j2me编程所搜集的一些技能和本人的心得。
1.显现图像时断定好你的fps,最好先做几回小实行,如许能让你在显现效果和运转速率上有对照好的均衡。
2.GamaCanvas.getGraphics()每次城市发生一个全新的对象,可是对这些对象的操纵都是对统一个graphics,以是仍是只取一次供前面利用。
3.让多个对象利用一样的监听器,好比让主MIDlet类完成CommandListener和ItemStateListener接口。
4.思索利用手机开辟商供应的一些sdk,没人会比他们更懂得他们手机,以是有些时分能明显进步速率,出格是是图片,视频利用方面。这里保举利用的摹拟器是NokiaS40,MotoSDK6.11这些摹拟器在摹拟的过程当中几近与真机一样。相称的正确。
5.利用监督工具剖析MIDlet的瓶颈,wtk和各个公司供应的开辟包里城市有,能够找到程序的缺点。假设是在手机上,用timer测试你以为有能够的中央。在这里,开辟Http,Socket收集的时分,翻开相干的监督器,如许能够晓得你的程序究竟发送了些甚么数据。
6.利用System.gc(),在无线程堵塞的情形下能够无效的减缓内存压力,可是有些公司不是太保举利用(如nokia).sun的说法也是越低真个机子实行的越慢,总之,慎用吧。
7.用流动的数组取代利用Vector。利用System.copyArray等native办法,如许比你本人写的效力要高
8.图片的优化。思索利用设备的规格,大概高分辩率的图片纷歧定显现的出来。一样平常倡议利用128色就能够了。
9.不必的对象赋值为null,为更快的接纳。出格是字符串,Vector,Hashtable等类变量。假如你的class,写了良多的Hashtable,Vector,Object[]的变量的话,倡议你构建一个clear的办法,并在办法内里把那些容器变量先干失落,然后再把class赋值为null。
10.用搅浑器处置你的类文件,避免反编译,另有一个好的反作用就是它减小class文件的巨细,由于搅浑器常常用较短的字符串取代本来的变
量或办法名。
11.若数据太年夜,能够将数据编码为字符串,运转时解码,或把数据存为二进制文件并与程序打包,用类装载器的getResourceAsStream办法在运转时存取。
12.利用现有的类,好比你利用了GameCanvas,就不必本人天生off-screen,别的像CLDC的profile没有机关汇合类,以是我们能够用内建的Hashtable和Vector类来完成。
13.用优化软件jPresto(http://www.s5systems.com/jPresto.htm)---没用过,不外临时写上吧。
假设对文件巨细,内存限定十分严厉,这时候候就只能用一些十分规的办法了,大概这些办法背叛了OO头脑,可是多半情形下,它是起到了十分主动的感化的(可是也大概),假设你更在乎于程序的保护和扩大方面,我倡议你仍是跳过吧-_-
14.把一切资本文件做成一个数据文件。然后在程序中写一个算法,举行解码
15.把一切的小图片文件做成一个文件,在运转时再"切割"开。
良多张小icon的时分,能够经由过程兼并工具把这些icon兼并成一种年夜的png图片,然后在程序中对这些图片举行切割。用Image.createImage(src,x,y,w,h)举行切割。
16.利用无限的面向对象,由于地道的OO常常意味着更多的虚办法,更多的条理干系,更多的class
17.天生尽量少的class,class都有必定的体系开支。18.class中天生尽量少的办法。速率对照:同步办法<接口办法<实例办法<final办法<静态办法。
19.用finalstatic限制办法能够取得小幅的速率进步。
20.对数据成员用public限制,来取代get和set办法,不外要注意平安性。
其他回类
*只优化必要的代码
*只在有代价的中央优化
*用profiler来找要优化的中央
*在详细的设备上profiler力所不及,在硬件上利用Systemtimer
*在于用初级手艺之前,老是先研讨你的代码而且试着改善算法
*画图是慢的,以是只管俭仆地利用图形挪用
*在能够削减绘制地区的中央利用setClip()
*尽量的把工具放到轮回以外
*冒死地事后盘算和暂存
*字符串带来渣滓,渣滓欠好,以是利用StringBuffers来取代
*甚么都不假定
*大概就利用staticfinal办法,制止synchronized润色符
*传送尽量少的参数到常常挪用的办法
*假如大概,完整地往失落函数挪用
*解开轮回
*对2的幂的乘除运算用位移运算取代
*你可使用位运算符取代取模运算来完成轮回
*试着用零来取代和其他数的对照
*数组会见比C要慢,以是暂存数组元素
*消往大众的子表达式
*部分变量要比援用变量快
*假如能够callSerially()就不要wait()
*在switch()中利用小的变量作选项
*反省定点数学库而且优化它
*拆开嵌套的FP挪用来削减范例转换
*除法比乘法慢,以是用乘于倒数来取代除法
*用利用过和测试过的算法
*为了回护可移植性,当心地利用公有高功能API。
J2ME优化大概使你的程序在分歧的摹拟器,分歧的设备下有分歧的运转效果,以是优化必定要创建在开辟设备的规格上。
以上所枚举的办法纷歧定在一切midp设备上都起感化,也纷歧建都合适每个程序,总之,应当依据本身的情形。
3注重事项
1.内存的办理
2.图片资本的办理
3.图片资本的办理
4.字符串的办理
5.Vector,Hashtabe等办理
4参考材料
ITPUT的挪动开辟手艺频道http://publish.itpub.net/lists/7826/0/7826.shtml
Nokia开辟者论坛http://forum.nokia.com.cn/sch/index.html
CoreAnimation---制作动画很强大很喜欢的框架可以用少量的代码写出漂亮的动画CQuartz2D---强大的2D绘图库COpenGL---不用介绍了超级强大的3D库CCoreImage--- |
|