Linux mobile development & HTML5 Games/App

主要致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计方法和软件优化等方面....

测试phoneme advance(DirectFB)运行环境

测试phoneme advance(DirectFB)运行环境

转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>

在上文中,我们顺利完成了phoneme advance的编译,我对phoneme了解不多,怎么验证JVM否工作正常呢?对于JAVA程序员来说,这只是小事一桩,呵,对我来说,却是高深得不得了。花了好长时间才折腾出来,这里做点笔记,供下一个JAVA盲参考。

  1. 先设置环境变量

    export PREFIX=/usr/local

    export JDK_DIR=/usr/share/j2sdk1.4.2_15

    export PATH=$JDK_DIR/bin:$PREFIX/java/cdc/bin:$PREFIX/java/cdc/midp/midp_linux_fb_gcc/bin/i386 :$PATH


  1. 测试CVM

  • 先写个最简单的HelloWorld程序,文件名为HelloWorld.java


class HelloWorld
{
    
public static void main(String argv[])
    
...{
        System.out.println(
"HelloWorld");
    }

}
;
...
  • 再写个Makefile

JFLAGS=-bootclasspath $(PREFIX)/java/cdc/btclasses:$(PREFIX)/java/cdc/midp/midp_linux_fb_gcc/classes

.SUFFIXES: .class .java
.java.class:
    javac $(JFLAGS) $
<

all
: HelloWorld.class

clean
:
    rm 
-*.class *.jar

这里要设置好bootclasspath,让它能连接phonemeclass

  • 编译

    make

  • 运行

    cvm HelloWorld

(顺利的话,会打印出HelloWorld)

  1. 测试MIDlet

  • 先写个最简单的HelloWorld程序,文件名为HelloWorld.java

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;

public class HelloWorld extends MIDlet implements CommandListener
...{
   
private Form form;

   
public HelloWorld()
   
...{
      form 
= new Form("Test App");
      form.append(
"Hello World!");
      form.addCommand( 
new Command( "Exit", Command.EXIT, 1 ) );
      form.setCommandListener( 
this );
   }


   
public void startApp()
   
...{
      Display display 
= Display.getDisplay(this);
      display.setCurrent( form );
   }


   
public void pauseApp()
   
...{
   }


   
public void destroyApp(boolean unconditional)
   
...{
      form 
= null;
   }


   
public void commandAction(Command c, Displayable d)
   
...{
      destroyApp(
true);
      notifyDestroyed();
   }

}
  • 再写个META-INF/MANIFEST.MF

Manifest-Version: 1.0 
MIDlet
-Name: HelloWorld 
MIDlet
-1: HelloWorld,/icon.png,HelloWorld 
MIDlet
-Version: 1.0 
MIDlet
-Vendor: Li XianJing 
MIDlet
-Icon: /icon.png 
MicroEdition
-Profile: MIDP-1.0 
MicroEdition
-Configuration: CLDC-1.0 
  • 再写个Makefile

    JFLAGS=-bootclasspath $(PREFIX)/java/midp/classes:$(PREFIX)/java/cdc/btclasses

    .SUFFIXES: .
    class .java
    .java.
    class:
        javac $(JFLAGS) $
    <

    all: HelloWorld.
    class
        zip HelloWorld.jar HelloWorld.
    class META-INF/MANIFEST.MF

    clean:
        rm 
    -*.class *.jar

  • 修改DirectFB的配置/etc/directfbrc

    system=sdl

    mode=240x320

  • 安装midlet

    installMidlet file:////root/work/java/test/midlet/HelloWorld.jar

    (好像只有绝对路径才可以)

    安装之后,屏幕上会打印出该midletID,在运行和卸载时需要它。

  • 运行midlet

    runMidlet 2 HelloWorld

(这里的2就是前面安装的ID,正常的话会有图形窗口出来)

  • 卸载midlet

    removeMidlet 2

窗口的宽度和高度可以修改相应的constants.xml文件,在编译时该文件用来产生头文件 midp_constants_data.h

~~end~~

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/absurd/article/details/1803853
个人分类: 50.GTK+/DirectFB
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