×
Namespaces

Variants
Actions

如何开发一个 N9 上的程序

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
zhouhl 在 18 Aug 2011 创建
最后由 renlin 在 12 Jul 2012 编辑

Contents

引言

本文向大家演示如何开发一个基本的 N9 程序。

内容

1 配置环境
2 第一个N9工程(helloworld)
3 真机部署
4 运行效果1(非本地化)
5 本地化HelloWorld
6 运行效果2(本地化)
7 替换应用程序图标
8 源码下载
9 相关连接

环境配置

首先下载最新的Qt SDK ,安装的时候不要使用默认安装,要选择自定义安装,自定义安装的时候记得在Harmattan前打上对勾,这样安装程序才会把开发 Meego平台所用的环境安装到机器上。

新建工程

下面新建一个 Harmattan 工程:
Harma00a.png

我们这里取名叫 helloworld,以下步骤都按照默认设置即可,一直点到最后一步 finish 即可。这时我们就新建好了一个简单的Meego平台上的程序。

连接真机

为了在真机上看到我们新建程序的运行效果,我们需要再配置一下我们的测试手机和 Qt Creator。 在最开始我们需要需要打开N9的开发者模式。如何打开?应用程序列表->设定->安全性->开发人员模式。 N9 Open Developer Mode 1.png N9 Open Developer Mode 2.png N9 Open Developer Mode 3.png N9 Open Developer Mode 4.png N9 Open Developer Mode 5.png
成功打开N9手机的开发模式后,在应用列表中,才会出现上面第一幅图中最下面的的三个图标。后面会用到SDK Connection工具。

注:打开开发模式后,当N9第一次连接时(请选择最后一项,SDK Mode)需要安装驱动,其路径为C:\QtSDK\Madde\usbdriver。

首先切换到 Project 视图:
Project00a.png


点击“Manage device configurations”
Add00a.png
在弹出的窗口中点击 “add”


Name00a.png
在弹出窗口中给新的配置起一个名字,我们这里起名字叫Meego Device.然后点击next, 以后的步骤都按照默认设置即可。下面我们会来到设置密钥的一步:


Secret00a.png
我们选择一个路径,然后点击 “create keys” 就可以了。



下一步我们需要把私钥部署到手机上,这时候需要按照窗口中的提示步骤来做。
Password001.png


打开N9手机上的 SDK connectivity。如果是用的usb连接就选择USB,然后会看到下图中的密码:
Password002.png


我们把上面的密码填入到之前的界面,然后点击"deploy"就可以了。如下图所示,部署成功。
Passok.png


然后我们就来到了最后一步:
Last00a.png

最后再测试一下计算机和手机是否连通了,出现下面的界面就说明已经成功连通了.
Test00a.png


到这里我们新的 “Meego device” 的配置就设置好了。
MeegodeviceC00a.png

下面我们就要使用这个新的配置了。我们把 device configuration 切换成“Meego device”就可以了,如下图所示:
Meegodevice200a.png

最后我们点击“run”就可以在Meego手机上看到效果了:
Run00a.png

在这里感谢Deng Jia同学辛苦做的动画,大家踊跃下载 File:First connection demo.zip

运行效果1(非本地化)

下面是程序在N9上的运行效果:
Xiaoguo00a.png

完全本地化HelloWorld

N9的程序本地化包含三个部分:
1 本地化应用程序UI的内容。
2 本地化应用程序名字,即在应用程序列表中,当系统是中文的时候需要应用程序需要显示的名字也要相应的修改(“helloworld”变为“世界你好”)。
3 在应用程序管理里面,应用程序的名称也需要被本地化,同时应用程序描述也需要被本地化。
首先:
如何对UI界面进行本地化,请参考Qt应用在Meego上的国际化和本地化
其次:
本地化在应用程序列表中的应用程序名称。
在根目录下用文本编辑器(作者使用NotePad++,比较容易方便的切换文本编码格式)打开helloword.desktop文件,在相应的位置加入如下代码

Name=helloworld
Name[zh_HK] = 你好世界

如果“你好世界”显示成乱码,需要您把文本编码格式改为UTF-8,输入完毕后,一定要把文本编码格式保存为“ANSI”格式,否则可能出现编译失败或者单机应用程序图标无法启动程序。
最后:
本地化Application Manager中的应用程序名称以及程序说明。
a) 用文本编辑器打开\helloworld\qtc_packaging\debian_harmattan\control文件。
b) 把文件编码格式改成UTF-8格式为了方便输入中文。
c) 加入如下代码

Description: insert up to 60 chars description
English long description, can be quit long, for example several lines
XSBC-Description-zh_HK: 我是世界你好的描述
中文长描述,长长长,我很长的。。
XSBC-Maemo-Display-Name: helloworld
XSBC-Maemo-Display-Name-zh_HK: 世界你好

此处需要注意第二行和第四行前面的空格不能少。
d) 把您的文本编码格式改为ANSI,否则编译不会通过

好了,到此为止,所有的本地化工作都已完成,可以上真机看看效果。

运行效果(本地化)

下面是程序本地化后的效果图:

Appiconinapplicationlist.png Contentofhelloworld.png Appiconinappmanager.png Descriptioninappmanager.png
程序名本地化,在应用程序列表中 内容本地化 程序名本地化,在App Manager中 应用程序描述内容本地化

替换应用程序图标

同样替换应用程序图标包括两个部分,在应用程序列表中的图标,另外一个是在应用程序管理器(Application Manager)中的图标。
a) 找一张80*80大小的图标来同名替换工程路径下的.png和svg图片。(N9要求图标为80*80否则图标边缘会模糊)
b) 把png图片以Base64格式编码改图片。
c) 用文本编辑器打开\helloworld\qtc_packaging\debian_harmattan\control文件。
d) 把改图片文件编码字符串填写在 XB-Maemo-Icon-26: 标签后。

若您做完上述操作,图标还是无法显示请注意下面几个要点:
a) control文件中的标签是否为XB-Maemo-Icon26。
b) Icon标签字符串应该在XB-Maemo-Icon26标签的下一行。
c) 编码字符串前面都有一个空格。
d) 建议每个编码字符换以60个字符为一行。这便于其他编码工具阅读和编辑。比如vim。

下面是两段例子,请读者鉴定好坏。
例子1

XB-Maemo-Icon-26:   
 
iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
 
eF7tXDtyJUUQFCfSHgSDEDfABU97il0OABwCBwwOgCEciMDCJMDCxxc1nV1Z2d/pt9sSerFLTLyY
......
tLd4CnHTe6O0Upq4nq8Kv3/urXhv5ZqlF6Y1e9tsZHwqvJeDsLLCwivxx7vhxSvhcOZVwLsgpHmp
xfb1wnsXwCuJcUXXnP9vLa4IzMpQPwJesdI1X/PRw9fsvZWxf3Ae/g+Pf8SZijYEdwAAAABJRU5E
rkJggg==

例子2

XB-Maemo-Icon-26:  iVBORw0KGgoAAAANSUhEUgAAAFAA.....AABQCAIAAAABc2X6AAAAAXNSR0IArs4c6QAAAARnQU1BAACrkJggg==

e) 若应用程序列表中图标无法显示,请确认在跟目录下helloworld.desktop文件中,Icon=/usr/share/icons/hicolor/scalable/apps/helloworld.svg此路径中的图片是否存在。

下载源码和样例程序

File:N9 helloworld.zip File:First connection demo.zip

相关链接

This page was last modified on 12 July 2012, at 04:49.
328 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×