j2me midp2.0源码分析
文章平均质量分 71
yestotofu
这个作者很懒,什么都没留下…
展开
-
MidletSuite、Midlet、Schedule、Display、MidletState代码解析
com.sun.midp.main.Main.java文件是midp的起点;里面有main、manage、runLocalClass等函数;在runLocalClass中,创建了MIDletSuite,并创建MIDlet:MIDletSuite midletSuite; try { // assume a class name of a MID原创 2009-11-04 14:19:00 · 811 阅读 · 0 评论 -
GCF CommConnection Connector实现代码分析
GCF提供了一个很方便的架构,一般操作串口都是以下步骤:1. 打开串口:CommConnection cc = (CommConnection)Connector.open("comm:COM3:baudrate=......");2. 打开输入流:InputStream is = cc.openInputStream()3. 打开输出流:OutputStream os = cc.o原创 2009-11-13 18:10:00 · 699 阅读 · 0 评论 -
串口操作的异步实现:仿照MIDP2.0按键事件处理方法
j2me提供了CommConnection对串口协议封装,采用的是一种同步机制;一般的流程是:发命令---》循环读响应数据;这种操作很简单,当交互的次数较多时,或者使用状态机时,代码就是大循环套小循环,而且结构也不好看;所以,我想实现对串口封装,实现一种异步的方式。对上层应用来说,要求如下:1. 启动;启动串口;2. 发送:发送命令;3. 如果有传输层协议,开启定时器,当原创 2009-11-27 20:38:00 · 729 阅读 · 0 评论 -
修改KXMl使其符合平台要求
KXML有两个主要的入口,一个是XMLParser,用于解析XML文件,一个是XMLWriter,用于生成XML文件;前面的文章已经分析过,XML的语法很简单,自己来写也不会花太多时间。不过,本着能找到现成的就绝不自己写的原则,我决定修改KXML来满足平台的要求。 KXML的局限性在于Parser和Writer的构造方法中,参数的传递必须为Reader和Writer。而这个Reader原创 2010-01-27 23:18:00 · 577 阅读 · 0 评论 -
GCF CommConnection代码分析(详细分析)
在前文:GCF CommConnection Conector代码分析 中,对CommConnection实现的架构做了大致的分析,在开发过程中,需要了解更多的细节并根据这个结构封装自己的库,在这里,对这部分代码做一个总结。 1. 接口关系图;2. 串口实现细节;com.sun.midp.io.comm.Protocol类代码分析3. com.sun.midp.io.Buffere原创 2009-12-12 16:42:00 · 1154 阅读 · 6 评论 -
CLDC Calendar类的实现
在J2ME中,通过Calendar和TimeZone可以获得当前的时间,它是如何实现的呢? 一般的使用方法如下所示:m_calendar = Calendar.getInstance();m_calendar.setTimeZone(m_tz);m_calendar.get(Calendar.YEAR)m_calendar.get(Calendar.MONTH)+1)m原创 2009-12-24 10:33:00 · 622 阅读 · 0 评论 -
MIDP Command TextField TextBox Form代码分析
在高级UI(比如Form或者List)上添加多个Command,在模拟器上和实际设备上的效果不同。TextField的输入效果,在模拟器和实际设备上也不同。它们为什么会有这种差异?能否实现一个控件,通过调用某个本地方法,实现TextField类似的效果?我要实现一个弹出的command List,能否参照MIDP的代码?带着这些疑问,我阅读了MIDP的相关代码。 command相关的有二个疑问: 1.command是怎么绘制的? 2.command是怎么响应的? TextF原创 2010-07-13 21:23:00 · 619 阅读 · 0 评论 -
重读CLDC之二:类Reader、StreamReader、Helper和InputStreamReader
<br />Reader、StreamReader、Helper、InputStreamReader的结构与Writer、StreamWriter、Helper、OutputStreamWriter的结构类似;<br />差异有两个地方:<br />1。 在Reader中,要读取多大长度的字符,先根据编码将该长度换算为字节流的长度;再分配该长度的字节流,将数据读入后转换。<br />2。 Skip,skip的原理是,读取后跳过。还是要读的。所以在Reader中分配了,对应空间的长度;<br /> <br /原创 2010-09-02 11:25:00 · 676 阅读 · 0 评论 -
重读MIDP和CLDC源码: 序
<br />重看CLDC源码的原因是因为对J2ME中如何清理内存以便让垃圾回收器清理不甚了解。<br /> <br />上周为客户写的一个框架,在运行了四个小时之后死掉了。通过对模拟器及实际设备内存的监控,发现内存中垃圾回收器对一部分本该释放掉的内存无法回收,这部分越积越多,剩余内存越来越小,最后无内存可用。<br />找到问题很难,首先要定位的是:是内存问题还是平台的问题。在模拟器上运行数小时后,可用的内存在那狭小的空间变化,最后死机。说明了内存肯定是有问题的。合理的结果应该是垃圾清理后剩余内存和刚开始运原创 2010-09-01 21:28:00 · 667 阅读 · 0 评论