现在市面上有很多手机都有了java功能,如西门子的6688i、6618摩托罗拉的388、t720诺其亚的7210、7650等等,我们可以从网上或通过数据线下载好多有趣的java小程到手机里,如各种小游戏、小工具软件,扩展手机的功能。那么,我们编程爱好者能不能自己动手编手机java小程序呢?当然可以了!这样我们既练习了编程,又节省了rmb呢!真是一举两得!因为在网上下载java小程序是收费的。
要想编写手机java小程序,您需要具有一定的java基础或c/c++基础,如果不是,请首先学习java的基本语法。如果你是c/c++的高手,就可以轻松地diy你想要的java小程序了!
一、安装开发工具
目前,各大手机厂商都已发布各自的java小程序开发包,我们到相关的站点都可找到。本文以西门子6688i为例进行介绍,其它厂商和型号的手机编程与其大同小异,只需安装不同的开发包即可。西门子6688i的java小程序开发环境为:borland jbuilder 7 personal + borland mobileset 3.01 + siemens mobility toolkit(smtk)6688i v1.0 beta 7。关于这三个工具可到http://www.cnjm.net下载。
开发工具的安装与设置
首先安装borland jbuilder 7 personal,安装完成后初次运行需要注册,选择have license key,点next>,选择paste license key text,然后把注册码复制进去,确认一次协议后就ok了。
接下来安装borland mobileset 3.01,安装完成后初次运行jbuilder6也需要注册,选择have license key,点next>,选择paste license key text,然后把注册码复制进去,确认一次协议后就ok了。
最后安装siemens mobility toolkit(smtk)6688i 1.0 beta8 或 smtk 3118 1.0 beta8,安装过程中会自动识别jdk的路径为jbuilder6安装路径下的jdk1.3.1。
全部安装完成后还需要配置一下jbuilder7。打开jbuilder7,然后点菜单tools->configure jdks,在jdk home path栏点change,选择6688i smtk安装的路径,要选到6688i_1b8为止,确定后上面的name栏会自动变成siemens,然后点ok搞定。
二、创建工程
启动borland jbuilder 7 personal,新建一个工程"car",本例程编译执得后是一辆赛车在手机屏幕飞驶而过,带背景音乐背景灯可一亮一灭的而且还有振动呢!
在jbuilder7中先新建一个工程:点菜单file -> new project,在对话框(如图1)中输入工程名、路径等内容。请在这里输入name:car;directory:c:/windows/jbproject/car(或你自己选择的路径),然后直接点finish就可以了。
点击菜单file -> new,在对话框中micro属性页中的midiet,点ok(如图2),弹出midiet向导对话框,在对话框中输入包名、类名。请在这里输入package:car;class:car,然后点next。 在下一对话框中输入类名,
class:carscreen;displayable type:javax.microeditoion.icdui.canvas,其它用默认即可,然后点 next,在最后一对话框中直接点finish就可以了。
图2
这时我们发现,borland jbuilder 7 personal已把程序的框架帮我们写好了!剩下的工作就是加入我们自己要写的代码了。
java是基于类的,每个公共类都必须有一个文件相对应。在borland jbuilder 7 personal视图左边的project窗口中,我们可看到已经建好了两个文件:car.java和carscreen.java,前者为程序的起始类文件,后者为显示类文件,双击相应的图标可在borland jbuilder 7 personal视图右边的project窗口中看到程序代码。(如图3)

接下来我们向两个文件中添加代码如下:(注:蓝字部分为添加的代码,其余为borland jbuilder 7 personal自动生成的代码)
文件car.java的内容
package car; public void startapp() { |
文件carscreen.java的内容
| package car; import javax.microedition.lcdui.*; public class carscreen extends canvas implements commandlistener { public carscreen() { c = '/ue1ef'; //设置显示图片的地址 try { jbinit(); } catch(exception e) { e.printstacktrace(); } } private void jbinit() throws exception { setcommandlistener(this); addcommand(new command("退出", command.exit, 1)); //加退出按钮 } public void commandaction(command command, displayable displayable) { if (command.getcommandtype() == command.exit) { car.quitapp(); } } public static char c; protected void paint(graphics g) { g.drawchar(c++, 0, 0, 20); g.drawstring(" made by ldm ",0,68, 20); } } |
car.java是起始类,由midlet继承而来,其中的public void startapp()就像c语言里的main函数一样,是程序第一个执行的函数。 startapp里是开始运行程序所作的一些事,display.getdisplay()是获取屏幕显示的对象,public car()起始类的构造函数,为其他的就没什么可说的了,依样画葫芦就可以了。
carscreen是由canvas类继承而来,同时也需要监测按钮动作。canvas是一个画板,可以在上面画图、画字符串等等。g.drawchar(c++, 0, 0, 20)是以坐标(0,0)作为左上角画一幅位图,g.drawstring("made by ldm ",0,68, 20)是在屏幕底部中间写一行字。 commandaction是按钮按下的响应函数,判断出哪个按钮被按下了,从而可以采取相应的措施。
常用类简介
midlet类
老实说我对这个类的理解也不深刻,也就是照着其他的程序依样画葫芦,我认为这是一个起始类,程序执行总是从这个类开始。必须要有的事件函数是startapp、pauseapp、destroyapp,顾名思义,就是起始、暂停、终止的时候起作用。
form类
form是一个窗体,有标题,可以显示文字也可以列出选项、设置按钮。
canvas类
canvas是一个画板,可以在上面画图、画字符串等等。必须要有的事件函数是paint,在显示的时候调用。
graphics类
graphics是一个画图的类,有画框、画线、画块、画圆、画字符串等功能函数。
这时由于篇幅所限只能简要的介绍一下,不能详尽,感兴趣的朋友可以参考borland mobileset 3.01和 siemens mobility toolkit(smtk)6688i v1.0 beta 7中的帮助,里面有非常详细的介绍,不过你的英文可要好喔! 图4
五、编译运行
点菜单run -> run project, jbuilder会自动调用6688i的仿真程序对程序进行仿真。激动人心的时刻到了!你会在6688i的仿真程序中看到一辆赛车飞驰而过,伴着big big world的乐曲,而且还带振动呢!真是cool毕了!(如图4)

打包执行
在视图左边的project窗口中,用鼠标右键点击car.java文件,在弹出菜单中选择"micro run using car",运行后jbuilder会在工程目录中自动生成car.jar和car.jad两个文件。
下载到mmc卡上的时候,现在java/jam/game下建立一个car目录,然后将car.jar复制到该目录下,另外还要将工程目录下jad目录中的car.jad也复制
闽公网安备 35060202000074号