您的位置:首页 > 移动开发 > Android开发

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

2016-07-31 09:54 162 查看
系列教程传送门:
第二篇:http://bbs.qter.org/forum.php?mod=viewthread&tid=563
第三篇:http://bbs.qter.org/forum.php?mod=viewthread&tid=918
第四篇:http://bbs.qter.org/forum.php?mod=viewthread&tid=1382
第五篇:http://bbs.qter.org/forum.php?mod=viewthread&tid=1664
第六篇:http://bbs.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,目前还没打算下一期写什么内容,童鞋们可以提个建议。

该文章原创于Qter开源社区(www.qter.org),作者Joey_Chan,转载请注明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: