当前位置:   article > 正文

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

qt android

一、前言

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

二、ADB调试

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

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

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

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

 2.1、ADB安装

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

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

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

        Linux下安装Adb就更简单了,直接控制台输入sudo apt-get install adb,即安装完成。

 2.2、ADB部署和调试

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

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

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

  1. adb devices #查看连接设备
  2. adb install test.apk # 安装应用
  3. adb uninstall com.tbb.power #卸载应用,需要指定包名
  4. adb shell dumpsys window | findstr mCurrentFocus #查看当前运行的包名和activity名
  5. adb shell dumpsys activity | find "mResumedActivity"#Android8以上 查看当前运行的包名和activity名
  6. adb shell dumpsys activity | find "mFocusedActivity"#Android7以下 查看当前运行的包名和activity名
  7. adb shell pm list packages #列出手机装的所有app 的包名
  8. adb shell am start com.tbb.power/org.qtproject.qt5.android.bindings.QtActivity #启动应用
  9. adb shell am force-stop com.tbb.power #强制停止应用
  10. adb shell dumpsys package #包信息Package Information
  11. adb shell dumpsys meminfo #内存使用情况Memory Usage
  12. adb logcat #查看日志,程序qdebug的内容在这里
  13. adb logcat -c #清除log 缓存
  14. adb reboot #重启
  15. adb get-serialno #获取序列号
  16. adb shell getprop ro.build.version.release #查看Android 系统版本
  17. adb shell top -s 10 #查看占用内存前10 的app
  18. adb push <local> <remote> #从本地复制文件到设备
  19. adb pull <remote> <local> #从设备复制文件到本地
  20. adb bugreport #查看bug 报告
  21. adb help #查看ADB 帮助

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

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

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

卸载apk需要根据包名。

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

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

停止app和启动app

三、创建秘钥文件和证书

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

3.1、创建秘钥

        勾选对包签名的复选框,

 设置秘钥密码和信息。

3.2、创建AndroidManifest

        选择Create Templates创建xml文件。

        这里直接下一步

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

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

查看包名,可以发现包名可以改成我们设置的名称。

3.3、提高apk权限为system

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

        添加完之后编译通过,但是安装会失败,异常报错INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

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

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

  1. 第一步
  2. openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
  3. 第二步
  4. openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name platform
  5. 第三步
  6. keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass android -alias platform

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

修改build.gradle文件。

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

3.4、设置AndroidManifest默认打开方式

        在QtCreator中,双击AndroidManifest.xml会默认有两个界面,一个android manifest editor可视化界面和一个xml的文本界面,在后面我们会直接对xml文件进行文本编辑,修改activity等信息,这时候可视化界面就会有bug,一旦使用了可视化界面,会把xml文件中的activity设置回界面相关的内容,我们自定义后面添加的都会消失不见。

        我们需要在设置把该xml文件默认打开方式由android manifest editor改为文本编辑模式,才不会出现莫名其妙的问题,这点非常重要!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/312001
推荐阅读
相关标签
  

闽ICP备14008679号