首先从程序上来说的话,基本是没有多少区别的.都是使用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()。

android是j2me的一个实现吗,J2me和安卓有什么区别相关推荐

  1. GalHttprequest类库简介——android平台上的一个轻量级的http网络请求及缓存框架

    2019独角兽企业重金招聘Python工程师标准>>> GalHttprequest名字的由来 开发过iOS项目的朋友都应该知道 ASIHTTPRequest类库, ASIHTTPR ...

  2. 为什么Android项目mainactivity中有一个变量R_博客笔记大汇总,Android优化总结篇

    博客笔记大汇总[16年3月到至今],包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并 ...

  3. java工程引用其他工程,Android工程:引用另一个Android工程的方法详解

    现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个Android工程B,想在B中引用A. 一个思路是把工程A做成纯Jar包,这样其他的工程就可以直 ...

  4. android中布局全屏,怎么在Android 应用中实现一个全屏与非全屏功能

    怎么在Android 应用中实现一个全屏与非全屏功能 发布时间:2020-12-04 17:31:45 来源:亿速云 阅读:135 作者:Leah 怎么在Android 应用中实现一个全屏与非全屏功能 ...

  5. android led闪烁功能,如何在Android应用层中制作一个LED指示灯效果

    如何在Android应用层中制作一个LED指示灯效果 发布时间:2020-12-08 16:12:59 来源:亿速云 阅读:86 作者:Leah 本篇文章给大家分享的是有关如何在Android应用层中 ...

  6. 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...

    适用于Android开发的简单聊天软件 适用于android 开发.是一个简单的聊天软件,包括知识点,各个控件的运用(ExpandableListView,ViewPager,Spinner,Line ...

  7. android中的后退功能,如何在Android应用中实现一个返回键功能

    如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...

  8. android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能

    怎么在Android应用中实现一个网页图片浏览功能 发布时间:2020-12-05 17:28:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关怎么在Android应用中实现 ...

  9. android小球移动代码,Android中如何绘制一个跟随手指移动的小球

    Android中如何绘制一个跟随手指移动的小球 发布时间:2020-11-07 16:22:43 来源:亿速云 阅读:82 作者:Leah 本篇文章为大家展示了Android中如何绘制一个跟随手指移动 ...

  10. linux底层把值传给上层,Android上层如何调用一个底层函数

    Android上层如何调用一个底层函数 1. 背景 本文讲的是调用流程,如何找到相应代码位置,更多的是一种分析代码的方式. 此处将从ZygoteInit调用Zygote.forkSystemServe ...

最新文章

  1. PHP下的浮点运算不准的解决办法
  2. [YTU]_1064 (输入三个字符串,按由小到大的顺序输出)
  3. ASP.NET高并发解决方案
  4. Linux下shell反弹
  5. 用户不在sudoers文件中,需要使用命令 sudo npm install 的解决方法
  6. 曾遭周鸿祎全网封杀的 360 猛将 :草根打工到 36 岁身家上亿的逆袭!
  7. CSS之设置p段落中的文字与页面左侧缩进两个字符!...
  8. 最新发布|深度学习必学“圣经”花书出视频课了!附带论文代码精读讲解!
  9. [翻译]Review——How JavaScript works:The building blocks of Web Workers
  10. 记录几个贴代码比较美观的网站
  11. SwiftUI iOS 精品开源之 具有货币转换功能的iOS计算器 网络后端汇率API (教程含源码)
  12. java校园自行车租赁买卖系统ssm
  13. gnome 如何自定义样式_在Gnome 3中自定义字体
  14. java 使用adobe fms流媒体
  15. This version of the JDBC driver is only compatible with Elasticsearch version 7.9 or newer; attempti
  16. vue [ECharts] Unkown series surface
  17. LeetCode 876 题解
  18. input-file 部分手机不能拍照问题
  19. Qt 之 QNetworkProxy(网络代理)
  20. python 长字符串 ,每行指定长度输出

热门文章

  1. 2015年硅谷最火技术十问
  2. 清华计算机系超算团队,清华大学学生超算团队
  3. 阿里的技术绝境与飞天之路
  4. vb杨辉三角代码编写_VB语言中输出杨辉三角形的方法
  5. 中孚计算机保密玩游戏,中孚计算机保密检查
  6. 玩转二叉链表 (20 分)
  7. linux虚拟机镜像下载
  8. Mstar的Monitor方案笔记(五)——Gamma
  9. VS2017 Visual Assist X破解方法
  10. kali linux nmap命令的使用