QT for andriod

QT for andriod 开发 apk软件,因为一些特殊的原因,在这里简单的记录一哈自己开发apk的流程和心得。

首先说明我采用的环境有哪些?

1、QT的版本,个人建议5.15.2的版本及以上,我是用的5.15.2。

2、andriod studio 可以帮助我们快速配置ndk等相关文件。

3、安装jdk相关文件,这是使用java的基础,而java是写apk软件的核心。

4、用于PC端的手机模拟器,我采用的模拟器是网易下面的MuMu模拟器(大家也可以采用其他的模拟器,使用方法应该都是大体上一致的)

那么我们接下来将一一介绍安装和说明,以及编译的时候有哪些注意事项。

首先安装jdk文件,我这里安装的是jdk11的样子,具体的安装包下载地址,我就放到链接里面了,有需要的可以自取(取件码:mate)。

安装jdk,是否安装成功可以在cmd命令行里面使用下面这个指令,查看自己的jdk是否安装成功

jdk -version

要注意安装的时候,要配置一哈环境变量

其中java_home是你安装jdk的文件目录的路径。

第二步,就来到了安装ndk的步骤,大家可以自己采用全程自己手动安装相关依赖,也可以直接用andriod studio的方式(取件码:nmnm),谷歌的这个软件,可以帮助我们去配置软件环境,因此我在这里图方便就安装这个软件来配置ndk文件了。

DK(Java Development Kit)是用于Java开发和运行的环境。它包括了Java的开发工具和JRE(Java Runtime Environment)。在程序员的电脑上,安装JDK是必要的,因为它提供了编译和运行Java程序所需的工具和库。

NDK(Native Development Kit)是用于在Android平台上开发本地应用程序的一套工具。它允许开发者使用C和C++等本地语言编写Android应用程序,同时还提供了访问Android系统底层功能和库的接口。NDK的存在使得开发者可以更好地优化性能,提高应用程序的响应速度。在Unity中使用NDK可以加速游戏或应用程序的部分功能。

我配置的相关环境如下:

其中android SDK Platform-Tools一定要勾选,不然没办法使用adb功能连接模拟器

第三步,就来到了安装MuMu模拟器,这里我放一个链接,大家自行去下载,免费的软件。

MuMu模拟器官网_安卓12模拟器_网易手游模拟器 (163.com)

下载完以后,按照相关步骤配置你想要的模拟机型。

这里我选华为手机,花粉一个实锤了,哈哈(*^▽^*)!!!

然后我们就可以打开QT了,选择工具-》外部-》配置-》设备-》android-》点开详情

注意全绿,才可以正常使用,哪里红了就处理它,这个为安卓工具链自动创建套件,要勾选上,因为这样,qt才会为你自动下载openssl相关的工具。

包含以下模块:

  • Qt Core:这是QT库的主要部分,包括一切的核心功能,比如信号和槽机制,事件处理,容器类,正则表达式等。
  • Qt GUI:提供了图形渲染和用户界面的构建等功能,包括Qt Widgets和Qt QML两种方式。其中Qt QML是用于构建动态和流畅的用户界面的。
  • Qt Network:提供了各种网络通信功能,比如HTTP,FTP,SMTP等协议支持,以及套接字编程接口等。
  • Qt SQL:提供了对数据库访问的支持。
  • Qt Test:提供了单元测试框架和一些测试工具。
  • Qt WebAssembly:将Qt应用编译为WebAssembly格式,可以在Web浏览器中运行。
  • Qt Widgets:提供了基于C++的图形用户界面库,用于构建传统的桌面应用程序。

需要注意的是,对于具体某个模块是否支持Android平台,最好查看官方文档或者在相应的开源社区进行咨询。因为每个模块的开源社区都会有各自的移植和优化工作,所以只有官方或者社区才能提供最准确的信息。

官方的链接在下面:

Qt for Android Automotive

last but not least,就在用QT编译apk程序的时候,要注意只能使用QT支持的模块,才能用C++的代码去实现你想要实现的功能,不然会报错。另外apk的安装还需要包签名,不然有可能安装错误。

这个签名是可以自己创建设立的哈。

除了用我上面提到的mumu模拟器,还可以使用android里面的create device创建一个虚拟的device,这里我个人建议最好创建一个API大于9.0的。。。经验的教训,不如就会像我下面这样报错:

例子:

最后成功的效果图就是这样的啦,我这里是一个简易的network android的apk程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D数据导出工具HOOPS Publish:3D数据查看、生成标准PDF或HTML文档!

HOOPS中文网http://techsoft3d.evget.com/ 一、3D导出SDK HOOPS Publish是一款功能强大的SDK,可以创作丰富的工程数据并将模型文件导出为各种行业标准格式,包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:…

STM32移植FAT文件系统

所谓“移植”,就是打通FAT源码和物理设备之间的软件接口。 FAT源码早就被公益组织给写好了,直接下载源码。但是FAT作为顶层应用程序,它需要面对的底层物理设备是不确定的,那么底层的物理设备驱动程序就需要程序员来自己写。物理设…

Docker的初级使用

Docker的初级使用 Docker的安装1.1 如果之前安装过旧版本的Docker,可以使用下面命令卸载:1.2.安装docker1.3.启动docker1.4.配置镜像加速2.CentOS7安装DockerCompose2.1.下载2.2.修改文件权限2.3.Base自动补全命令:3.Docker镜像仓库3.1.简化版镜像仓库3.2.带有图形化界面版本…

Java中的值传递与引用传递 含面试题

面试题分享 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java、python面试题 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 史上最全文档…

Android:基于mvvm框架使用viewPage

