j2me to android

上个月一直在做j2me移植成android,虽然有点心得,但又不知想写什么好,还是写代码来得痛快,这里写一点心得吧,算是对工作的总结,我把移植分为三大块:

第一块:UI,移植前先要了解它们之前的不同,其不同点在于J2ME的Graphics相关于Android的Canvas,而且它们的方法略有不同,如下:

 

J2ME:

	/**
	 * Draws a rectangle in the given coordinates
	 * 
	 * @param x
	 *            the x coordinate of the rectangle to be drawn.
	 * @param y
	 *            the y coordinate of the rectangle to be drawn.
	 * @param width
	 *            the width of the rectangle to be drawn.
	 * @param height
	 *            the height of the rectangle to be drawn.
	 */
	public void drawRect(int x, int y, int width, int height) {
		g.drawRect(xTranslate + x, yTranslate + y, width, height);
	}

 

Android:

	public void drawRect(Canvas canvas, int x, int y, int width, int height,
			Paint paint) {
		paint.setStyle(Paint.Style.STROKE);
		paint.setAlpha(0xff);
		drawRect.set(xTranslate + x, yTranslate + y, xTranslate + x + width,
				yTranslate + y + height);
		canvas.drawRect(drawRect, paint);
	}

 

它们的小区别在于android需设置样式,而且坐标也有点不同,我是把他们写成一个通用类,传入的参数为Canvas,Paint,所以不用改太多代码便可移植!因为我很少用到高级UI,所以移植可能会快点,而对于高级UI的移植,我的idea是做一个通用的类,这个类可以添加一些ITEM。

 

事件KEY的处理:还是那句话,了解他们之前的不同,代码改动不大,android的事件处理机智比j2me好。

 

第二块:数据库,它们的区别在于android的sqlite很容易建立表到表之前的关联,而J2ME必须实现自己的一套框架,而且ANDROID的sqlite提供一些接口(如:SQLiteOpenHelper),数据库开发会很容易,但人个觉得两者移植不是很难,J2ME可以看成在一个文件读写一些序列化的东西,而android只要会一些sql语句。

 

第三块:模块类,我把多媒体,文件系统这些统称模块类,它们的移植主要是了解android和j2me的不同,重新CODE一次即可,像android做多媒体应该比较方便一点,它可以做缓存机智,这点j2me有点使不上力。

 

三大块分别开发,测试时很容易测出问题,这是单元开发的一大优点,集成开发有时当软件出来后,你会会发现软件卡的不行,或者报一大堆BUG!

 

最后一点是资源文件,android算更丰富一些,j2me还要写类去读取,搞个通用的入口即可,个人认为!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值