本文章的移植不是移植到硬件平台而是移植软件项目。
很多J2ME项目如何移植到Android平台呢?Java虽然号称是跨平台应用但是目前的移植问题还是比较严重的,不知道未来Sun推出JavaFx或F3时会出现什么问题,如何从J2ME移植到Android平台上呢?下面我们来做简单的分析。
1.图形显示J2ME平台虚拟机为Sun Midlet和Android Dalvik在显示方面有极大的不同,这给游戏带来了极大的困难,很多过去使用的精灵类等等在Android中不存在,同时Android中又出现了很多新的东西,在显示方面会有很大的出入。
2.数据存储在J2ME中RMS这样的系统可以方便的存储些数据,但Android并没有它,但新增了一个更强大的SQLite,可以执行SQL语言,但还是比较轻量级,不支持存储过程等。这一点相信很多公司都有自己的数据定义格式,比如更通用的XML,在Android中有DOM XML解析器。
3.文件网络在Android中没有多大的变化和J2ME一样,用户可以直接调用J2ME中的I/O接口完成相应的工作,这一点还比较满意,未来的情况会是什么样子的,目前还不好说,因为Android又新增了一个网络传输类,可以看出正在开发中,目前最新的M5 SDK中还不是很完善。
4.媒体影音这一点Android比J2ME强大的多,支持的解码器也多的多,兼容MPEG4, AAC, H.264, MP3, AMR, PNG, JPG, GIF基于OpenCORE引擎,这一点可以看出开源的东西利用的很到位。
5.SDK模拟器在SDK文档上Android就不如JME易读了,这一点倒是微软MSDN写的很好,每个参数等等写的清晰易读,同时Google的文档和IE7显示不兼容,用的不是CHM文件而是HTML也是为了Linux和Mac OS考虑。而模拟器上J2ME为Sun通用的WTK或各手机公司的,而Android则采用开源Linux模拟器 Qemu,比较放心。
6.浏览器在浏览器方面Android采用类似iPhone Safari的webkit内核,至于效率可以说处理JS脚本大大超过IE和Firefox等东西,但内存占用挺严重的,目前在移动上主要竞争对手为 Opera Mini。这一点J2ME无能为力了,毕竟JVM不能和系统比较。
说到最后还有很多东西,但我们注意到了Android和Symbian一样都犯了一个向下兼容的问题,比如 Android移植问题,从m3升级到m5 自己的SDK升级需要大幅改进,这一点Windows Mobile平台上的Win32 API可以说真正的跨桌面和移动平台。
转载请注明出处。