服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

siemens java开发初步


  一、安装开发工具

本文是介绍如何编写在siemens 6688i上运行的java程序,本文从一个工程tutorial开始,以实例讲述了编写方法。由于本人也是个初学者,还没有仔细看过java的书,只是略有点c++基础,对java的术语都不知道,有错误的地方还请大家指正,并且本文会不断更正、完善。
阅读本文前,请确认您是否具有一定的java基础或c/c++基础,如果不是,请首先学习java的基本语法。

本文的所有例子都是在borland jbuilder 6 personal + borland mobileset 2.0 + siemens mobility toolkit(smtk)6688i v1.0 beta 7上运行通过的,另外还需要打包工具jar。关于这四个工具的下载地点请去我的论坛查找。

开发工具的安装与设置
首先安装borland jbuilder 6 personal,安装完成后初次运行需要注册,选择have license key,点next>,选择paste license key text,然后把下面这堆注册码复制进去,在确认一次协议后就ok了。
注册码如下:
%26%ffj%f4%00%00%023%df%dd%23f
%bd%83%df3%cd%02%1d%e0%d7%a1%1
4%c1%7e%28%a8%ea%c0x%dew%3a%c3
%b2%abx%92%02%14%81%8d%f4%0b%9
c%27y%90%df%fe%7f%df%23%7e%a7%
f2%e09%a1%00%7b%81%aa%9c%1a%b0
_%28%cb%e8%eba%a1fn%f9%99%d9v%
87%01f%d8%8e%fa%3c%fc%1d%3e%a4
%be%b5%0a%e7%0bg%e3%ae%af%5d%a
a%5c%17%fd%eb%cav%b2%09%16%e3%
cd%e0%0b%f1e%3e%ca%fa%cb%09%d5
7%3c%9c%f2%fev%cf%0ev%8d%bc%cc
y%85my%f6%cb%c8d%f1%5e%29%db%c
0%8a%17%e2k%22%f5%a9%80o%b1%20
%0c%d8%fd%b5%7c%ed%0d%7e%85%8a
%f0t%9a%0d%17%f1%96%95%0b%e2%1
d%1e%8e%9c%ecq%86i%20%cf%e0%f8
%7f%d2%02%7e%ac%90%80-%d5mm%f3
%e7%86%1d%b7%5cw%a0%e8%f7%3c%8
4%1f%0a%bf%a0%e2j%e0%16%16%d7%
93%e82%aav%3b%89%b0%da%11%aemn
%fd%a1%b2i%b2%08%13%e5%ac%cf%1
6%bct%1c%aa%a4%ff%7c%f8%24%05%
bb%d7%cd%5e%f1%7ec%ac%ec%8b1%b
ddc%91%d7%dc%29%a7ei%de%a3%f4%
2b%dd.o%ed%f3%8bt%e6e%24%d3%fc
%fd%60%d7c%3d%c9%ca%ab%0d%fbf6
%95%d8%d1%5b%c8t%19%ed%8a%b1%1
8%81%02u%8a%8c%92%20%95vi%b5%8
2%e7h%d1y%1a%c1%bc%88%26%fd_%0
5%b3%a5%db%0b%8d%157%f9%fb%8cp
%fa%0da%c8%99%96g%b5%02%3f%9c%
c9%9a%08%97oq%a5%bc%92t%81.%05
%f7%a7%ff%18%be_%22%a6%8d%eak%
d6%06%3d%a5%d7%dck%84o6%e4%e0%
c5d%fa%27%7d%b8%c0%ab%3e%83uv%
b8%f6%d2%2b%b1hn%a6%f0%a70%faf
%7e%aa%c6%df%27%9d%0c%05%a0%97
%9e%3e%8bax%d1%bb%ac%1b%82%7b%
25%ce%8d%a6n%feiy%95%a6%f4%3e%
ddn-%eb%b5%869%cd%5bo%da%ee%a8
l%edv%20%cd%e9%e1j%8f%5b%0b%82
%d4%b3t%a1%1ek%95%d7%ad%5b%ff%
18g%a1%f6%9b.%b6%7b3%e1%96%cf*
%f2%05v%a6%e1%8f%3c%a1%05%29%d
f%c4%d4p%b1o8%d3%d7%b4%12%97%0
5%0e%b2%d7%bcw%f0%17d%cd%90%e0
i%a3%00d%90%bd%c4l%b1ii%96%e1%
bd%3f%ab%28z%f5%d2%92%25%ff6h%
db%e9%c9%1a%99%27

