冷月葬花魂 发表于 2015-1-18 11:49:33

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---

谁可相欹 发表于 2015-1-21 15:58:24

才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。

海妖 发表于 2015-1-26 21:13:14

iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。

透明 发表于 2015-2-4 20:32:37

首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书

仓酷云 发表于 2015-2-10 07:09:00

自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉

再现理想 发表于 2015-2-24 22:35:55

其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。

兰色精灵 发表于 2015-3-6 01:36:04

iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。

精灵巫婆 发表于 2015-3-9 21:20:22

AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。

莫相离 发表于 2015-3-17 01:09:17

以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。

深爱那片海 发表于 2015-3-22 19:10:49

最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。

变相怪杰 发表于 2015-4-1 07:10:58

看《iPhone 4与iPad开发基础教程》,跟着一步步来

乐观 发表于 2015-4-8 04:17:55

学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。

小女巫 发表于 2015-4-14 06:57:47

首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书

爱飞 发表于 2015-4-16 03:47:21

看《iPhone 4与iPad开发基础教程》,跟着一步步来

不帅 发表于 2015-4-16 08:10:41

培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,

因胸联盟 发表于 2015-4-21 14:52:25

在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。

飘灵儿 发表于 2015-4-26 02:52:04

同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。

愤怒的大鸟 发表于 2015-6-22 00:03:35

以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。

分手快乐 发表于 2015-6-27 06:13:15

学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。

灵魂腐蚀 发表于 2015-7-4 00:46:21

众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
页: [1] 2
查看完整版本: IOS制作之高可移植性J2ME软件开辟条记仓酷云