利用Qt开发跨平台APP
本文将手把手教你如何在Windows环境下,使用Qt编译出安卓应用程序。
Qt是一个优秀的跨平台开发工具。我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows、Linux、MAC、Android、iOS、Windows Phone等。开发者只需掌握Qt的C++编程与界面制作方法,即可制作出包括手机APP在内的跨平台应用。
需要注意的是,Qt对Android与iOS、UWP等平台的支持目前还不是很完美。使用Qt来进行手机应用开发,制作出来的成品无论是界面、系统资源调用还是稳定性,肯定不如使用原生开发环境开发的要好。使用Qt来进行APP开发主要适合非软件专业的学生、非APP开发行业的开发人员(如电子设计爱好者)用来开发调试用的APP,相较重新学习一个甚至多个系统下的软件开发,这无疑是十分节省时间和精力的。
1. 安装JDK:编译Android程序必需的Java开发环境
https://developer.android.com/ndk/downloads/index.html
下载Windows环境下最新版本安装即可。
2. 安装Apache Ant
“Apache Ant is a Java library and command-line tool thathelp building software”
http://ant.apache.org/bindownload.cgi
下载最新版复制到你的目标安装目录下进行解压即可。
3. 安装Android NDK
安卓原生开发工具包 NDK可用于实现使用C/C++语言构建Android程序。
https://developer.android.com/ndk/downloads/index.html 或
http://tools.android-studio.org/ 最下方找到NDK
下载最新版本直接解压即可。由于文件较多,建议复制到你的目标安装目录下进行解压。
4. 安装Android SDK
http://tools.android-studio.org/index.php/sdk/
选择下载Windows最新的SDK Tools,安装后运行SDK Manager,勾选如下工具。
(如果无法***,请按照http://tools.android-studio.org/index.php/proxy重新配置软件源)
如下图,根据自己需要,勾选一个Android版本的开发工具。之后点击“Installxxx packages”安装即可。
5. 下载并安装Qt与Qt On Android
https://info.qt.io/zh-cn/download-qt-for-application-development
注册并点击“获取开源包”,再点击绿色“Download Now”按钮下载最新版的Qt在线安装器。
打开安装器后,登录刚才注册的账号,在“选择组件”中勾选所需Qt版本的如下组件。“MinGW”是Qt在Windows下的编译工具,“Android”开头的即为安卓环境下对应处理器的开发工具,“UWP”即Windows Phone的开发工具。
6. 安装完成后,打开Qt Creator,依次点击菜单栏“工具-选项-设备-Android”,配置JDK、SDK、NDK、Ant的路径。点击“Start AVD Manager”可创建AVD,方便之后的调试。(电脑配置较差的可以略过,我们可以使用Qt编译出Windows环境下的版本进行调试,确认程序没有问题之后直接使用生成的apk进行真机测试即可,个人暂时没有遇到因环境不同导致的兼容问题)
7. 新建或打开一个Qt工程,在工程配置页面中勾选Android对应处理器的环境。
8. 在左侧边栏“项目”中,选择Android构建项目,选择“Android build SDK”之后,点击“Create Template”。该操作会在项目根目录创建“android”文件夹与相应文件,并自动在.pro文件中添加创建的文件。
9. 在弹出的“AndroidManifest.xml”中,可配置包名称、目标SDK版本以及APP版本号、显示名称、图标等信息。右击项目列表中的“AndroidManifest.xml”文件选择“用...打开-普通文本编辑器”可更改如APP屏幕方向等更多的配置,详细方法请看(http://blog.csdn.net/liukang325/article/details/44944267)。
10. 点击左下角的锤子(编译)按钮,即可编译出Android应用了,目标apk文件将储存在输出文件夹的“android-build\bin”文件夹中。
利用Qt开发跨平台APP的更多相关文章
- 利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)
本文将手把手教你如何使用Qt编译出iOS应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux.MAC.Android ...
- 带你从零学ReactNative开发跨平台App开发(一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(十一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- Sublime用户如何快速高效开发跨平台App
2015年9月15日,APICloud举办了一周年开源分享会,发布开源插件支持Sublime用户开发跨平台App,APICloud 开源技术负责人周兴海分享了Sublime关于插件方面相关的内容. S ...
- 带你从零学ReactNative开发跨平台App开发(二)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发-[react native 仿boss直聘](十三)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(十)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(九)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发[expo 打包发布](八)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
随机推荐
- TP5.0 controller下分版本 分块 分目录写法访问
这个写法是在api模块下的controller目录下又分出了v1和以后未知的v(x)版本,这个时候需要配置路由来访问这个接口类似于这种形式: http://www.xx.com/index.php/a ...
- curl获取公网IP地址
curl ip.cn curl cip.cc https://blog.csdn.net/orangleliu/article/details/51994513 https://blog.csdn.n ...
- HTML5 web 存储
简介: HTML5 web 存储,一个比cookie更好的本地存储方式. 首先我们先了解一下: 什么是 HTML5 Web 存储? 使用html5可以在本地存储用户的浏览数据. 早些时候,本地存储使用 ...
- ABAP抓取异常的方法:try,endtry
部分转自:http://www.cnblogs.com/jiangzhengjun/p/4292428.html +4.Funcion函数异常处理 说明: 异常处理机制可以有效避免 dump发生, : ...
- 循环结构 for
for格式:for(初始化表达式;循环条件表达式;循环后的操作表达式) { 执行语句:循环体 } ------------------------------------ -------------- ...
- 查询set、dict、dict.keys()的速度对比
查找效率:set>dict>list 单次查询中: list set dict O(n) set做了去重,本质应该一颗红黑树 (猜测,STL就是红黑树),复杂度 O(logn): dict ...
- myeclipse自定义JSP模板
- winfrom 下 listbox 选项添加value
public struct MyItem { public string Name; public string Tag; public override string ToString() { re ...
- Servlet—文件上传
什么是Commons? Apache的一个开源子项目,Commons-FileUpload是 Conmmons下子项目. Commons-FileUpload的作用? 1:该组件可以方便地嵌入JSP页 ...
- css rgba透明度变化
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...