1,开启wtk模拟器的触摸屏功能
打开/wtklib/devices/DefaultColorPhone目录下的DefaultColorPhone.properties文件(最好先安装一个UltraEdit之类的文本编辑器)。
然后找到touch_screen选项,修改为touch_screen=true
2,设置模拟器权限,以免开发过程中弹出烦人的提示
打开wtk模拟器。
选择Edit->Preferences->Security
然后将Security domain的选项设置为maximum。
3,内存和性能监视器
Edit->Preferences->Memory Monitor
Edit->Preferences->Profiler
这两个监视器通常情况下没什么用,但是在查看内存进行新机型的适配时。是经常用到的。
特别是Memory Monitor配合一个内存查看器就能够判断真机的内存极限是否能够执行当前的应用。
Profiler在优化应用的时候非常有用。可以提供函数执行的时间跟次数等参数。
其它的功能我都不怎么用。希望大家可以将自己的经验补充进来。
下面是一个内存测试类。
import
java.util.Vector;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;
public class MenoryMIDlet extends MIDlet implements CommandListener {
private Vector v;
private TCanvas canvas;
private Command exit;
public MenoryMIDlet() {
v = new Vector();
canvas = new TCanvas();
exit = new Command( " exit " , Command.EXIT, 0 );
canvas.addCommand(exit);
canvas.setCommandListener( this );
}
protected void destroyApp( boolean arg0) {
}
protected void pauseApp() {
}
protected void startApp() {
Display.getDisplay( this ).setCurrent(canvas);
new Thread(canvas).start();
}
public void commandAction(Command c, Displayable d) {
if (d.equals(canvas)) {
if (c.equals(exit)) {
notifyDestroyed();
}
}
}
private class TCanvas extends Canvas implements Runnable {
public void paint(Graphics g) {
g.setClip( 0 , 0 , getWidth(), getHeight());
g.setColor( 0 );
g.fillRect( 0 , 0 , getWidth(), getHeight());
g.setColor( 0xFFFFFF );
g.drawString(Integer.toString(v.size()) + " x 10k " , 50 , 50 , 0 );
}
public void run() {
while ( true ) {
try {
Thread.sleep( 10 );
byte [] data = new byte [ 10240 ];
v.addElement(data);
} catch (Exception e) {
e.printStackTrace();
}
repaint();
}
}
}
}
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;
public class MenoryMIDlet extends MIDlet implements CommandListener {
private Vector v;
private TCanvas canvas;
private Command exit;
public MenoryMIDlet() {
v = new Vector();
canvas = new TCanvas();
exit = new Command( " exit " , Command.EXIT, 0 );
canvas.addCommand(exit);
canvas.setCommandListener( this );
}
protected void destroyApp( boolean arg0) {
}
protected void pauseApp() {
}
protected void startApp() {
Display.getDisplay( this ).setCurrent(canvas);
new Thread(canvas).start();
}
public void commandAction(Command c, Displayable d) {
if (d.equals(canvas)) {
if (c.equals(exit)) {
notifyDestroyed();
}
}
}
private class TCanvas extends Canvas implements Runnable {
public void paint(Graphics g) {
g.setClip( 0 , 0 , getWidth(), getHeight());
g.setColor( 0 );
g.fillRect( 0 , 0 , getWidth(), getHeight());
g.setColor( 0xFFFFFF );
g.drawString(Integer.toString(v.size()) + " x 10k " , 50 , 50 , 0 );
}
public void run() {
while ( true ) {
try {
Thread.sleep( 10 );
byte [] data = new byte [ 10240 ];
v.addElement(data);
} catch (Exception e) {
e.printStackTrace();
}
repaint();
}
}
}
}