编译基于DirectFB的Phoneme(Advance)

原创 2007年09月27日 20:09:00

编译基于DirectFBPhoneme(Advance)

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

Phoneme其实就是J2MESUN公司虽然把JAVA的实现开源了,但仍然保留JAVA这个名字,所以出于法律上的考虑,开源的J2ME实现改名为phonemephoneme有两个版本,一个对硬件要求较低,功能也较弱,适用于一般的feature phone,取名为phoneME Feature。 另一个对硬件要求较高,功能更强大,适用于一般的smart phone,取名为phoneME Advanced

考虑到我们的硬件配置,我决定玩玩phoneME Advanced。从https://phoneme.dev. java.net下载了phoneme_advanced-mr2-dev-src-b21-04_may_2007.zip。浏览了一下源代码,发现里面有基于DirectFB的实现,真是太好了。试了一下,编译也比较简单:

  1. 编译安装DirectFB,为了测试方便,我们使用基于SDLDirectFB而不是fbdev

    tar zxf DirectFB-1.0.0.tar.gz

    cd DirectFB-1.0.0

    ./configure –enable-sdl

    make;make install

  2. 安装JDK(使用GCC编译用点问题)。

    ./j2sdk-1_4_2_15-linux-i586.bin

    mv j2sdk1.4.2_15 /usr/share

  3. 解包。

unzip phoneme_advanced-mr2-dev-src-b21-04_may_2007.zip

cd phoneme_advanced_mr2

  1. 修改directfbapp_export.c,支持SDL显示。

    static char *argv_array[] = ...
        
"CVM"
        
"--dfb:system=FBDev" 
            
",force-windowed"   /**//* use windows instead of surfaces */ 
            
",no-vt-switch"     /**//* do not switch between Linux' VT */ 
            
",no-cursor"        /**//* do not use pointer */ 
            
// ",no-deinit-check" /* do not check for deinit */ 
        ,NULL 
    }

修改为
    
static char *argv_array[] = ...
        
"CVM"
        
"--dfb:force-windowed"   /**//* use windows instead of surfaces */ 
            
",no-vt-switch"     /**//* do not switch between Linux' VT */ 
            
",no-cursor"        /**//* do not use pointer */ 
            
// ",no-deinit-check" /* do not check for deinit */ 
        ,NULL 
    }

  1. 编译之前先设置一些环境变量,为了方便把它放到env.sh文件里。


    #!/bin/bash
    export PREFIX
    =/usr/local
    export JDK_DIR
    =/usr/share/j2sdk1.4.2_15

    if [ "$1" = "" ]
    then
        echo 
    "Usage: . env.sh ARCH(i386|arm)"
        
    return;
    fi

    export ARCH
    ="$1"
    export CPU
    =$ARCH

    if [ "$ARCH" = "arm" ]
    then
        export CPU_ALIAS
    ="arm"
    else
        export CPU_ALIAS
    ="x86"
    fi

    export DIRECTFB_INSTALL_DIR
    =$PREFIX
    export PCSL_PLATFORM
    =linux_"$ARCH"_gcc
    export PATH
    =$JDK_DIR/bin:$PATH
    export JDK_HOME
    =$JDK_DIR
    export MEHOME
    =$PWD
    export PCSL_OUTPUT_DIR
    =$MEHOME/pcsl/output
    export CDC_DIR
    =$MEHOME/cdc
    export CDC_DIST_DIR
    =$CDC_DIR/build/linux-$CPU_ALIAS-generic/
    export TOOLS_DIR
    =$MEHOME/tools
    export CLDC_DIST_DIR
    =$CDC_DIST_DIR

运行该脚本: . evn.sh i386

  1. 编译,为了方便我们把做放一个脚本文件build.sh中。

    #!/bin/bash

    cd $MEHOME
    /pcsl
    make clean
    make NETWORK_MODULE
    =bsd/generic
    cd $MEHOME

    cd  $CDC_DIST_DIR
    make clean
    make USE_MIDP
    =true CVM_DEBUG=true USE_DIRECTFB=true USE_QT_FB=false
    cd  $MEHOME

运行该脚本:./build.sh

(如果编译时有问题,可能需要安装xorg-x11-deprecated 软件包)

  1. 安装,为了方便我们把做放一个脚本文件install.sh中。

