【QT开发(17)】2023-QT 5.14.2实现Android开发

1、简介

搭建Qt For Android开发环境需要安装的软件有:

JAVA SDK (jdk 有apt install 安装)
Android SDK
Android NDK

QT官网的介绍:
Different Qt versions depend on different NDK versions, as listed below:

Qt version NDK version Toolchain
Qt 5.14.0 or later Qt 5.13.2 or later Qt 5.12.6 or later NDK r20b or r21 android-clang

1.1 NDK

NDK下载页面
NDK-r21e

1.2 SDK

1、下载SDK tools 24.4.1 带GUI

下载SDK 24.4.1 :https://developer.android.google.cn/ndk/downloads/

因为 Qt5.14.2 配套的是SDK 24.4.1,带GUI的,最新版没有GUI了。

tools/android update sdk 

启动GUI 下载SDK组件
【QT开发(17)】2023-QT 5.14.2实现Android开发_第1张图片

安卓8.0
【QT开发(17)】2023-QT 5.14.2实现Android开发_第2张图片
使用 sdkmanager 安装 SDK 工具和平台后,您可能需要接受尚未接受的任何许可。您也可以使用 sdkmanager 完成此操作:

$ sdkmanager --licenses

此命令会扫描所有已安装的 SDK 工具和平台,并显示尚未接受的任何许可。系统会提示您接受每个许可。

QT 5.14.2的会自动处理一些情况

Qt自动下载了build-tools 28.0.3
【QT开发(17)】2023-QT 5.14.2实现Android开发_第3张图片

1.3 QtCreator配置

完成1.2 之后,
1、配置好:菜单栏----->工具----->选项----->设备,如图:
【QT开发(17)】2023-QT 5.14.2实现Android开发_第4张图片

2、配置好:菜单栏----->工具----->选项----->Kit

如果你不使用虚拟机,该说明文档到处结束。注意说明的就是两点:

  • NDK版本要正确,21版本
  • SDK tools 使用过时的24.4.1 带GUI的,Qt5.14.2 是适配这个的,然后就是安装工具和镜像

2 虚拟机

如果想使用虚拟机调试

2.1、下载最新版 SDK tools (仅限命令行工具)

SDK 工具版本说明
用 sdk manager 命令行版本(command line) 获取SDK。截至2023年10月,sdk有Ui界面的是过时信息,过时的sdk的虚拟机是32位的,因此无法使用,需要安装最新版本sdk tools。

去android官网下载commandlinetools-linux-10406996_latest.zip

从QT的官方信息来看,用sdk manager安装 SDK

After downloading and unpacking the Commandline SDK Tools, use the sdkmanager command line tool to install the essential packages:
安装:

cd /tools/bin/
./sdkmanager --sdk_root= --install "cmdline-tools;latest"
./sdkmanager --sdk_root= --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147"

Android Studio or the Qt Creator’s SDK Manager UI can also be used to install the essential SDK packages.

To use the Android Emulator, install it by entering:

./sdkmanager --sdk_root= --install "emulator" "patcher;v4"

To run the Android emulator, the following dependencies are also necessary:

sudo apt-get install libsdl1.2debian:i386

2.2 用 avdmanager (command line) 创建虚拟机

1、下载虚拟机的系统镜像

./cmdline-tools/latest/bin/sdkmanager --list

  system-images;android-27;android-tv;x86                                                  | 9             | Android TV Intel x86 Atom System Image                              
  system-images;android-27;default;arm64-v8a                                               | 2             | ARM 64 v8a System Image                                             
  system-images;android-27;default;x86                                                     | 1             | Intel x86 Atom System Image                                         
  system-images;android-27;default;x86_64                                                  | 1             | Intel x86_64 Atom System Image                                      
  system-images;android-27;google_apis;arm64-v8a                                           | 3             | Google APIs ARM 64 v8a System Image                                 
  system-images;android-27;google_apis;x86                                                 | 11            | Google APIs Intel x86 Atom System Image                             
  system-images;android-27;google_apis_playstore;x86                                       | 3             | Google Play Intel x86 Atom System Image                             

2、avdmanager 是一个命令行工具,可以用于从命令行创建和管理 Android 虚拟设备 (AVD)。 avdmanager 工具包含在 Android SDK 命令行工具软件包中(位于 android_sdk/cmdline-tools/version/bin/avdmanager)。

官方介绍用法

创建新的 AVD。您必须为该 AVD 提供 name,并使用加引号的 sdk_id 指定要用于该 AVD 的 SDK 软件包的 ID。例如,以下命令会使用 x86 系统映像(API 级别 25)创建名为 test 的 AVD:

avdmanager [global options] command [command options]
./cmdline-tools/latest/bin/avdmanager  create avd -n name -k "sdk_id" [-c {path|size}] [-f] [-p path] 	
./cmdline-tools/latest/bin/avdmanager create avd -n test -k "system-images;android-27;google_apis;x86"
./cmdline-tools/latest/bin/avdmanager list avd
Available Android Virtual Devices:
    Name: test
    Path: /root/.android/avd/test.avd
  Target: Google APIs
          Based on: Android 8.1 ("Oreo") Tag/ABI: google_apis/x86
  Sdcard: 512 MB

删除

./cmdline-tools/latest/bin/avdmanager  delete avd -n test 

3、运行
官方说明
使用命令emulator -avd 运行AVD或通过先前启动的GUI。
【QT开发(17)】2023-QT 5.14.2实现Android开发_第5张图片

您可以使用命令adb install手动安装应用程序。

./emulator/emulator -avd test

现在切换到模拟器,并通过启动器启动您的应用程序,就像在任何正常的设备。

adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld / org.sample.helloworld.HelloWorld。

如果您需要使用提升权限 (root) 来帮助您排查应用问题,您可以使用不包含 Google 应用或服务的 Android 开源项目 (AOSP) 系统映像。然后,您可以使用 adb root 和 adb unroot 命令在普通权限和提升权限之间切换:

  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  % adb root
  restarting adbd as root
  % adb shell
  emu64a:/ #
  emu64a:/ # exit
  % adb unroot
  restarting adbd as non root
  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  %

2.3 即便如此

虚拟机也无法使用Qt编译的aarch的文件,虚拟机是x86的。还是用手机adb调试吧。

参考

https://blog.csdn.net/qq153471503/article/details/128063210
https://blog.csdn.net/wwws1994/article/details/108204186
https://www.eet-china.com/mp/a47680.html
https://developer.android.google.cn/ndk/guides?hl=zh-cn

你可能感兴趣的:(嵌入式数据结构C++工具链,qt,android,开发语言)