文档详情

浅谈J2me游戏如何快速移植到Android.doc

发布:2017-05-16约6.82千字共8页下载文档
文本预览下载声明
《J2me小白转正记》------浅谈J2me游戏如何快速移植到Android 发表在 2010.09.20 13:34 GMT+8 评估该帖 作者:懒骨头 前言 ? 小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。” 老大:“恩,不错,小白,你知道Android这个平台吧?” 小白:“恩,听过。听说和J2ME有很多共同点。” 老大:“(一阵奸笑)很多共同点是吧?” 小白:“恩。” 老大:“那好,你把这几个J2ME游戏给我移植到Android上去。” 小白:“……” ? 很多J2ME开发者可能都会遇到这样的临时性需求。其实J2ME程序往Android移植,并不是特别麻烦。 经过一番认真学习,小白开始整理起了笔记…… ? 零?? 高级UI界面 ? ?????? J2ME的高级用户界面比较鸡肋,在现在大多数的应用里都看不到,多数稍微复杂点的界面都是手工画,或是用一些开源的高级UI库,但Android则不同,它的UI实用、方便,而且很美观,基本无需改动且定制方便。 ? 一 设备差异 ? ?????? 虽说普通的手机性能越来越高,屏幕也越来越大,但平均而言,运行J2ME的手机从性能和屏幕分辨率及附属功能来说不及Android手机。拿入门的HTC G1来说,CPU为528MHz,屏幕为3.17英寸触摸屏、HVGA 480×320像素,192MB RAM和256MB ROM。所以从J2ME移植到Android的程序可以暂时不考虑性能问题。 ?????? 但要充分发挥Android手机的特点。要注意一下几点: ?????? 比如应用UI的布局可以更加自由,输入更加灵活,网络应用注意发挥3G、WIFI的速度优势。 ?????? 游戏要注意可适当的用效率换效果,可增加动画、音效、背景音乐的质量,图片元素的大小,发挥高分辨率手机的优势,强大的运算能力可以让开发人员编写基于OpenGL的3D游戏,可以用一些吃CPU但效果不错的开发包,如Box2D仿真物理引擎 《J2me小白转正记》------浅谈J2me游戏如何快速移植到Android 发表在 2010.09.20 13:38 GMT+8 评估该帖 二 ?J2ME与Android系统的常用类、方法对比 三?? 开始移植 ? ?????? 小白找到Android中对应的J2ME相关的替代类和替代方法后,开始噼里啪啦的改代码了。没过多久,首个俄罗斯方块算是移植成功。当他开始移植下一款游戏时,发现又要重复的改那些代码…… ?????? “可不可以减少代码的改动呢?”小白问自己。“可否用Android的相关代码构造一些和J2me里功能类似的代码呢?” ? ?????? 原则:尽量少改动J2ME项目的代码。用Android中对应的类改写成J2ME中的方法和类,减少以后移植的工作量,甚至实现无缝移植。 ? ?????? “或许我可以构造一个名为MIDlet实为Activity的类,这样J2me中的入口类就不用改动了” 用Activity类改装的MIDlet类: public abstract class MIDlet extends Activity {? public void onCreate(Bundle savedInstanceState) {? super.onCreate(savedInstanceState);? startApp();? }? public abstract void destroyApp(boolean unconditional);? public String getAppProperty(String key) {? return null;? }? public abstract void startApp();? public void notifyDestroyed() {? }? public void notifyPaused() {}? public void pauseApp() {}? public void platformRequest(String URL) {}? public void resumeRequest() {}? }? ? MIDlet类我们解决了,接下来就是非常重要的Canvas类了。 J2me里的Canvas类相当于Android体系中的SurfaceView类,都是负责绘制显示界面的,游戏的大循环一半也在这两个类里实现,也就是都会实现Runnable类,更新逻辑和更新界面都在此类的大循环中处理。 ? Graphics类在J2me里负责绘图和排版样式等。 我们可以用Android里的Canvas类和Paint类共同组合一个Android里的Graphics类,如Graphics类的构造函数可这样定义:
显示全部
相似文档