Moto Linux应用开发(二)EZX图形编程环境构建

转载时请注明出处和作者联系方式
文章出处:http://blog.csdn.com/keensword007
作者联系方式:琴剑 <keensword007 at sina dot com>    
在手机上开发应用程序,少不了图形界面。Moto手机的应用程序都是基于EZX开发的。简言之,EZX是一种类似于qotpia的适用于嵌入式linux设备的平台,EZX application SDK基于Qt embedded, 软件结构如图1所示:

Moto Linux应用开发(二)EZX图形编程环境构建_第1张图片

图1

但是难以理解的是,Moto并未对外公布ezx application SDK,不过这难不倒网上的高手,通过逆向工程,民间也流传着非官方的SDK,并开发出了非常优秀的适用于moto手机的软件(再次鄙视一下moto)。闲话少说,下面就介绍一下Samr7和FoxE6两位大牛整理出的SDK,该SDK适用于A780/E680i/A1200/E6等机型,如果您是在cygwin下开发,可以参考这篇文章。下面介绍的是在Ubuntu下的构建过程。

1. 链接程序所需的库文件使用手机上的,可先telent到手机,然后使用如下命令从手机上复制到存储卡:

cd /usr/lib

tar czvf  /mmc/mmca1/ezx-lib.tar.gz *

2.  下载samr7-ezx-crosstool-foxe6-sdk.tar.gz文件,可以从这里下载。解压到某个目录,一下就使用${EZX_SDK_ROOT}表示该目录。交叉工具链位于${EZX_SDK_ROOT}/crosstool,ezx SDK位于${EZX_SDK_ROOT}/dev-ezx目录.

3. 由于该SDK包含的交叉工具链是为cygwin编译的,可执行程序为exe格式,不能用在Ubuntu linux环境,所以需要用到<<Helix移植(一)Ubuntu上建立Moto E6交叉编译工具链>>所编译出的交叉工具链,${EZX_SDK_ROOT}/crosstool下的工具链替换即可。

4. 从手机上复制ezx-library.tar.gz文件到${EZX_SDK_ROOT}/dev-ezx/{PHONEMODEL}/lib, 这里{PHONEMODEL} 代表你的手机型号,e6, a1200, e680i, 或者a780. 然后使用如下命令解压ezx库:

cd /opt/dev-ezx/{PHONEMODEL}/lib

tar xvf ezx-lib.tar.gz

确定手机上/usr/lib目录下的文件都在${EZX_SDK_ROOT}/dev-ezx/{PHONEMODEL}/lib

5.  编译moc程序,${EZX_SDK_ROOT}/dev-ezx/bin下是适用于cygwin的moc.exe,需要自己重新编译一个moc程序,可以下载dev-ezx-0.2.0.tar.gz. 解压后,进入到moc目录,输入make命令,即可编译一个moc,将其复制到${EZX_SDK_ROOT}/dev-ezx/bin下。

 

至此,整个构建环境就已经搭好了,是不是跃跃欲试,开发一个自己的应用程序了。让我们还是从经典的helloworld程序开始吧。先上这个网址http://www.motorolafans.com/forums/development/17584-ezx-crosstool-sdk-motorola-ezx-phones.html下载helloEZX实例程序。

1. 根据实际的目录结构修改${EZX_SDK_ROOT}/dev-ezx/setENV.sh脚本,因为该脚本假定SDK包解压在/opt/目录下。

2. 输入如下命令设置交叉编译环境,假设手机型号是E6:

. ${EZX_SDK_ROOT}/dev-ezx/setENV.sh e6

 注意:点后面要加上一个空格,表示在当前shell而不是新开一个shell执行脚本。

3. 进入工作目录,构建HelloEZX程序,解压helloEZX.zip到工作目录(假定为home目录),进入到helloEZX目录。

 cd ~/helloEZX

4. 该helloEZX工程包含三个文件main.cpp, helloezx.h和helloezx.cpp. 接下来创建工程文件

progen -o helloezx.pro

5. 生成makefile文件, 然后编译helloEZX.

tmake helloezx.pro -o Makefile

make

6.  不出意外的话,当前目录会生成一个helloEZX程序,将其复制到手机存储卡上,telnet到手机,运行起来。

. /home/native/.profile <-- this command start with dot and space too.
/mmc/mmca1/HelloEZX

屏幕上是否出现了画面?恭喜你,到此图形开发环境的搭建成功了。

 

参考文献:

1. Unofficial EZX Crosstool and SDK for Motorola EZX Phones (A780, E680i, A1200, E6) from Sam Revitch (samr7) and FoxE6.

你可能感兴趣的:(Moto Linux应用开发(二)EZX图形编程环境构建)