IOS制作之高可移植性J2ME软件开辟条记仓酷云
视图是仪表盘模型是发动机控制器是控制芯片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--- 才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。 iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉 其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。 iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。 AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。 以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。 最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。 看《iPhone 4与iPad开发基础教程》,跟着一步步来 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书 看《iPhone 4与iPad开发基础教程》,跟着一步步来 培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦, 在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。 同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。 以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
页:
[1]
2