找回密码
 立即注册

Qt安卓教程(1): 从Qt5.1开始

发表于 2013-8-8 00:14:08 | 显示全部楼层 |阅读模式
该文章原创于Qter开源社区(www.qter.org),作者Joey_Chan,转载请注明出处!

系列教程传送门:
第二篇:http://www.qter.org/forum.php?mod=viewthread&tid=563
第三篇:http://www.qter.org/forum.php?mod=viewthread&tid=918
第四篇:http://www.qter.org/forum.php?mod=viewthread&tid=1382
第五篇:http://www.qter.org/forum.php?mod=viewthread&tid=1664
第六篇:http://www.qter.org/forum.php?mod=viewthread&tid=2518

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

第一篇:从Qt5.1开始

1. 准备工作
    站长yafei已经发过这个准备教程了,我这里只简单说明一下要点。(笔者使用的是Kubuntu 12.04,其它系统可能会有少许差异,有问题欢迎提问)

    1.1 下载好android sdk和ndk,解压即可;
    1.2 下载好Qt5.1并安装;
    1.3 (注意!这个必须)下载安装最新Qt Creator,版本2.8或以上;(过时)
          (更新)新版本的Qt集成安装包已经包含了版本大于2.8的creator
    1.4 下载并配置好jdk和ant;
    1.5 (Linux版请注意)android sdk自带的adb可能没有连接设备的权限,请把这个adb改为root属主,用chmod u+s特殊授权,再增加普通用户访问权限(777),这个步骤看不懂的童鞋请拿着Linux教程面壁去;

2. 开始动手

    启动creator,注意必须是版本大于等于2.8的,目前Qt5.1自带的是2.7.2。


    打开creator后,先不要急着建项目,去选项看看Android相关配置有没有问题,我这里先贴上我自己的Linux版本配置:
   

    然后确定编译器、Qt版本和编译打包套件的配置: (至少要有一个arm v7的套件在)




    确定无误后可以开始新建项目了,我这里只选了arm v7 gcc 4.8的,x86可忽略(市面上几乎没有x86的手机卖,当然现在x86的电脑也可以装安卓了)

    建好项目后,这里暂时不改源代码,直接去“项目”选项卡

    然后点“运行”(项目里面的,不是左下角的)


    打开第二项“包配置”


    选择安卓目标sdk,这里的sdk就是指安卓的sdk版本(必须大于等于10,这是Qt5的基本要求),图中的“android-10”就代表android 2.3,这个需要在android的sdk里面自行安装

    点左下角的锤子进行编译

    然后就可以选择图中的“从应用程序读取信息”,这个是必须步骤,这个步骤可以自动在apk中加载需要用到的Qt库

    签名什么的暂时不需要,如果是自己玩的话

    打开第三项“Deploy配置”,这里童鞋们可以打开版本低于2.8的creator,会发现这里有很大的不同,特别是最下方的“Bundle Qt libraries in APK”,这个是把Qt库打包进APK的选项,老的creator没有这个功能,这就是为什么我要求下载最新版本的creator了
   

    接下来请连上手机,记得打开手机的debug模式,点击左下角的绿色三角形,程序就在手机上运行了,如图,hello world
   

    把编译好的apk拿出来,就可以直接给小伙伴们安装了,不需要别的支持,让他们惊呆一下吧。

3. 加工一下

   打开main.qml这个文件,在第六行下面加一行,输入 id:hello ,
   然后把下面onclicked里面的内容改为 hello.text = parent.width + " , " + parent.height
   意思就是把hello world改为当前程序的占用分辨率


   运行效果如下
  


   说明了Qt for Android已经自带有分辨率自适应的能力,因为代码头部写的大小是360×360,而实际显示是程序实际占用的分辨率。



能力有限请多多包涵,欢迎各种没节操的批评。
BTW,目前还没打算下一期写什么内容,童鞋们可以提个建议。

本帖子中包含更多资源

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

x

评分

参与人数 4人气 +7 收起 理由
AZMDDY + 2 很实用!
xiangtian134 + 1 很实用!
sikong + 2
xflcx1991 + 2 对我帮助很大!

查看全部评分

回复

使用道具 举报

发表于 2013-8-8 01:46:35 | 显示全部楼层
楼主,加油!继续把教程写下去!!!!!
回复 支持 反对

使用道具 举报

发表于 2013-8-8 02:04:43 | 显示全部楼层
建议把相关下载链接,代码等附件上传
回复 支持 反对

使用道具 举报

发表于 2013-8-8 08:45:35 | 显示全部楼层
楼主真是辛苦了,好好学习
回复 支持 反对

使用道具 举报

发表于 2013-8-8 09:16:26 | 显示全部楼层
建议写sensor相关的部分。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-8 09:18:43 | 显示全部楼层
wins 发表于 2013-8-8 02:04
建议把相关下载链接,代码等附件上传

链接就只有qt的官网,代码也只有creator自建的项目,所以没必要上传。  有什么不懂的可以直接回帖问,本期其实没什么实质性内容。
回复 支持 反对

使用道具 举报

发表于 2013-8-8 09:35:46 | 显示全部楼层
Joey_Chan 发表于 2013-8-8 09:18
链接就只有qt的官网,代码也只有creator自建的项目,所以没必要上传。  有什么不懂的可以直接回帖问,本 ...

在前面可以先写下自己的环境,比如用的是什么linux系统。
回复 支持 反对

使用道具 举报

发表于 2013-8-8 10:17:31 | 显示全部楼层
楼主加油~  想问下 手机开发主要是使用QML么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-8 10:30:53 | 显示全部楼层
yafeilinux 发表于 2013-8-8 09:35
在前面可以先写下自己的环境,比如用的是什么linux系统。

对哦。。。忘了写,等会加上去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-8 10:31:51 | 显示全部楼层
揪揪凯 发表于 2013-8-8 10:17
楼主加油~  想问下 手机开发主要是使用QML么

是qml,官方没有为widget类做手机方向的优化
回复 支持 反对

使用道具 举报

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

本版积分规则

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!