接下来安装borland mobileset 2.0,安装完成后初次运行jbuilder6也需要注册,选择have license key,点next>,选择paste license key text,然后把下面这堆注册码复制进去,在确认一次协议后就ok了。
注册码如下:
r%1b%abn%00%00%02l%df%dd%23f%b
d%83%df3%cd%02%1d%e0%d7%a1%14%
c1%7e%28%a8%ea%c0x%dew%3a%c3%b
2%abx%92%02%14%81%8d%f4%0b%9c%
27y%90%df%fe%7f%df%23%7e%a7%f2
%e09%a1%00%7b%81%aa%9c%1a%b0_%
28%cb%e8%eba%a1fn%f9%99%d9v%87
%01f%d8%8e%fa%3c%fc%1d%3e%a4%b
e%b5%0a%e7%0bg%e3%ae%af%5d%aa%
5c%17%fd%eb%cav%c1%1e%7d%90%c0
%99o%8f%0b1%c7%ea%aa%0b%c8f_%8
3%9e%ec*%bcp8%82%b1%dc%18%87p%
08%95%d4%a4v%8d-w%b5%cf%87%07%
83i%3f%84%ca%9f%03%a3%5c%7f%a6
%93%ba%1d%f3l%15%96%8a%80a%8a%
11%1d%9c%eb%eec%e4u%04%fa%93%f
cw%fc%21h%a2%f3%f8z%ac%11%7b%d
7%fd%96s%c36%25%9b%8a%95%1d%b2
%22d%a5%93%9a*%fa%09q%d7%cb%86
y%e3%1ah%c7%9c%9a%5c%b5%0b%27%
f8%d2%bb%7c%bdnb%83%b1%bd%3b%d
c%17n%f9%dd%adw%d1g%1f%a6%da%e
fp%a4m%06%e2%f1%b2w%e8t%0d%b2%
b2%ac%29%d8%1f%7b%92%ae%9a%14%
c02l%da%f6%a5w%bd0%5c%8b%8a%f0
v%87%15b%f1%87%81k%94%02t%80%d
5%e1%0c%c8kl%ba%a9%fe.%eb8l%80
%ad%8ci%8fmd%d0%c1%e5r%d7%27%7
b%aa%ca%a3b%f7m%1e%d4%bd%e7%2c
%8a0l%b2%ae%81%7e%88%7bh%f1%8d
%ae%02%e8%3b%2c%89%82%89%5d%8e
ii%bd%c2%ee%10%8d%3do%e3%e8%fc
n%ce%17u%ba%9d%cao%bfwf%f2%e0%
e5%7e%fc%02%5e%82%92%cb%13%ed8
d%c6%d2%9bq%e2-k%98%c4%dae%a2%
1cc%c1%a3%aey%99%13%14%e5%8a%f
64%90%10u%8f%83%ba%25%c93%00%9
6%e2%c0g%9e%20b%ff%d6%f9%01%be
%28c%ee%fc%d9e%81h%14%90%ce%d9
9%c3y%1a%eb%a1%91%1f%89%28y%90
%9b%aez%9c%1a%05%9e%e5%c6b%948
7%ff%a6%e0%7e%87lp%f5%d3%a6%3b
%b1%0b6%dd%c5%a5%14%fbbf%96%ea
%9bg%84%19v%ba%f6%ff%5c%f7e%5b
%d1%d0%a3%1b%fbb%5c%f7%87%d7-%
f6%0b%7d%dc%87%d52%dad%1b%fb%8
7%cbz%c1%2ci%c2%b8%e5%17%97t%1
1%86%af%dcs%ef6%3d%c4%cc%f2%1b
%9e%25%15%f2%cb%d2%05%aai%5e%d
2%c1%ba%05%865%7c%ad%91%c2%29%
a2q%3c%b5%f4%ads%c3ys%d4%f9%f2

最后安装siemens mobility toolkit(smtk)6688i 1.0 beta8 或 smtk 3118 1.0 beta8,安装过程中会自动识别jdk的路径为jbuilder6安装路径下的jdk1.3.1。
全部安装完成后还需要配置一下jbuilder6。打开jbuilder6,然后点菜单tools->configure jdks,在jdk home path栏点change,选择6688i smtk安装的路径,要选到6688i_1b8或3118_1b8为止,确定后上面的name栏会自动变成siemens,然后点ok搞定。

二、第一个工程

新建一个工程
在jbuilder6中先新建一个工程:点菜单file -> new project,在对话框中输入工程名、路径等内容。请在这里输入name:tutorial;directory:d:mydocjava utorial(或你自己选择的路径),然后直接点finish就可以了。
java是基于类的,每个公共类都必须新建一个文件。
点菜单file -> new…,在对话框中双击class,在class name栏输入类名称tutorialmain,至于上面的package用默认的就可以,下面的base class是定义基类,可以以后改。点ok就可以了。
用同样的方法建立类tutorialform和tutorialcanvas。
这三个文件的内容分别是:
tutorialmain
package tutorial;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class tutorialmain extends midlet
{
protected static tutorialform pstart;
protected static display display;

public static void main(string args [])
{
tutorialmain app = new tutorialmain();
app.startapp();
}

public tutorialmain()
{
pstart = new tutorialform();
}

protected void pauseapp()
{
}

protected void startapp()
{
display = display.getdisplay(this);
pstart.activate(display, this);
}

public void destroyapp(boolean param)
{
display.setcurrent(null);
notifydestroyed();
}
}

tutorialform
package tutorial;
import javax.microedition.lcdui.*;

