j2me App
文章平均质量分 55
yestotofu
这个作者很懒,什么都没留下…
展开
-
Class、Object的关系
Class是所有类的根源;Object是所有对象的根源;测试代码:这是一个类文件,有静态构造,有静态函数,有构造,有普通函数: public class createClass { static{ System.out.println("in static createClass Constructor"); } public createClass原创 2009-11-04 10:36:00 · 3093 阅读 · 0 评论 -
GameCanvas.flushGraphics
在javadoc中,对这个方法的描述是;将off-screen的数据同步到屏幕上,传输完成后,该方法返回。如果GameCanvas不是当前显示的,那么flushGraphics会迅速返回,并且不会产生效果。 这句解释意味着,我需要学会学会在同一个GameCanvas上面实现不同的抽象的View的计较,看来,需要看LWUIT了。曾经以为我可以绕过它的。原创 2010-03-24 16:37:00 · 690 阅读 · 0 评论 -
Java之父黯然离职 开源将何去何从
Java创始人詹姆斯·高斯林(James Gosling)日前在博客中称,已经在4月2日从甲骨文(Oracle)退休。很多人的第一反应是,他是否会投奔微软、Google之类的公司呢?不过Gosling表示目前还没有进一步打算。 关于离职的具体原因,高斯林没有透露。只是在博客中写道:“是的,那些传言都是真的:我已经在一周前(4月2日)从Oracle辞职。我要对 周三参加圣彼得堡TechDays希望听转载 2010-04-16 14:11:00 · 1968 阅读 · 1 评论 -
HTTPClient模拟登陆开心网001(from javaeye)
网站登陆分类 不考虑HTTPS,网站通过浏览器登陆大约可以分为如下几类 密码明文传输,用户在浏览器输入用户名密码,然后用明文传输到网站。人人网就是这种做法。使用HTTP协议Authentication机制,一般网站使用的少。使用JS对用户输入的密码进行处理,网络上不用传输明文密码了。开心001采用的这种做法。另外: 有些网站也提供接口,让用户可以编写客户端来访问网站,例如a转载 2010-04-16 14:33:00 · 3993 阅读 · 1 评论 -
JBLend虚拟机与MTK上原有java虚拟机的差异
在6225平台上的一个java程序,在6235上不能运行了。在6235上面是jblend的虚拟机。用二分法发现是:Display.getCurrent.setCommandListener();在jblend上面运行会导致异常。原创 2010-04-30 10:36:00 · 1468 阅读 · 1 评论 -
Touch001项目实现过程中遇到的一个技术问题
整个程序架构中用了xml来配置视图,定义了两个主要的结构CMenu和IMenuView,一个记录数据,一个记录视图。这两个结构放在两个Hashtable中。存放CMenu的Hashtable的key为Menu的Name,为独一无二的。存放IMenuView的Hashtable的key为构建该IMenuView的Class的name,可能存在不同的CMenu用同一个class处理的情况,这就要求Cl原创 2010-05-07 15:18:00 · 411 阅读 · 0 评论 -
读opensource project talkingClock有感
<br />talkingClock是google code上的一个j2me 的opensource project。<br /> <br />这个项目对我的帮助有两点:<br /> <br />第一是它的日志,这种分级的日志我想做,但一直懒得去做,现在可以直接用了。用这个日志,可以提高模拟器移植到实际设备后的调试效率。<br /> <br />第二是它的本地语言。通过配置语言类型,然后,读取对应的语言文件,就可以灵活配置程序的语言类型了。这种方法比我之前在一个资源类中存放字符信息灵活性更佳。对这部分稍微修原创 2010-06-18 19:41:00 · 617 阅读 · 0 评论 -
编码及为什么要用UTF-8?
<br />不得不说的是大小端:Big Endian和Small Endian;<br />诸如:0x12345678<br />如果是Big Endian: 则byte[0](内存中的低地址)存0x12; byte[3](内存中的高地址)存0x78;<br />即重要的放在低地址,称为大端;<br /> <br />而Small Endian;则刚好相反;byte[0](内存中的低地址)存0x78;byte[3](内存中的高地址)存0x12;<br />即重要的放在高地址;称为小端;<br /> <br原创 2010-08-14 15:19:00 · 3861 阅读 · 1 评论 -
慎用""
<br />“”是什么意思呢?""和null是什么关系呢?<br />写了一段测试代码:<br /> <br />String str = ""; if(str == null){ System.out.println("str equals null"); return; } System.out.println("length:"+str.length()); char[] ch = str.toCharArray(); if(ch == null){原创 2010-09-15 17:28:00 · 906 阅读 · 0 评论 -
两个最容易被人忽略的基本代码优化技术zz
<br /> <br />Dr. Dobb’s Blogger的Walter Bright曾写了一篇博文《Overlooked Essentials For Optimizing Code》,为我们总结了两个最容易被人忽略的基本代码优化技术。酷壳个人网站版主陈皓对本文进行了翻译,现转载于此,供大家学习。全文如下:<br /> <br />我编写程序至今有35年了,我做了很多关于程序执行速度方面优化的工(一个示例),我也看过其它人做的优化。我发现有两个最基本的优化技术总是被人所忽略。<br />注意,这两个技原创 2010-09-21 13:05:00 · 652 阅读 · 0 评论 -
几个知识点: null;/r/n;
<br />1. 在Java中,String的初始值是null;如果处理不当,就会看到这样的信息:"xxx null xxx",这个null是怎么来的呢?<br />String str = null; System.out.println("hello "+str+" world"); <br />这段代码打印出来的信息是:hello null world.<br />即在做String+String操作时,null会被转换为字符串:"null"<br />StringBuffer sb = new原创 2010-11-10 09:20:00 · 1130 阅读 · 0 评论 -
在WebService上传递字节流
<br />要通过WebService上传图片,到网上搜出一大堆,最有用的就是郑钧的博客。<br /> <br />想了一下,原理很简单。<br /> <br />webservice,要实现在Java和.net之间通信,最基本的元素就是类型;SOAP定义了四种基本类型,int/long/boolean/String;<br /> <br />其它类型都是不支持的。要使用其它类型,就要做类型映射,就是将SOAP不认识的类型,映射为SOAP认识的类型;比如,java中的Vector,就不能直接用。因为.net原创 2010-11-16 18:10:00 · 7555 阅读 · 2 评论 -
KUIX源码分析一
<br />Kuix是Kalmeo的一个J2ME图形方面的开源项目,很漂亮;<br /> <br />作为一个图形库,它有几个标准配置:<br /> <br />一个基本的Canvas; 这个Canvas叫KuixCanvas;属于包:org.kalmeo.kuix.core;<br /> <br />一个接口;在这个Canvas之上的丰富的图形类库,这个类库都实现了同一个接口,或者继承自同一个适配器类;<br />这个适配器类叫Widget;属于包:org.kalmeo.kuix.widget;<br /原创 2010-11-22 16:08:00 · 855 阅读 · 0 评论 -
在SUN WTK上定制自己的模拟器
在新的项目中,要求使用一种非常规的屏幕分辨率,SUN WTK提供的标准模拟器不能满足要求,在网上搜了些文章,开始了定制模拟器之旅,非常Easy。 指导文章的名称叫:BasicCustomizationGuide.pdf。Google一下就可以找到。 记录几个要点: 1. 配置文件的目录:C:/WTK2.5.2/wtklib/devices 2. 文件夹的名称一定要与原创 2010-03-19 15:54:00 · 1316 阅读 · 0 评论 -
介绍MIDP2.0新特性Alpha混合
在MIDP2.0中新增了Alpha混合特性,我们可以使用这个特性来对图片进行一些处理。本文将结合一个具体的例子说明一下Alpha混合。 首先我们参考一下MIDP2.0 java doc中关于Alpha Processing的说明:在可修改图片中的每个像素都必须是完全模糊的,在不可修改图片中的每个像素可以是完全透明的,完全模糊的或者介于两者之间的,也就是半透明。系统的实现必须要转载 2010-03-11 22:28:00 · 376 阅读 · 0 评论 -
仿造LWUIT textField的一次尝试
在应用程序开发中经常遇到用户输入的问题;Sun MIDP提供了TextField控件;这个控件用起来不方便,一个原因是TextField的实现,不同的java虚拟机移植,实现不同,有的java虚拟机实现不方便,应用开发者对此无能为力;比如我现在用的这个j2me平台,用户输入必须要先暂停虚拟机,切换到另一个本地实现的窗口,输入完毕后,再恢复虚拟机;客户对此抱怨很大;另一个原因是高级UI入门简单,但原创 2009-11-20 20:10:00 · 731 阅读 · 3 评论 -
使用kxml解析xml文件(一)
这个是参照ibm网站上的文章做的。 xml源文件: <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"> Meerkat: An Open2 Wire Servi原创 2010-01-19 13:30:00 · 825 阅读 · 0 评论 -
Rss及Rss文件格式
Rss简介RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),通常被用于新闻和其他按顺序排列的网站,例如Blog。RSS就是一种用来分发和汇集网页内容的XML格式!RSS =Really Simple Syndication(真正简单的聚合 )或Rich Site Summary(丰富站点摘要 )Rss目前已经被广泛的应用 也是xml应用中的最成功的一项。RSS 没有统转载 2010-01-19 14:09:00 · 5220 阅读 · 0 评论 -
使用kxml解析xml文件(二)
一. 不同XML格式上的差异 与 Meerkat: An Open2 Wire Service http://meerkat.oreillynet.com Meerkat is a Web-based syndicated content reader based on RSS ("Rich Site Summary").原创 2010-01-20 10:14:00 · 686 阅读 · 0 评论 -
串口操作的异步实现:仿照MIDP2.0按键事件处理方法
j2me提供了CommConnection对串口协议封装,采用的是一种同步机制;一般的流程是:发命令---》循环读响应数据;这种操作很简单,当交互的次数较多时,或者使用状态机时,代码就是大循环套小循环,而且结构也不好看;所以,我想实现对串口封装,实现一种异步的方式。对上层应用来说,要求如下:1. 启动;启动串口;2. 发送:发送命令;3. 如果有传输层协议,开启定时器,当原创 2009-11-27 20:38:00 · 712 阅读 · 0 评论 -
j2me中的线程间同步测试
notify和wait用于线程间同步,下面是3个简单的例子;例子一:public class synObject { private Thread m_synT; Object obj = new Object(); public void start(){ m_synT = new synT(1); m_synT.start(); n原创 2009-11-26 22:03:00 · 604 阅读 · 0 评论 -
修改KXMl使其符合平台要求
KXML有两个主要的入口,一个是XMLParser,用于解析XML文件,一个是XMLWriter,用于生成XML文件;前面的文章已经分析过,XML的语法很简单,自己来写也不会花太多时间。不过,本着能找到现成的就绝不自己写的原则,我决定修改KXML来满足平台的要求。 KXML的局限性在于Parser和Writer的构造方法中,参数的传递必须为Reader和Writer。而这个Reader原创 2010-01-27 23:18:00 · 554 阅读 · 0 评论 -
由in.use想到的
在Eclipse中,当模拟器运行时,在appdb目录下面会有产生一个in.use的文件,这个文件是空的,当模拟器关闭后,这个文件被删除。这让我想到了java程序设计中的异常处理。在java程序启动时,数据从磁盘导入内存,此时,内存中的数据与磁盘是一致的。在程序运行过程中,内存中的数据被修改,由于效率、速度等各方面的原因,磁盘中的数据没有被修改。这就会使得磁盘中的数据与内存中的数据不一致。在ja原创 2010-02-01 21:21:00 · 397 阅读 · 0 评论 -
串口操作的异步实现的完善
本周,将之前发表的文章 串口操作的异步实现 应用到项目中的RFID、条码、打印等串口应用时,发现了一些问题:1. 在使用串口前,应清除串口中无用的数据;2. 从串口读取数据方法的改进;3. 数据的解析4. 发送5. 资源占用6. 退出和资源的释放 一.在使用串口前,应清除串口中无用的数据;一种方法是在CommHandler线程循环进入前清除无用的数据;一种方法原创 2009-12-12 10:48:00 · 776 阅读 · 0 评论 -
GCF liked Huayu LIB
厌倦了代码的拷贝粘贴,终于下定决心把基于串口的应用封装了;库的设计参考MIDP GCF架构,并提供了GCF liked接口;先简要介绍背景: HUAYU是一家以PDA为核心的工业控制领域的二次开发方案提供商,在串口上开发了多种应用,如条码、打印、RFID;这个库的目标是将条码、打印、RFID等像串口一样封装起来,提供GCF Liked接口; 框架如下: Huay原创 2009-12-21 17:38:00 · 503 阅读 · 0 评论 -
串口的数据协议解析
接收来自串口的数据并解析,看起来是件容易的事情。而实际上,当协议变得复杂时,处理不好或者考虑不完善,会产生很多问题。 一般来说,通过串口传输的单个数据包都不会太大,否则,会导致数据被覆盖。对于通过串口传输的大数据,处理的办法是分割成多个小的数据包。可能出现的情况是因为接收和读取的不同步,接收到的数据需要分为多次读取,每次读取的单个数据包的一部分或者是一个数据包的后半部分和一个数据包的前半部原创 2010-03-05 15:43:00 · 13232 阅读 · 1 评论 -
程序的完善性
做出一个稳定的程序并不容易。java程序在出现没有捕捉到的异常,比如ArrayIndexOutOfBound后,程序将不会正常工作。这就会出现这样的现象,一个程序正常运行很久了,有一天不能用了,找不到原因。这就是程序的容错性不好,某种情况没有考虑到。或者存在某些不应该存在的假设。当程序变大时,这类错误就很难找到。因此,有必要养成一些好的习惯。 1. 每个方法、每个类都要看成独立的模块。原创 2010-03-09 21:20:00 · 729 阅读 · 0 评论 -
昨天下午解决问题的教训
<br />平台A和平台B之间存在差异,客户的程序在平台A上可以正常工作,而在平台B上性能很差。<br />业务逻辑上的因素可以排除,可能的原因就是平台之间在硬件资源的软件控制上存在差异、平台B的性能有问题、客户的单片机端硬件和单片机程序存在问题。<br /> <br />客户怀疑是平台B性能存在问题,我们先测试了平台B的性能,没有问题。<br /> <br />于是,认为问题出现在平台B在硬件资源的软件控制上,试图通过软件程序的调整来解决这个问题。<br /> <br />试了几个小时,无果。<br />原创 2011-03-23 09:53:00 · 840 阅读 · 0 评论