从J2ME到Android的移植指南

需积分: 1 0 下载量 62 浏览量 更新于2024-09-17 收藏 30KB DOCX 举报
"这篇文章主要探讨了从J2ME迁移到Android平台时的关键转换点,包括开发环境、工程结构、安装包格式、代码结构以及具体的代码细节。" 在移动开发领域,从传统的J2ME转向现代的Android平台是许多开发者面临的挑战。J2ME,全称Java 2 Micro Edition,曾广泛应用于早期的移动设备,而Android现在已经成为主流的智能手机操作系统。两者之间的差异体现在多个方面: 1. **平台比较** J2ME是一个轻量级的Java平台,主要用于功能手机和一些嵌入式设备。而Android则基于Linux内核,提供了更强大、更丰富的功能和API,适用于智能设备。 2. **工程结构** 在J2ME中,工程通常包含`Res`目录存储资源,`Src`目录存放源代码。而在Android中,源代码依然在`Src`目录,但资源文件被细分为多个子目录,如`drawable`用于图片,`raw`用于音频,`values`用于字符串等,而`Assets`则用来存放非结构化的数据文件。 3. **安装包格式** J2ME应用发布为`.jad`和`.jar`文件,而Android应用打包成`.apk`,这是一种包含所有资源和代码的可执行文件。 4. **代码结构** J2ME中的主程序通常继承自`MIDlet`,游戏或图形界面基于`Canvas`。在Android中,等价的概念是`Activity`作为应用程序的入口点,而视图界面则通常继承自`View`类。 5. **代码细节** - **全屏设置**:J2ME通过`Canvas.setFullScreenMode(Boolean)`实现,而在Android中需调用`Activity`的相关方法,如`getWindow().setFlags()`来隐藏标题栏并实现全屏。 - **获取屏幕尺寸**:J2ME通过`Canvas`的`getHeight()`和`getWidth()`获取,Android则需通过`WindowManager`和`Display`对象来获取屏幕宽度和高度。 - **Display对象**:在J2ME中,通过`Display.getDisplay(MIDlet)`获取,而在Android中,需通过`getWindowManager().getDefaultDisplay()`来获取。 - **画布类**:J2ME使用`Canvas`,Android则需要自定义继承自`View`的类。 - **屏幕绘制**:J2ME使用`Graphics`类的绘图方法,如`drawString()`,Android则利用`Canvas`对象和`Paint`类进行绘图操作。 从J2ME迁移到Android,开发者需要理解和掌握Android的生命周期管理、意图(Intent)机制、服务(Service)、广播接收器(BroadcastReceiver)等核心概念,同时适应面向组件(Component-based)的开发方式。此外,Android提供了一系列强大的库和框架,如Jetpack,可以帮助开发者更高效地构建应用。 虽然J2ME和Android在很多方面存在显著差异,但它们都基于Java语言,这使得开发者在转型过程中有一定的基础。理解这些关键的转变点,将有助于开发者更平滑地过渡到Android平台,充分利用其丰富的功能和性能。