Posts Tagged ‘maemo’

在Nokia Qt SDK中开发Maemo应用

这是一个CuteQt参与的第一个有声博客:) 欢迎收听

Read More...

Tags: , ,
Posted on July 29th, 2010 in Linux技术, Qt技术 | 6 Comments ».

如何发布基于Maemo5的Qt程序(打包.deb格式)

鉴于Qt良好的跨平台特性,想要将Qt程序编译移植到Maemo平台上,一般都不会遇到太大问题。
关于怎么安装Maemo开发环境请参考CuteQt网站Maemo相关文章,如果你是Linux用户则有更简单的方法,到Nokia论坛去下载最新版的SDK安装程序,是PythonQt界面的,一口气点确认和下一步就可以。
本文关心的主题是怎么将Qt写的应用程序打包成Maemo的deb格式,方便其他人下载和安装。因为Qt的编译系统是利用自有的qmake,和传统GNU automake的方式不太一样,所以有些细节的地方需要注意。下面我们就以Qt的例子应用wiggly为例,一步步来看如何制作Qt的.deb包。(本文操作环境:Maemo5 SDK的ScratchBox环境中)。
1.先建一个空白的编译目录
目录名要求是包名加版本的格式,那么我么建立一个wiggly-3.23的格式(3.23是google离开拆拿到日子,嗯呐)。
2.利用dh_make建立基本的控制文件
进入wiggly-3.23执行以下命令:
DEBFULLNAME=”Cute Qt” dh_make –createorig –single -e cuteqt@cuteqt.com -c gpl
如果你的系统里没有dh_make,需要将”dh-make”的软件包装上,以上命令DEBFULLNAME用于指定发布者的名字,–single是指编译的是当个应用,-e后面加发布者的电子邮件地址,-c后面指的是软件的发布模式,这里指的是GPL. 执行以上命令后可以看到在当前目录下多出来一个debian目录,debian目录下有一些debian工具打包时要用到的文件,暂时跳过。
3.将含源代码的wiggly目录加入编译目录
此时,我们的目录机构应该是主目录下有两个子目录,分别为wiggly-3.23/debian和wiggly-3.23/wiggly,前者包含编译控制文件,后者包含源代码。
4.在wiggly-3.23增加一个top.pro文件
文件内容为
QMAKEVERSION = $$[QMAKE_VERSION]
ISQT4 = $$find(QMAKEVERSION, ^[2-9])
isEmpty( ISQT4 ) {
error(“Use the qmake include with Qt4.4 or greater, on Debian that is
qmake-qt4″);
}
TEMPLATE = subdirs
SUBDIRS = wiggly
前面部分通过qmake版本测得Qt是否为qt4以上版本,后面部分指定子目录,这也是在创建你自己的工程时,根据你的代码目录需要改动的地方。

Read More...

Tags: , , ,
Posted on March 24th, 2010 in Linux技术, Qt技术 | No Comments ».

推荐:FBReader 开源阅读软件

最近电纸书好像很热门,本博客也向大家推荐一个功能非常丰富的阅读软件:FBReader.项目地址在http://www.fbreader.org
FBReader 最早是为Sharp Zaurus而开发的。Sharp Zaurus是用qtopia的前身,利用qte开发的。所以FBReader毫无疑问是支持Qt的. 不过支持Qt并不是我推荐这个这个软件的原因,而是它良好的跨平台特性和扩展性。FBReader是操作系统跨平台的,可以在Windows和Linux 下编译运行,界面GUI则同时支持gtk和qt3/qt4。GUI的实现是以插件形式存在的,所以也很方便切换和增加新的GUI。另外在文件格式上支持 epub(google book的格式),fb2,chm,txt等格式,未来可能还会支持PDF格式,关于格式支持请参阅http://www.fbreader.org /docs/formats.php。目前支持已经被移植到如下硬件平台上maemo,moto ezx,zaurus,pocketpc,pdaxrom… 不说程序功能如何,代码本身也是学习C++和软件架构的一份绝好资料。
而且,为这个软件的编译配置也很简单.只要更改makefiles/target.mk里的两个环境变量就可以TARGET_ARCH指定的开发平台,UI_TYPE指定你的gui套件.比如我为MIPS作的改动如下
—————————————————————–
1. 修改  makefiles/target.mk文件中如下两个环境变量,注释掉其它
TARGET_ARCH = desktop
UI_TYPE = qt4
2.修改 makefiles/arch/desktop.mk 如下环境变量
CC = /opt/mipseltools-gcc412-glibc261/bin/mipsel-linux-gcc
AR = /opt/mipseltools-gcc412-glibc261/bin/mipsel-linux-ar rsu
LD = /opt/mipseltools-gcc412-glibc261/bin/mipsel-linux-g++
CFLAGS = -mips32 -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
设置qt4的变量到你qt make install后对应目录
MOC =  /usr/local/qte/bin/moc
QTINCLUDE = -I /usr/local/qte/include
UILIBS =-L/usr/local/qte/lib -lQtGui
注意:TARGET_ARCH设置的值,决定了使用makefiles/arch下的哪个.mk文件参与Makefile环境变量的设置。如果TARGET_ARCH=maemo那么对应要修改的文件是makefiles/arch/maemo.mk
传一个我在QVFb上的一个截图,打开的是明朝那些事的epub格式,从图标可以看到,FBReader还支持书籍管理,放大,旋转等功能.

