首先从程序上来说的话,基本是没有多少区别的.都是使用JAVA语言开发,使用的框架和类不同而已.

一、平台的区别

J2me: 开发平台

Android: 操作系统

二、工程结构比较

J2me:

Res:资源文件

Src:源代码

Android:

Src:源代码

Res\drawable:图片

Res\raw:声音

Res\values:字符串

Assets:数据文件

三、安装包比较

J2me: Jad,jar

Android: apk

四、代码结构比较

J2me: MIDlet,Canvas

Android: Activity,View

都采用继承的方式,都只有一个MIDlet/Activity,一般都只有一个Canvas/View

五、代码比较

一、程序入口

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()。

j2me on android,J2ME和Android的几个基本区别相关推荐

  1. android毕业设计——基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码)——办公自动化OA系统

    基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Java+Python的手机端办公自动化OA系统设计与实 ...

  2. android layout组件,Android UI学习 - Linear Layout, RelativeLayout

    1.一些常用的公共属性介绍 1) layout_width -宽 fill_parent: 宽度和父元素相同,wrap_content: 宽度随本身的内容所调整,或者指定 px值来设置宽 2) lay ...

  3. android:layout_gravity 和 android:gravity 的区别

    gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...

  4. Android横向伸缩,Android 实现伸缩布局效果示例代码

    最近项目实现下面的图示的效果,本来想用listview+gridview实现,但是貌似挺麻烦的于是就用flowlayout 来addview实现添加伸缩的效果,实现也比较简单. mainActivit ...

  5. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...

    本文将带你了解Android应用开发Android 7.0  BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...

  6. android window 大小,android popupWindow 中宽度莫名很大,求帮助?

    这个是popupwindow的内容xml(就是放了个ListView): android:layout_width="wrap_content" android:layout_he ...

  7. android radiobutton 分组,Android 第十课——UI RadioButton

    常用基础空组件 5 RadioGroup RadioButton 单选按钮时常用组件之一,但是开发过程中虽然很多地方会用到单选按钮,但是却不会用Android系统提供的原始样式,类似我们在写html时 ...

  8. android单线字体,Android自定义字体

    在main文件夹下,新建assets/fonts文件,添加.otf文件 image.png 字体工具类 import android.app.Application; import android.g ...

  9. mp4 android自动播放,Android 使用VideoView播放MP4的简单实现

    使用VideoView播放MP4 播放示例 实现简单的播放功能,播放手机本地的MP4文件.不依赖任何第三方框架,不添加任何防腐剂. 添加一个系统自带的控制条. 申请权限 读取存储中的MP4文件 准备布 ...

  10. android 虚方法,尝试在空对象引用上调用虚方法’android.view.View android.view.View.getRootView()’...

    我收到这个错误, "Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' ...

最新文章

  1. 静态网页与动态的区别
  2. YOLO-Fastest:目前最快的YOLO网络!移动端上可达148 FPS
  3. python学了有什么用处-python用处广吗
  4. Cisco easy *** basic ASA
  5. @所有人,20 万大奖待领取!【全民找“BUG”】活动,等你!
  6. Python中的支持向量机SVM的使用(有实例有源码)
  7. 手把手教你用Python搭建一个AI智能问答系统
  8. SPSS数据分析之列联分析与卡方检验、方差分析与LSD方法【操作详解】
  9. DI使用value属性与value标签的区别以及xml预定义实体引用
  10. 【机器人】项目疑难杂症
  11. python 图形库介绍_python 图形数据库
  12. CentOS 5.2 LVM 新增加一块硬盘的方法
  13. spring-第十八篇之spring AOP基于XML配置文件的管理方式
  14. __index元方法
  15. 记录一次keil调试过程:自动识别GPS厂家芯片
  16. Android系统10 RK3399 init进程启动(十七) Verbose日志级别打开方式
  17. 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)
  18. Procreate绘画教程
  19. 计算机专业网名英语翻译,英文网名_好听的英文网名带翻译
  20. FP16\FP32\INT8\混合精度的含义

热门文章

  1. Ubuntu配置机顶盒踩坑记录(Airplay/DLNA/UPuP/Miracast)
  2. 下载百度地图瓦片和获取瓦片经纬度
  3. 微星的测试软件显示教程,msi afterburner怎么使用显示游戏即时帧率教程
  4. 数据结构题集第一章(严蔚敏)
  5. 反编译获取任何微信小程序源码(完)
  6. PMP题库重要吗?什么样的题库才是好的题库?
  7. pch文件找不到的解决办法
  8. dev的pdf Viewer打印如何从横向打印修改为竖向靠上打印?
  9. 深度干货!一文读懂人脸识别技术(建议收藏)
  10. python 通信_深入浅出通信原理(Python代码版)