越来越多的公司采用linux + TinyX + gtk+系列作为手机开发环境,它本身可以认为是完全免费的,但需要大量的时间去研究它,去裁减它,还要建立集成开发环境,模拟运行环境等等,这一切都不是免费的。一个项目耗费一到两年时间,已经屡见不鲜见了。在建立开发环境,模拟运行环境,等这类简单的事情,花大多时间是不值得的。这里介绍一种在PC上快速建立模拟运行环境的方法,希望对大家有点帮助。

 

X Window提供了一个叫Xnest的服务器,顾名思义,它是嵌入X Window中的X Window的服务器。它本身是一个真正的X Window服务器,在客户端程序看来与其它X Window服务没有任何差别。同时,它又是原始的X Window的服务器的一个客户端程序,在X Window的服务器看来,它与其它的客户端程序也没有任何差别。

 

我们可以利用Xnest,在一个大的X Window(PC的显示屏幕一样大小)上运行一个小的X Window(和手机的显示屏幕一样大小)。在这个小的X Window中,运行原本在手机上运行的应用程序。这样,两者的显示屏幕大小一致,看到的效果和手机上看到的效果就几乎相近了。

 

Xnest作为模拟运行环境,它对应用程序来说,是完全透明的,不需要对应用程序做任何修改,用起来非常方便。我们看看如何一步一步建立这套环境:

 

1.         先介绍一下DISPLAY这个环境变量。

所谓DISPLAY,一般来说,就是一套输入设备(键盘、鼠标、触摸屏),加上一个多或多个显示设备。X Window可以同时挂载多个显示设备,每个显示设备被称为一个SCREEN,但是一个Xwindow只能在一个DISPLAY上运行。每个DISPLAY都有一个ID来唯一标识它,ID一般用一个冒号加一个数字组成,后面出现的“:0”, “:3”之类就是代表DISPLAYID

 

2.         起动原始的X Window服务器。

一般运行gdm或者startx即可(可能要做适当的配置)

 

3.         起动Xnest X Window服务器

export DISPLAY=:0 DISPLAY ID要与实际一致,可以用ps -ef|grep X查看)

Xnest :3 -geometry 240x320

(“:3”DISPLAY ID240x320为屏幕大小,其它参数可以参考手册来设置。)

 

4.         运行应用程序。

export DISPLAY=:3

xterm

       (“:3”DISPLAY ID,要与运行Xnest时指定的DISPLAY ID一致。)

 

大多数情况下,按以上步骤,都可以正常工作,但有时会出现Xnest拒绝连接的问题。这是由于认证引起的,在运行Xnest前,把XAUTHORITY环境变量去掉(unset)就行了。

 

当然,这是最原始的模拟运行环境,matchbox提供了一个matchbox-nest的程序,它把Xnest包装成Palm的外表,还有相应的按键,使用起来更方便一点,你还可以把它修改一下,变成自己的产品的外观。