j2me平台中有几个重要的概念,例如内存、cldc、midp等。初学j2me往往对这些概念理解不深,甚至出现偏差。本文的目的在于对j2me中的相关重要概念进行阐述。
内存
我们一直在强调,移动信息设备的内存非常小,使用起来应该加倍的珍惜,但是我们却很少知道这些内存是如何分类的,下面将做详细的介绍。事实上midp设备的内存分为三种,programme memory、heap、persistent storage。
programme memory是移动信息设备分配给midlet suite的空间,因为midlet suite是以jar文件进行发布的,所以这个文件的大小可以认为是programme memory的大小。一些厂商对programme memory的最大值是有限制的,例如我的nokia 6108的最大值是 64k,超过的话将不能进行安装。减小midlet suite的大小非常重要,一个便捷的方法就是使用混淆器对应用程序进行混淆,这样可以减小jar文件的大小。在以后的文章中我会谈到如何使用proguard。
heap是应用程序在运行过程中存放所创建的对象的存储空间,本地变量和成员变量也是放在heap上的,midp设备中提供的heap空间大概在几十k到几百k。
persistent storage的空间是用来实现midp应用程序的本地数据持久性存储的,在record management system从入门到精通中我做了详细的介绍这里就不再多说了。
2. connected limited device configuration
cldc包括一个java虚拟机和一系列的基础类,j2me的专家组经过对移动信息设备进行硬件抽象后得到他们的特点,然后设计并实现了在移动信息设备上运行的java虚拟机,通常我们把它叫做kvm。在cldc1.0还同时提供了由java.io、java.lang、javax.microediton.io、java.util组成的基础类。在cldc1.1里面添加了java.lang.ref。
3. mobile infomation device profile
midp是运行在cldc基础之上的,在midp中定义了应用程序的生命周期、用户图形界面、数据管理系统等子集,从而构建起了j2me平台。通常,j2me平台由一个cldc和一个或者多个profile构成。