#!/bin/bash
if [ "$PREFIX" = "" ]
then
    echo 
"PREFIX is not defined"
else
    INSTALL_PATH
=$PREFIX
    rm 
-rf $INSTALL_PATH/java
    mkdir 
-p $INSTALL_PATH/java
    echo 
"cp -rf $CDC_DIST_DIR $INSTALL_PATH/java/cdc"
    cp 
-rf $CDC_DIST_DIR $INSTALL_PATH/java/cdc
fi

编译ARM版的过程类似,只是要修改几个Makefile,让它可以找到交叉编译的工具链就可以了。

不过基于DirectFB的实现,还很不完善,键值映射,笔点支持,中文显示和输入法等要自己去实现或者修改。但由于工作上的变动,暂时没有时间去玩这个,以后再补充吧。

~~end~~


版权声明:本文为博主原创文章,未经博主允许不得转载。

13、叉编译directfb

13、叉编译directfb 目标平台:LOONGSON-1B开发板 内核:Linux 3.0 编译平台:ubuntu10.04 交叉工具链:gcc-3.4.6-2f   一、简介 ...
  • water_cow
  • water_cow
  • 2013年03月27日 20:13
  • 1836

DirectFB编译环境

DirectFB是用于嵌入式平台的一个2D图形库,主要面向嵌入式平台。不过,也支持在PC平台进行开发,测试相关功能,只要对应的Linux支持FrameBuffer设备。 本文以DirectFB源码...
  • fuyajun01
  • fuyajun01
  • 2013年05月21日 19:28
  • 1428

全志R16平台编译linux系统V1.0(分色排版)

全志R16平台编译linux系统V1.0   2017/4/11 13:36     (编译请使用编译android的lichee的选项编译生成的.config文件,不然直接编译会报错!!!!) ...
  • wb4916
  • wb4916
  • 2017年05月04日 15:05
  • 1173

windows平台编译phoneme经验总结

很多软件都有动态创建java虚拟机的需要,对此我们可以用java的jni接口来实现。j2se的jvm比较大,带的东西比较多,对于产品发布来讲玩玩不是首选。另外,j2se对应的开源工程hotspot相当...
  • joeleechj
  • joeleechj
  • 2014年02月10日 22:26
  • 779

ubunut中编译phoneme feature

使用的phoneme版本是phoneme_feature-mr4-rel-src-b01-20_apr_2009.zip $sudo unzip phoneme_feature-mr4-rel-sr...
  • xms0xms
  • xms0xms
  • 2012年08月04日 01:33
  • 900

DirectFB+GTK交叉编译

  • 2013年05月07日 09:44
  • 159KB
  • 下载

今日编译mipsel-linux的DirectFb碰壁及解决

今日无事,尝试编译DirectFb,使用的工具是君正的交叉编译工具,http://www.ingenic.cn/product.aspx?ID=62 使用库有: jpeg-6b freetype...
  • robitmind
  • robitmind
  • 2013年07月27日 15:58
  • 1170

交叉编译DirectFB

由于第一次搞嵌入式,交叉编译DirectFB费了一些周折。首先记录下编译的过程1 准备源文件包,下载freetype2.4.4和DirectFB-1.4.11.tar.gz,解压。2 交叉编译安装fr...
  • wangjijian
  • wangjijian
  • 2011年01月24日 20:41
  • 6081

基于DirectFB的GTK+的交叉编译[转]

嵌入式GTK的安装 GTK的依赖库库很多,如果要交叉编译GTK则每一个依赖库都要编译一遍,这些库包括:zlib-1.2.3 ,libpng-1.2.10 ,tiff-3.8.2 ,libtoo...
  • yuyin86
  • yuyin86
  • 2011年08月29日 09:46
  • 763

DirectFB+GTK交叉编译记录

一、问题记录 1. 最好使用32位Linux主机编译,否则有些软件包中使用Python时会有错误; 2. 设置的DirectFB的安装路径是根文件系统中的/usr/directfb,那么在目标系统中也...
  • gfvvz1
  • gfvvz1
  • 2014年02月28日 23:22
  • 1761
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译基于DirectFB的Phoneme(Advance)
举报原因:
原因补充:

(最多只允许输入30个字)