public class tutorialform extends form implements commandlistener
{
protected static final command[] commands =
{
new command("开始", command.ok, 0),
new command("退出", command.stop, 1),
};

protected static display display;
protected static tutorialcanvas pgame = new tutorialcanvas();
protected static tutorialmain winmain;

public tutorialform()
{
super("java教程");
append("版本:0.1.0网址: hzfeng.yeah.net");

for (int i = 0; i < commands.length; i++)
addcommand(commands[i]);
}

public void activate(display disp, tutorialmain tmain)
{
display = disp;
winmain = tmain;
display.setcurrent(this);
setcommandlistener(this);
}

public void commandaction(command cmd, displayable obj)
{
if (cmd == commands[0])
{
pgame.activate(display, winmain);
}
else
winmain.destroyapp(true);
}
}

tutorialcanvas
package tutorial;
import javax.microedition.lcdui.*;

public class tutorialcanvas extends canvas implements commandlistener
{
protected static final command[] commands =
{
new command("继续", command.ok, 0),
new command("退出", command.stop, 1),
};
protected static display display;
protected static tutorialmain winmain;
protected graphics g;

public tutorialcanvas()
{
for (int i = 0; i < commands.length; i++)
addcommand(commands[i]);
}

protected void paint(graphics parag)
{
g = parag;
g.drawstring("你好", 0, 0, graphics.top|graphics.left);
}

public void activate(display disp, tutorialmain tmain)
{
display = disp;
winmain = tmain;
display.setcurrent(this);
setcommandlistener(this);
}

public void commandaction(command cmd, displayable obj)
{
if (cmd == commands[1])
winmain.destroyapp(true);
}
}

这里先不对这些代码作解释,先演示一下怎样对工程进行编译和运行。

编译运行
点菜单run -> run project,第一次运行会弹出对话框询问要执行的主类(main class),也就是从这个类开始执行,切换到midlet子项,点“…”浏览,展开tutorial,选中下面的tutorialmain,然后ok。
jbuilder会自动调用6688i的仿真程序对程序进行仿真。
每次运行前都会自动编译,如果有错误,会有出错显示。

打包执行
编译好的文件都放在工程目录下的classes里,里面有一个以package名称命名的子目录,打包的时候要包括这个子目录。
由于打包程序jar是以命令行方式运行的,所以通常做个bat文件打包会比较方便。可以先将jar.exe复制到classes目录里,然后在bat文件中写jar cf tutorial.jar tutorial,执行以下就搞定了。
下载到mmc卡上的时候,现在javajamgame下建立一个tutorial目录,然后将tutorial.jar复制到该目录下,另外还要将工程目录下jad目录中的tutorialmain.jad也复制到这个目录中。
现在可以执行一下试试看了。

示例说明
tutorialmain是起始类,由midlet继承而来,其中的public static void main(string args [])就像c语言里的main函数一样,是程序第一个执行的函数,这是52版开始要求的,52版以前可以不需要此函数。startapp里是开始运行程序所作的一些事,display.getdisplay()是获取屏幕显示的对象,pstart.activate()见tutorialform里的定义,其他的就没什么可说的了,依样画葫芦就可以了。
tutorialform是由form类继承而来,form是一个窗体,有标题,可以显示文字也可以列出选项、设置按钮。implements commandlistener表示这个类还用到了commandlistener这个组件,这是一个监测按钮动作的组件。
super("java教程")是调用form的构造函数,里面的字符串就是窗口的标题。append()是在窗口上插入要现实的内容,不仅可以插入文字还可以插入图片等。for (int i = 0; i < commands.length; i++) addcommand(commands[i]); 是把上面定义的按钮数组command[]添加到窗口上。
commandaction是按钮按下的响应函数,通过参数cmd可以判断出哪个按钮被按下了,从而可以采取相应的措施。
activate函数是自定义用来启用tutorialform类的。包括display.setcurrent(this)将屏幕输出联系到自己身上,setcommandlistener(this)开始对按钮动作进行监测。而winmain变量的设置是为了调用tutorialmain的destroyapp函数以便退出程序。
tutorialcanvas是由canvas类继承而来,同时也需要监测按钮动作。canvas是一个画板,可以在上面画图、画字符串等等。
paint函数是当canvas类显示时调用的绘图函数,g.drawstring("你好", 0, 0, graphics.top|graphics.left)是以坐标(0,0)作为左上角画了两个字“你好”。其他的函数与tutorialform类似。

三、几个常用类

常用类简介
midlet类
老实说我对这个类的理解也不深刻,也就是照着其他的程序依样画葫芦,我认为这是一个起始类,程序执行总是从这个类开始。必须要有的事件函数是startapp、pauseapp、destroyapp,顾名思义,就是起始、暂停、终止的时候起作用。

form类
form是一个窗体,有标题,可以显示文字也可以列出选项、设置按钮。

canvas类
canvas是一个画板,可以在上面画图、画字符串等等。必须要有的事件函数是paint,在显示的时候调用。

graphics类
graphics是一个画图的类,有画框、画线、画块、画圆、画字符串等功能函数。

扫描关注微信公众号