免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 853 | 回复: 0
打印 上一主题 下一主题

编译基于DirectFB的Phoneme(Advance) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-27 20:58 |只看该作者 |倒序浏览

                编译基于DirectFB的Phoneme(Advance)
转载时请注明出处和作者联系方式
作者联系方式:李先静
Phoneme其实就是J2ME,SUN公司虽然把JAVA的实现开源了,但仍然保留JAVA这个名字,所以出于法律上的考虑,开源的J2ME实现改名为phoneme。phoneme有两个版本,一个对硬件要求较低,功能也较弱,适用于一般的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的实现,真是太好了。试了一下,编译也比较简单:
  •     编译安装DirectFB,为了测试方便,我们使用基于SDL的DirectFB而不是fbdev。
        tar         zxf DirectFB-1.0.0.tar.gz
        cd         DirectFB-1.0.0
        ./configure         –enable-sdl
        make;make         install
       
  •     安装JDK(使用GCC编译用点问题)。
        ./j2sdk-1_4_2_15-linux-i586.bin
        mv         j2sdk1.4.2_15 /usr/share
       
  •     解包。
        unzip phoneme_advanced-mr2-dev-src-b21-04_may_2007.zip
    cd phoneme_advanced_mr2
  •     修改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

        };

  •      编译之前先设置一些环境变量,为了方便把它放到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
  •     编译,为了方便我们把做放一个脚本文件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 软件包)
  •     安装,为了方便我们把做放一个脚本文件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~~

                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43721/showart_391380.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP