利用Java 编写手机应用程序--Motorola iDEN篇(2) (转),利用Java编写,用Java编写手,Java编写手机,ava编写手机应,va编写手机应用,a编写手机应用程,编写手机应用程序,写手机应用程序-,手机应用程序,机应用程序M,应用程序Mo,用程序Mot,程序Moto,序Motor,Motoro,-Motorol,Motorola,otorolai,torolaiD,orolaiDE,rolaiDEN,olaiDEN篇,laiDEN篇2 利用Java 编写手机应用程序--Motorola iDEN篇(2) (转)----编程资料集中营--八角123--bajiao123.com
编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
利用Java 编写手机应用程序--Motorola iDEN篇(2) (转),Dlet进行调试编写PalmOS上的Spotlet时,我们可以利用System.out.println()函式帮我们印出一些讯息以帮助调试,那幺在手机上的MIDlet呢?原则上,我们还是可以利用System.out.println()函式做一些输出。当模拟器执行时,就会在命令列上输出一些讯息。另外,在PalmOS上,有KVMutil.prc可以帮助我们纪录程,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> JAVA 专区 >> J2ME 技术 >> 文章正文
【字体:
利用Java 编写手机应用程序--Motorola iDEN篇(2) (转)   进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:本站    点击数:    更新时间:2007-6-9    

利用Java 编写手机应用程序--Motorola iDEN篇(2) (转)

encoding "Big5" xxxx.java。也就是说,当编译器读取到Big5编码范围的中文字时,会自动将此Big5码经过「Big5è Unicode 对照表」将Big5转为Unicode,也就是说,经过查表之后,
    “起”这个字的Unicode编码为555F。
    “动”这个字的Unicode编码为5272。
然后再利用UTF8编码将此Unicode转为UTF8,储存在类文件之中,因此,如果您用UltraEdit之类的文字编辑器查看类文件时,您会看到,
    "起"这个字的UTF8编码为E5959F。
    "动"这个字的UTF8编码为E58B95。

    接着,当我们在程序执行时如果要将中文输出,则JVM会负责读进UTF8码,然后将其转回Unicode,最后依据您所使用的系统环境预设的编码转回Big5,再输出至屏幕上。
    可是经过测试结果,KVM似乎只有做到把UTF8读进来,转换回Unicode之后就直接输出了。少了转回Big5的步骤,因此,操作系统把Unicode当作Big5来处理,自然就找不到该码所对应的中文字了,也因此输出的是一堆 ????? 的符号。这也是我们在PalmOS上即使装了中文系统,也无法正常显示中文的缘故。
    OK,既然知道KVM只帮我们做了一半的工作,那事情就好办了,我们只要让UTF8转回之后,仍然保有Big5的编码方式即可,于是我们使用指令javac -encoding ISO8859_1 xxxx.java,请编译器不要将程序码中中文Big5编码的两个byte视为一体(因为视为一体就会引发查询Big5 è Unicode对照表的工作),只要将中文当作是普通的西欧字母字集即可,因此,当我们使用了上述指令,您会发现类文件之中的中文变成,
    "起"这个字的UTF8编码为C2B1 C392。
    "动"这个字的UTF8编码为C2B0 C38A。
大家可以发现编译器把B1、D2、B0、CA个别当作一个码来处理。于是,当KVM读到此编码时,就会将他们转回B1D2以及B0CA,然后KVM直接输出,就可以正常地使用中文了。

    最后总结整个问题,就笔者的推断,CLDC内附的模拟器再没有使用javac –encoding ISO8859_1 xxxx.java指令之前,会在用户接口使命令列输出乱码,这才是正常的结果, 而Motorola J2ME SDK内附模拟器的用户接口中文之所以没问题,很可能只是因为模拟器操作的差异。因此根据KVM的输出结果来看,很可能在实际的手机上,我们都必须加上-encoding ISO8859_1选项才能正确输出中文吧!

    在此特别感谢静宜大学资管系的唐恺隆(kailung.tang@msa.hinet.net)同学。因为笔者于他经过热烈的讨论之后,我们才能对J2ME的中文问题有更深入的认识
█支持Motorola J2ME SDK的开发工具
    在编写本文的时候,支持MIDlet开发的集成开发环境(IDE)只有Motorola J2ME SDK附带文件之中所提到的CodeWarrior而已。相信其它厂商,如Borland,应该也会很快地利用其产品JBuilder的OpenTools API来支持MIDlet的开发才对,更何况Borland JBuilder目前已经有Spotlet的解决方案了。
    因为笔者无法拿到CodeWarrior作测试,所以无法在此提供大家相关信息,相信如果有机会的话,会另外以专文向大家介绍如何利用CodeWarrior编写MIDlet。
    Motorola J2ME SDK附带文件在附录的部分有对利用CodeWarrior开发MIDlet做简单的介绍,相信对初学者来说,已经相当足够了。

█Motorola J2ME SDK内含的辅助开发工具
    在Motorola J2ME SDK之中内含三项辅助开发工具,可以便利我们的程序开发工作,它们分别是:
  • J2ME模拟器(J2ME Emulator)
        让您可以在您的PC上模拟Motorola将来会支持J2ME的手机装置。如此一来就可以在PC上直接测试写好的程序。  
  • Bytecode验证器(Bytecode Verifier)
        此验证器用来验证类文件(classfile)之中的bytecode不会对存储器做非法的存取。并确认载入虚拟机器的类文件所做的所有动作皆符合Java虚拟机器规格(Java Virtual Machine Specification)。
  • 配置编辑器(Configuration Editor)
        让您能够建立或修改device profile。

    在Motorola J2ME SDK内附的文件之中对这三个工具有详细的说明,笔者在此就不再赘述了。

█总结
    呼!好累人,终于到了该做总结的时候了! 大家以为MIDlet就这样结束了吗?不! MIDlet还有许多好玩的玩意儿呢! 我们将在本系列之后的文章中为大家更深入探讨MIDlet。咱们下次见。

█附录:范例程序
    Motorola J2ME SDK之中内附许多有趣的范例,它们位于demo/midlets/目录底下。有兴趣继续精进的读者可以由这些范例学到更多有关MIDlet的深入技巧,由于这些范例的执行画面过大,所以在本文之中就将他们省略,请读者们自行参考说明文件。
这些范例程序有:
Bounce
com.mot.j2me.midlets.bounce.Bounce
PaddleBall
com.mot.j2me.midlets.paddleball.PaddleBall
Scribble
com.mot.j2me.midlets.scribble.Scribble
FontDemo
com.mot.j2me.midlets.tutorials.FontDemo
GraphicsDemo
com.mot.j2me.midlets.tutorials.GraphicsDemo
RecordStoreDemo
com.mot.j2me.midlets.tutorials.RecordStoreDemo
UDP Tutorial Application
com.mot.j2me.midlets.tutorials.UDPReceive
AlertTest
com.mot.j2me.midlets.tests.AlertTest
ChoiceGroupTest
com.mot.j2me.midlets.tests.ChoiceGroupTest
DateFieldTest
com.mot.j2me.midlets.tests.DateF

上一页  [1] [2] [3] 下一页

   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营