另:FBReader还有Android的版本

Read More...

Tags: , , ,
Posted on January 15th, 2010 in C++, Qt技术 | 7 Comments ».

Qt-Mobility 概览

在Nokia宣布停止Qt-Extended开发的时候,并非意味着放弃Qt在手机平台上的应用,而是策划一个更完美的架构能够让Qt在symbian,maemo,desktop等平台做到更好的兼容,这个架构就是Qt-Mobility模块,我们知道Qt-Extended是基于Linux的,而Qt-Mobility将会是跨平台的。它汲取了Qt-Extended中一些优秀的设计理念,并保持和Nokia原有应用设计的兼容。
Qt-Mobility的软件源码在http://qt.gitorious.org/qt-mobility,可以看到其支持的功能.
serviceframework
serviceframework提供系统框架服务,比如文档管理/设备管理/多媒体播放等,只需提供请求,具体后台实现可以有不同的插件来完成,这很像Qt-Extended中的Service请求。也类似Android中的intent。
bearermanagement
bearermanagement是用于网络管理的。在Nokia的智能手机里在访问网络的时候,都有不同的网络连接可供选择,比如CMNet,CMWAP,还有无线网络等。bearermanagerment正是管理这些网络接口的功能。
contacts
顾名思义,这个是管理联系人用的,具有名片功能,支持Nokia自带的.vcf格式。可以自己增加新的条目。大部分代码基本上和Qt-Extended中的contacts是一样的。
context
context和Qt-Extended的渊源就更大了。其实就是Qt-Extended中的QValueSpace,它实现的是变量自动更新功能。举例来说,手机屏幕上的电量,信号强度等,都是随着系统中的电量,信号强度自动更新,不需要定时查询。你可以定制自己需要监控的一些变量,在这些变量被改变的时候,会自动发消息给显示界面。比如收到的电子邮件数,短信息等。
location
location实现定位管理功能,可以从GPS设备中读入坐标信息。包括移动的方向,速度等。地图应用会用到这个功能。

Read More...

Tags: , , ,
Posted on August 31st, 2009 in Qt技术, 新闻类 | No Comments ».

我也来Maemo一下~

前面shiroki的文章Maemo SDK 4.1.2 DIABLO环境安装配置memo,已经详细介绍了Mameo SDK的安装过程。这里再狗尾续貂一个。
原文介绍了Maemo SDK在ubuntu上的安装,以及工具scratchbox和Xephyr的安装。本文仅从使用SDK开始,maemo.org已经提供了一个安装好开发工具的vmware image, 直接从网上下载即可。
1.下载mameo sdk image
进入http://maemovmware.garage.maemo.org/这个页面选择2nd Edition下载,会出现Intrepid Server和Intrepid Desktop供选择,你可以选择Intrepid Desktop版。在最后出现很多列表里,选择Maemo_Diablo_Ubuntu_Intrepid_Desktop_SDK_Virtual_Image.zip这个文件下载即可。解压后运行maemosdk_desktop_intrepid-10-08.vmx 文件即可,当然前提是你安装了VMPlayer.
2. 运行Xephyr
在你的ubuntu linux在VMPlayer里运行起来后,就可以运行Xephyr了。xephyr是用于启动一个X服务器,Maemo的程序会显示这上面,把启动后的界面理解成Maemo设备也是可以的。运行命令为
$ Xephyr :2 -host-cursor -screen 800×480×16 -dpi 96 -ac -extension Composite &
3.运行scratchbox
scratchbox为maemo建立一个专门开发编译环境,不仅支持x86的编译,同时还有arm环境的模拟器。在真正登录scratchbox之前,先需要运行命令
$ sudo /scratchbox/sbin/sbox_ctl start
这条命令的作用是为了进入scratchbox之后的ARM CPU模拟器能正常工作。
接着运行命令
$ /scratchbox/login
运行完上面这条命令之后,就进入scratchbox环境了,命令提示符也不再是$ 变成了[sbox-DIABLO_$target: ~] >
———— 进入scratchbox的分界线 ——————

Read More...

Tags: , , ,
Posted on August 28th, 2009 in Linux技术, Qt技术 | 10 Comments ».

Maemo SDK 4.1.2 DIABLO环境安装配置memo

用了两天时间研究了一下Maemo SDK环境的安装, 包括SDK环境的安装、配置, 还有其中的Qt开发环境的安装, 总结了一些经验。 试验过程中尝试了最新的SDK5 Beta版本, 安装起来挺麻烦, 且运行巨慢, 完全不合用; 后来又尝试了4.1.2 DIABLO, 感觉还不错, 推荐给大家使用。 所以后面的内容就针对4.1.2这个版本来写了。 虽然笔者的环境还不Perfect, 总算能用了, 希望此笔记对其他Maemo初学者有点帮助。 废话不多说, 下面开始。
Maemo SDK安装的官方指南在此: http://repository.maemo.org/stable/4.1.2/INSTALL.txt
笔者采用的是自动脚本安装的方法,简单步骤如下:

Read More...

Tags: , , ,
Posted on May 22nd, 2009 in Linux技术, Qt技术 | 5 Comments ».