Qt应用开发(安卓篇)——Hello Qt On Android

这篇具有很好参考价值的文章主要介绍了Qt应用开发(安卓篇)——Hello Qt On Android。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        这一篇从实际出发,讲述如何创建、编译和部署Qt On Android项目。

二、ADB调试

        ADB的全称为Android Debug Bridge,就是起到调试桥的作用,主要用于连接计算机与Android 设备,以便进行调试和数据传输。ADB 可以实现以下主要用途:

设备管理:允许用户连接和管理多个设备。

应用调试:通过命令行或图形界面与设备进行交互,包括安装、启动和停止应用程序,查看应用程序的日志信息,并进行性能分析。

文件传输:能够将文件从计算机传输到安卓设备,或者将设备上的文件复制到计算机上。

 2.1、ADB安装

        有安装过windows 安卓环境的就不说了,如果没有可以从ADB下载

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        下载之后解压到目录下,设置环境变量。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        设置完环境变量,Win+R输入CMD打开windows Dos界面,输入adb,出现如下界面即安装成功。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

 2.2、ADB部署和调试

         接上文Qt应用开发(安卓篇)——Linux下Qt15.5.2配置Android-CSDN博客

         创建完项目,得到APK文件,插入USB调试线,充电线就是了。

        这里罗列一些常用的Adb命令,网上有很多,大家随便搜索就有了。

adb devices #查看连接设备

adb install test.apk # 安装应用

adb uninstall com.tbb.power #卸载应用,需要指定包名

adb shell dumpsys window | findstr mCurrentFocus #查看当前运行的包名和activity名

adb shell dumpsys activity | find "mResumedActivity"#Android8以上 查看当前运行的包名和activity名

adb shell dumpsys activity | find "mFocusedActivity"#Android7以下 查看当前运行的包名和activity名

adb shell pm list packages #列出手机装的所有app 的包名

adb shell am start com.tbb.power/org.qtproject.qt5.android.bindings.QtActivity #启动应用

adb shell am force-stop com.tbb.power #强制停止应用

adb shell dumpsys package #包信息Package Information

adb shell dumpsys meminfo #内存使用情况Memory Usage

adb logcat #查看日志,程序qdebug的内容在这里

adb logcat -c #清除log 缓存

adb reboot #重启

adb get-serialno #获取序列号

adb shell getprop ro.build.version.release #查看Android 系统版本

adb shell top -s 10 #查看占用内存前10 的app

adb push <local> <remote> #从本地复制文件到设备

adb pull <remote> <local> #从设备复制文件到本地

adb bugreport #查看bug 报告

adb help #查看ADB 帮助

 输入adb devices,出现如下则表示调试线连接正常,工况正确。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

安装apk,直接输入adb install,然后文件直接从桌面拖进来,出现success即安装成功。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

查看包名adb shell pm list packages,Qt默认的包名为org.qtproject.example.项目名称。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

卸载apk需要根据包名。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

 查看当前运行的包名和activity名称。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

adb shell进入后台界面,exit退出shell,这里linux指令都能用,

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

停止app和启动app

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

三、创建秘钥文件和证书

        在实际的项目中,我们需要修改包名、activity名,提升apk的权限便于操作串口等操作,这时候我们就需要创建秘钥和证书。

3.1、创建秘钥

        勾选对包签名的复选框,

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

 设置秘钥密码和信息。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

3.2、创建AndroidManifest

        选择Create Templates创建xml文件。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        这里直接下一步

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        AndroidManifest提供可视化和源码两个界面,这里可以选择apk图标,包名,activity名、设置权限等入口。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        安装之后可以看到apk的图标已经变成我们设置的鸡腿。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

查看包名,可以发现包名可以改成我们设置的名称。 安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

3.3、提高apk权限为system

        按照之前的操作,可以看到apk的权限是用户权限,如果需要提升为system,需要在xml文件添加android:sharedUserId="android.uid.system"

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

        添加完之后编译通过,但是安装会失败,异常报错INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

         这是因为使用android:sharedUserId的同时,还需要android系统的key,不同的系统的key都是不一样的,一般只提供给专门的开发人员,即使你能百度到一个,也无法在其他android设备上使用。如果你是想在模拟器或者手机上设置该属性,可以直接放弃。

        这里我们从厂家得到两个文件,platform.x509.pem和platform.pk8,通过openssl对其进行编译。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

第一步
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt

第二步
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name platform

第三步
keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass android -alias platform

