N9可以说是首款真正的Qt powered phone。要在N9上开发程序,有很多环境和机制,但最为强大,也是诺基亚官方推荐的开发平台,就是Qt Sdk。因为CivilNet Blog 2012发布在即,gemfield本文使用了很少的插图,以减轻2012年gemfield博客迁移的难度和工作量。所以,阅读此文将需要更多的耐心,如果有任何疑问,可以在http://syszux.com/qt上提问。
gemfield本文的平台基于windows 7(PC)+Qt Sdk 1.1.4+nokia N9。
第一、准备平台。
1、如果你的PC不是windows 7系统,那么此文将会和你的实际情况有细微的差异(差异部分会在gemfield下文提到),你可以到http://syszux.com/qt上寻求帮助;
2、从http://qt.nokia.com/downloads/sdk-windows-cpp-offline处下载Qt Sdk ,安装到windows平台上;
3、有一个N9设备。
第二、在N9上打开开发者模式。应用程序界面——设置——安全性——开发人员模式——开发人员模式,拨动开关至开,弹出对话框(是否启动开发人员模式?),点击“确认”按钮,弹出“关联项通知”对话框(这个时候需要下载2.6M的应用程序),点击“接受”按钮,然后出现下载“developer mode package”的进度条,进度条完成后会自动重启N9。
第三、N9自动重启后,最直观的改变是,应用程序界面多了2个程序图标:一个是linux上大名鼎鼎的terminal(命令行),一个是SDK connection(连接电脑和手机)。其实,还安装了2个在terminal上可以打开的程序:
1、ssh: ssh客户端,gemfield的N9可以使用这个登陆到其他电脑或手机;
2、devel-su: Harmattan平台上的su工具,使用过debian、ubuntu的人应该很熟悉,通过devel-su可以获得root权限(实际上是受限的root)。
此外,还安装了一些服务:
1、openssh-server: 有了这个,gemfield的电脑才可以通过ssh协议登陆到手机上;
2、develsh: N9解析 openssh-server的shell;
3、sysklogd: 内核登陆及其他信息服务;
4、gdbserver: 调试工具。
第四、让你的N9连接到电脑上。从N9应用程序界面上打开sdk-connection,点击“usb”按钮,然后N9通过usb数据线接到电脑上。在手机弹出的模式选择对话框里选择“SDK模式”。这个时候,N9和电脑同时在完成一些工作:
1、对于N9来说,SDK Connectivity 工具在Connectivity Details界面上显示了一个IP地址:192.168.2.15,并生成一个由6个字母组成的密码。注意,要使用Qt Sdk,这个程序不能关闭。
2、在windows 7电脑上,Windows 7将会自动安装Linux USB Ethernet connection 驱动. 如果这个驱动没有自动安装,拔掉USB线试试电脑的其他USB口。(windows xp在此会弹出安装驱动的对话框,选择自动安装的方式)。然后到开始——控制面板——查看方式:小图标——网络和共享中心——更改适配器设置,刚才windows 7自动安装的Linux USB Ethernet connection 驱动会显示为一个新的本地连接:Nokia Ethernet/RNDIS based Device。右键这个本地连接,选择“属性”,在弹出的对话框中双击“Internet 协议版本4”,自动获得IP(默认就是这个)。你也可以在命令提示符里使用ipconfig命令查看这个本地连接的IP。
第五、设置电脑上的Qt Sdk 1.1.4。从“开始”里打开Qt creator,工具——选项——linux设备,在这个页面上点击“添加”按钮来设置一个新的N9设备,点击按钮之后,出来一个配置向导:
1、选择“设备拥有MADDE支持(例如:Freemantal,Harmattan,MeeGo)”,点击“开启向导”按钮;
2、说明配置的名称处填写“gemfield的N9”,或你喜欢的名字。系统运行在设备:MeeGo 1.2 Harmattan。点击“下一步”;
3、点击“下一步”;
4、点击“下一步”创建新密钥;
5、点击“密钥创建按钮”,再点击“下一步”;
6、设备地址:192.168.2.15,密码:N9上的Connectivity Details界面上那6个字母;然后点击“部署密钥”按钮,向导开始部署,成功后弹出“对话框”。点击“确定”关闭该提示框,然后点击“下一步”;
7、点击“完成”按钮;
8、Qt Creator将会进行与N9的连接测试,成功的话将会显示下面的消息:
****************************************************************************