一、前言: 最近在学习viewpage的使用,加上一直以来用mvvm框架。就想着记录一下。 二、代码展示: 1.引入依赖 //viewPage2引用(微信左右滑动页面)implementation androidx.viewpager2:viewpager2:1.0.0 2.在xml中的使用 3.在代码中找到vie…

脚本:python实现樱花树

文章目录 代码效果 代码 from turtle import * from random import * from math import * def tree(n, l):pd () # 下笔# 阴影效果t cos ( radians ( heading () 45 ) ) / 8 0.25pencolor ( t, t, t )pensize ( n / 3 )forward ( l ) # 画树枝if n > 0:b random () *…

【前沿】数据目录是什么?您为何需要它?

简而言之,数据目录就是关于企业数据资产的一个有序清单。它可以使用元数据来帮助企业管理数据,帮助数据专业人员收集、组织、访问和充实元数据,从而为数据发现和治理提供支持。 01 数据目录的定义和类比 在上文我们简单介绍数据目录的定义&a…

算法通关村第12关【黄金】| 字符串冲刺题

1.最长公共前缀 思路&#xff1a;纵向比较&#xff0c;每个字符串从头挨个比较 class Solution {public String longestCommonPrefix(String[] strs) {StringBuilder sb new StringBuilder();for(int i 0;i<strs[0].length();i){char c strs[0].charAt(i);for(int j 1;j…

Qt实现图书管理系统(C++)

文章目录 数据库表的实现创建表将powerDesigner里面的表导出成xxx.sql脚本将SQL文件导入数据库创建表 图书管理系统思维导图创建工程开发阶段创建Dlg_login登录页面login页面样式主页页面布局主函数测试login设置logo打包程序子页面的样子将子页面放到StackedWidget里面按钮直接…

Linux 查看属于某个组(例如docker组)的所有用户

要查看属于某个组&#xff08;例如docker组&#xff09;的所有用户&#xff0c;可以使用getent命令。getent命令用于从Name Service Switch库中获取条目。 要列出docker组下的所有用户&#xff0c;可以执行&#xff1a; getent group docker这会返回类似下面的输出&#xff1…

Python学习 -- logging模块

logging 模块是 Python 中用于记录日志的标准库&#xff0c;它提供了丰富的功能&#xff0c;可以帮助开发者进行日志记录和管理。以下是关于logging模块的详细使用方式&#xff0c;包括日志级别、处理流程、Logger 类、Handler 类、Filter 类、Formatter 类以及模块中常用函数等…

zookeeper搭建分布式集群启动失败(Error contacting service. It is probably not running.)

文章目录 1.排查2.解决 1.排查 1.启动zookeeper后查看状态/bin/zkServer.sh status发现报错Error contacting service. It is probably not running. [rootzookeeper01 apache-zookeeper-3.8.2-bin]# ./bin/zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by defau…

shell入门运算符操作、条件判断

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

PCIe 5.0验证实战,经常遇到的那些问题?

PCIe 5.0是当前最新的PCI Express规范&#xff0c;提供了更高的数据传输速率和更大的带宽。 PCIe是连接两个芯片的接口&#xff0c;负责两个芯片通信, 连接芯片的通路为高速SerDes, 称之为链路。PCIe确保通路正常-链路训练状态机。PCIe在芯片内部是非常重要的一个大的模块&…

YOLOv5改进算法之添加CA注意力机制模块

目录 1.CA注意力机制 2.YOLOv5添加注意力机制 送书活动 1.CA注意力机制 CA&#xff08;Coordinate Attention&#xff09;注意力机制是一种用于加强深度学习模型对输入数据的空间结构理解的注意力机制。CA 注意力机制的核心思想是引入坐标信息&#xff0c;以便模型可以更好地…

大数据课程K20——Spark的SparkSQL概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的SparkSQL由来; ⚪ 了解Spark的SparkSQL特点; ⚪ 了解Spark的SparkSQL优势; ⚪ 掌握Spark的SparkSQL入门; 一、SparkSQL概述 1. 概述 Spark为结构化数据处理引入了一个称…

STM32单片机OLED贪吃蛇游戏记分计时

实践制作DIY- GC00165---OLED贪吃蛇游戏 一、功能说明&#xff1a; 基于STM32单片机设计---OLED贪吃蛇游戏 二、功能说明&#xff1a; STM32F103C系列最小系统板0.96寸OLED显示器上、下、左、右4个按键 1.通过OLED配合按键实现贪吃蛇游戏 2.可以上下左右移动。 3.可以统计显…

golang-bufio 缓冲写

1. 缓冲写 在阅读这篇博客之前&#xff0c;请先阅读上一篇&#xff1a;golang-bufio 缓冲读 // buffered output// Writer implements buffering for an io.Writer object. // If an error occurs writing to a Writer, no more data will be // accepted and all subsequent…

搭建vue3项目并git管理

搭建vue3项目 采用vue3的create-vue脚手架搭建项目&#xff0c;底层是vite&#xff0c;要求环境 node 16.0及以上&#xff08;node -v检查node版本&#xff09; 在文件夹右键->终端-> npm init vuelatest&#xff0c;输入项目名称&#xff0c;根据需要选择是否装包 src…

huggingface 自定义模型finetune训练测试--bert多任务

背景&#xff1a; 需要将bert改为多任务&#xff0c;但是官方仅支持多分类、二分类&#xff0c;并不支持多任务。改为多任务时我们需要修改输出层、loss、评测等。如果需要在bert结尾添加fc等也可以参考该添加方式。 代码 修改model 这里把BertForSequenceClassification改…