在项目部署界面导入编译出来的.keystore文件,勾选Sign package,这里要注意,工程项目关闭重新打开之后,这里需要又重新设置,默认不保存,可以通过编译出来的文件在debug还是release文件夹下发现。 

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

修改build.gradle文件。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC

再次打包、安装,可以看到apk权限已经从用户变成为system权限。

安卓 qt,Qt5从入门到精通-应用开发,android,qt,PC文章来源地址https://www.toymoban.com/news/detail-818401.html

到了这里,关于Qt应用开发(安卓篇)——Hello Qt On Android的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Qt开发》MDI应用程序

    实现多个子窗体的自定义布局(自定义子窗体尺寸和位置)、平铺布局(titleSubWindows)和分页模式(QMdi::TabbedView)。 运行效果图 初始布局(自定义布局) 平铺布局 多页模式 实现过程 1. 创建项目MdiFirstDemo,并创建3个子窗体,分别为FirstSubWindow、SecondSubWindow和ThirdSubWindow。

    2024年01月16日
    浏览(51)
  • Qt应用开发——下载安装和HelloWorld

            工欲善其事,必先利其器。第一步环境安装好是必要的过程。Qt 在23年4月份已经更新到了6.5.0,相对于其他的工具,Qt不断在维护升级这一点就非常的友好,这里对版本的迭代更新内容不做介绍,做应用开发的话肯定是版本越新最好。官网下载的每个版本都提供了

    2024年02月16日
    浏览(49)
  • VS下开发Qt应用环境搭建

    vs2019 QT5.14 我之前是按照QT基础组件的安装,但是这个安装只是最基础的组件,如果想要在VS中使用QT,还得安装其他组件,下面的安装流程、 我之前已经安装了QT,现在需要新增套件 Qt安装完毕后,如何再添加移除组件 运行MaintenanceTool.exe QT 此操作至少需要一个处于启用状态

    2024年02月14日
    浏览(49)
  • QT客户端开发的应用场景

    QT 是一跨平台应用程序开发框架,支持多种操作系统,包括 Windows、macOS、Linux、Android、iOS 和嵌入式系统等。这使得 QT 非常适合开发需要在多种平台上运行的应用程序。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 QT 提供了一套完整的开发工具和

    2024年04月29日
    浏览(42)
  • CMake+QT+大漠插件的桌面应用开发

    在CMake+大漠插件的应用开发——处理dm.dll,免注册调用大漠插件中已经说明了如何免注册调用大漠插件,以及做了几个简单的功能调用(查找窗口、截图) 下面来利用 QT 和 大漠插件 做一个简单的窗口查找、截图的桌面工具应用,功能点如下 点击“注册”选项完成大漠插件

    2024年01月19日
    浏览(49)
  • Qt应用开发(基础篇)——进度条 QProgressBar

             QProgressBar 类继承于QWidget,是一个提供了横向或者纵向进度条的小部件。           QProgressBar 进度条一般用来显示用户某操作的进度,比如 烧录、导入、导出、下发、上传、加载 等这些需要耗时和分包的概念,让用户知道程序还在正常的执行中。       

    2024年02月10日
    浏览(43)
  • C++ Qt开发:SqlTableModel映射组件应用

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 SqlTableModule 组件的常用方法及灵活运用。 在多数情况下我们需要使用SQL的方法

    2024年02月04日
    浏览(41)
  • Qt应用开发(基础篇)——工具按钮类 QToolButton

            QToolButton 类继承于 QAbstractButton ,该部件为命令或选项提供了一个快速访问按钮,通常用于 QToolBar 中。         按钮基类 QAbstractButton          QToolButton 是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它提供对特定命令或选项的快速访问,

    2024年02月09日
    浏览(56)
  • Qt应用开发(基础篇)——字体选择器 QFontDialog

             QFontDialog 类继承于QDialog,是一个设计用来选择字体的对话框部件。         对话框窗口QDialog           QFontDialog 字体选择对话框,设计用来让用户选择某一种字体,一般用于文本编辑窗口、标签显示和一些需要文本输入的场景。你可以直接使用静态函数

    2024年02月10日
    浏览(48)
  • Qt应用开发(基础篇)——文本编辑窗口 QTextEdit

             QTextEdit 类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,用来显示富文本和纯文本的窗口部件。 框架类 QFrame https://blog.csdn.net/u014491932/article/details/132188655 滚屏区域基类 QAbstractScrollArea https://blog.csdn.net/u014491932/article/details/132245486          QTextEdit 是一个先

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包