找回密码
 立即注册
收起左侧

Qt安卓教程(2):移植Qt到安卓

60
回复
52301
查看
[复制链接]

尚未签到

来源: Android 2013-8-25 17:30:09 显示全部楼层 |阅读模式
Qt安卓教程(2):移植Qt到安卓

该文章原创于Qter开源社区(www.qter.org),作者Joey_Chan,转载请注明出处!


本系列教程主要讲述与安卓移植版Qt的相关内容,如平台特性、功能限制、特定用户体验和内容发布等,其余与Qt自身非平台相关的内容不会作详细讲述,笔者默认童鞋们已经有一定的Qt功底。
另:请自备安卓机子一台,不推荐用模拟器。

第二篇:移植Qt到安卓

1. 直接移植Qt自带的例子

    首先打开安装Qt的目录,再进入desktop版Qt的库目录(我这个因为是Linux所以显示的是gcc版,win的应该显示mingw或vs2010),找到examples文件夹——quick文件夹——demo文件夹——samegame文件夹;
   
   
    这时可以先把samegame.qmlproject这个文件拖进creator里面试试看效果,一个简单小游戏,而且支持两人一起玩;
   
   
    现在开始移植工作;
    建立一个Qt安卓项目(QT QUICK 2),先不要改任何代码,试试看能不能在手机上运行,不知道怎么运行的请看第一篇;
   
    回到刚才的samegame文件夹,把samegame.qml 、setting.js和content文件夹复制到刚刚建立的新项目的qml文件夹内,这时文件夹内应该有这么几个文件:
   
   
    现在进入main.cpp文件,把第九行的main.qml改成samegame.qml,保存;
   
   
    然后进入.pro文件,添加一行: QT += quick multimedia sql , 保存后编译;
   
    去到 项目————运行————包配置,点“从应用程序读取信息”,然后确保sql模块被选中;
   
   
    (此步骤可选)其实现在就能运行程序了,运行前可以尝试修改android的配置文件,在 其它文件————android————AndroidManifest.xml,打开这个文件,会出现一个配置窗口,而不是xml编辑窗口,这个配置窗口可以修改包的名字,程序名字,图标和权限,这里建议不要修改“run”的文字,不然可能会出现找不到可执行文件的情况;
   
   
    点左下角的运行按钮,手机上运行起来了。
   
   
   
    以上步骤可用于纯qml程序的移植,其它情况另作讨论。
   
   
2. 移植widget类程序
    很多童鞋说不会用qml,那么在安卓上用c++ widget行不?那当然是可以的,笔者表示不推荐,官方也不推荐,原因很多,主要是widget不适合触摸屏,而且默认不使用opengl加速,导致程序效率不高。下面我示范简单运行一个widget程序在安卓上。
   
    新建一个项目,选择Qt Gui程序(笔者只有很少几个widget写的程序,而且都比较大,不适合移植到安卓,这里只示范一个新的widget项目)
   
   
    记得选择安卓的套件;
   
   
    在designer中加入几个widget;
   
   
    编译,然后去 项目————运行————包配置里面确认运行库,保证widget库被选上;(Qt5中widget被独立出来了,可能有一些还在用Qt4的童鞋不知道)
   
   
    这时可以运行了,效果如下,笔者表示挺丑的。。。
   


笔者智商捉急,也只能写到这种程度了,嫌我不够水平的童鞋请忽略我。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-8-26 10:19:01 显示全部楼层
沙发,我来支持下~~
回复 支持 反对

使用道具 举报

累计签到:894 天
连续签到:1 天
2013-8-26 14:09:52 显示全部楼层
鼎力支持楼主,widget也可以移植到安卓,真是一个好消息。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-26 14:51:21 显示全部楼层
Syylc120317 发表于 2013-8-26 14:09
鼎力支持楼主,widget也可以移植到安卓,真是一个好消息。

如果习惯了widget又不怎么会qml的还是可以弄一弄的
回复 支持 反对

使用道具 举报

尚未签到

2013-8-26 16:26:06 显示全部楼层
支持一下   会出通过JNI调用android api的教程吗
回复 支持 反对

使用道具 举报

尚未签到

2013-8-26 17:54:51 显示全部楼层
saqirltu 发表于 2013-8-26 16:26
支持一下   会出通过JNI调用android api的教程吗

应该会的,我正在和一个搞安卓的朋友学习如何用JNI
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-8-27 08:47:57 显示全部楼层
移植成功,顶下,期待下一回合
回复 支持 反对

使用道具 举报

累计签到:16 天
连续签到:1 天
2013-8-27 17:06:37 显示全部楼层
同样移植成功,呵{:soso_e100:}
同样期待通过JNI调用android api的教程
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-8-30 08:43:42 显示全部楼层
效果不错,谢谢楼主的分享。
回复 支持 反对

使用道具 举报

累计签到:26 天
连续签到:1 天
2013-8-30 22:22:40 显示全部楼层
这个再不顶起来  实在对不起楼主了
回复 支持 反对

使用道具 举报

尚未签到

2013-8-30 22:37:40 显示全部楼层
miracle2xx 发表于 2013-8-30 22:22
这个再不顶起来  实在对不起楼主了

没事,我自己就是管理员,顶不顶都一样,好好
回复 支持 反对

使用道具 举报

累计签到:26 天
连续签到:1 天
2013-8-31 10:08:53 显示全部楼层
Joey_Chan 发表于 2013-8-30 22:37
没事,我自己就是管理员,顶不顶都一样,好好

哈哈  那也必须得顶。以后真真儿的在这个论坛扎根了。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-31 15:38:38 显示全部楼层
miracle2xx 发表于 2013-8-31 10:08
哈哈  那也必须得顶。以后真真儿的在这个论坛扎根了。

顺便多带些好基友过来哈
回复 支持 反对

使用道具 举报

累计签到:26 天
连续签到:1 天
2013-8-31 23:26:37 显示全部楼层
Joey_Chan 发表于 2013-8-31 15:38
顺便多带些好基友过来哈

必须尽量  哈哈  身边用QT的不多  正在给他们推广中
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2013-9-3 17:36:00 显示全部楼层
谢谢!!向楼主学习。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

累计签到:16 天
连续签到:1 天
2013-9-4 08:22:23 显示全部楼层
楼主使用的是什么版本的Qt Creator? 我的怎么和您的不一样?没有包设置
回复 支持 反对

使用道具 举报

尚未签到

2013-9-4 09:19:36 显示全部楼层
更好 发表于 2013-9-4 08:22
楼主使用的是什么版本的Qt Creator? 我的怎么和您的不一样?没有包设置

我的是2.8.0 ,文章开头有写
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2013-9-7 08:00:33 显示全部楼层
謝謝分享,坐等下篇。
回复 支持 反对

使用道具 举报

累计签到:410 天
连续签到:1 天
2013-9-7 20:16:51 显示全部楼层
好东西,哪天我去找个机子来试试
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2013-9-15 11:25:19 显示全部楼层
作者用的是什么操作系统呢,我一直在win7上面做的,能不能告诉我你的操作系统的全称,我对linux没怎么用过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了