冰浪

哥已不再年轻 - 坚定梦想,毕生追求!
posts - 85, comments - 90, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

J2ME点滴

Posted on 2009-04-09 09:26 冰浪 阅读(171) 评论(0)  编辑  收藏 所属分类: J2ME
Q: 按理说NOKIA的手机应该比moto及国产手机(MTK)性能要好一点,但是一个大的jar包(比如3MB)的J2ME程序在nokia上跑不起来,但在moto及国产手机上却能跑起来?
       A:一个经验丰富的高手告诉我说,主要是两者的JVM实现机制的差别。前者是加载所有的内容到内存,后者是按需加载。所以前者可以在有限的JAR包中提高性能,后者呢?各有利弊吧。

       Q:一个J2ME程序,在WTK下面可以很好的运行,但放在我的3250上面,可以成功安装,运行时却没有一点反应。真是郁闷。
       A:  这种情况一般是由于内存占用的问题。WTK是在PC上跑的,内存相对来说不吃紧。你的J2ME程序如果在WTK模拟器的范围内,可以跑起来。但在手机上,却没有那么多的内存可用,自然跑不起来。

       Q:我的一个J2ME程序,在WTK下面可以正常的从Form切换到Canvas,但放到手机上,却死活切不过来,气死我啦。
       A:这时,主要原因也可能是内存占用。

1、showNotify与hideNotify调用的时机。
显示顺序:canvas -> Form -> Canvas
在canvas被绘制前,showNotify()会被调用,在showNotify()执行过程中如果有按键,则存在事件队列中,等showNotify()返回后在执行。
如果这个canvas设置了全屏,则showNotify()之后会调用sizeChanged()
showNotify返回后,开始执行paint()。
这是如果要切换到Form,则会先调用hideNotify(),然后显示Form。从Form切换到canvas,则又会调用showNotify(),返回后,调用paint()。

2、在eclipse里面,也可以像JBuilder那样一次修改一个变量在多个地方的使用,方法是:选择变量 ,shift+alt+R,修改,确定,搞定

3、2ME中,如果想读取文本文件,最好是把这个文本文件用utf-8编码,然后在读取的时候,new  String(bytes,"utf-8");

4、在eclipse中,如果出现不能调试的情况,你可以试试把你之前设置的断点都清除掉,然后在try一下。

5、在模拟器上,大小写不敏感,不区分大小写。但是在我的NOKIA3250上,是区分大小写的 。"map.PNG"在wtk模拟器上用map.png可以跑,在手机上是不行的。

6、MIDP 2.0安全机制 与 MIDlet 数字签名
    MIDP 2.0 为 GSM/UTMS 设备定义了 4 种保护域: manufacturer( 设备制造商 ) , operator( 移动运营商 ) , trusted third party( 可信任的第三方 ) , and untrusted( 不受信任域 ) ,除了 untrusted 域外,每个保护域都对应一组根证书,用于签名 MIDlet 的签名证书的根证书必须包含在这些根证书中,使用不同的签名证书签名的 MIDlet 将被自动归类予根证书所属的保护域,根证书与保护域的关系是:一个保护域可以有许多个根证书,而一个根证书只能对应于一个保护域。

    具体来讲, manufacturer 域属于设备制造商,其根证书是设备制造商自己的根证书;而 operator 域运营商,一般使用其 SIM 卡中的根证书;而 trusted third party 域则预置了全球知名的数字证书颁发机构 (CA) 的根证书,用于验证由 CA 颁发的 MIDlet 签名证书;而 untrusted 域没有根证书,将用于没有签名的 MIDlet 和 MIDP 1.0 。

7、当byte[][] bytes = new byte[2][3]时,bytes.length = 2, byte[0].length = 3
8、while(true)循环的一种替代 for(;;){}
9、javap命令的作用
javap是j2se中的一个查看类的方法声明的工具,比如:
javap -private java.util.Calendar
可以看到这个类的方法声明。
10、Graphics的translate方法的用法
        g.translate(x,y)
        把绘制的起始坐标移动到x,y位置,绘制的时候,都是相对于(x,y),如果想恢复到默认的坐标系,则g.translate(-x,-y);


(转于http://jacky-zhang.javaeye.com/blog/153654)

只有注册用户登录后才能发表评论。


网站导航: