转载:Android和j2me的初级对比

一、 程序入口
J2me 程序入口类为 MIDlet ,所有的 j2me 程序都要继承该类来初始化 j2me 程序。 Android 程序入口是 Activity 类。下面先看看她们的生命周期。
J2me MIDlet 生命周期
1 startApp (活动状态)程序启动的时候会调用该方法来初始化用户需要的资源。
2 PauseApp (暂停状态)当手机来电接电话的时候,会调用该接口。用户可以调用该接口停止也写线程的操作。
3 destroyApp (销毁状态)程序退出的时候调用。用户可以调用该接口处理处于活动状态的线程。
该几个周期状态有 AMS 调用转换,也可以程序代码调用转换。 resumeRequest 调用会的结果是 AMS 会调用 startApp 方法, notifyPaused 调用的结果是可能 AMS 调用 PsuseApp notifyDestroyed 调用会使 AMS 销毁该 midlet
Android Activity 生命周期
1 onCreate 程序开始初始化的时候调用该接口,用户导航返回到 Activity 的时候也会调用该接口。类似于 J2me 里面多个 Canvase(Displayable) 切换。所以 Activity 也类似于 Displayable
2 onStart onCreate 调用完后,程序调用该接口。
3 onResume onStart 调用后调用该接口。此时 Activity 进入运行状态。
4 onPause 新的 Activity 启动的时候调用该接口。
5 onStop Activity 不可见的时候调用。
6 onDestroy 程序销毁的时候调用。
二、 显示组件
J2me 中所有可显示的组件都是直接或间接的继承了 Displayable ,直接的是 Canvas Screen 。不同的继承导致了低级 UI 和高级 UI 的区别。 J2me 中现成的 UI 组件都是直接或者间接继承了 Screen 。只要调用 Display.getDisplay(MIDLet instan).setCurrrent(Displayable disp) ,就可以把组件显示到手机界面上。切换界面的时候也可以使用该接口。
Android 可见的组件直接或者间接继承了 android.view.View 。通过 Activity.setContentView(View view) 就可以显示在 android 手机界面上,切换界面的时候也可以使用该接口。如果是直接继承了 View 而不是 Android 自带的 UI 组件,那么还要自己去实现它的刷新,类似 J2me 的低级 UI 组件。
三、 刷新处理
J2me 刷新:
J2me 高级 UI 组件由组件内部刷新实现,低级 UI 可以通过 Canvas repain() 来刷新。低级 UI 架构可以用 MVC 方式来实现,建议使用二级缓存。
Android 刷新:
Android 提供接口 onLayout 来提供该 View 调整其里面组件元素的位置布局,用户只需要重写该接口就 ok 。刷新接口 onDraw ,该接口用来刷新界面里面的绘制元素。该接口类似 j2me Canvas paint 接口。不过两个平台传得参数有些意思。 J2me 传的时 Graphics ,而 android 传得是 Canvas Android 绘制的时候会传入一个参数 Paint 。该对象表示绘制的风格,比如颜色,字体大小,字体格式等。如果是移植的话,建议 android 也使用二级缓存,这样也容易管理。
四、 用户事件处理
J2me 的键盘、触笔事件都是通过 Canvas 定义接口分发。用户只需要从写这些接口就 ok 。它们分别是。键盘接口为: keyPressed(),keyRepeated(),keyReleased() 。触笔接口为: pointerPressed(),pointerReleased(),pointerDragged()
Android 的键盘,触笔通过 View 中定义,只要 override 其接口就 ok 了。触笔处理接口 onTouchEvent 。软键盘 onKeyDown() onKeyUp() onTracKballEvent()
五、 总结
Android 提供更多、更全面、更详细、更广泛的 api 给程序员使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值