自学内容网 自学内容网

【QT开发(19)】2023-QT 5.14.2实现Android开发,使用新版SDK,试图支持 emulator -avd 虚拟机

之前的博客【QT开发(17)】2023-QT 5.14.2实现Android开发,SDK是24.x版本的,虚拟机是32位的,但是现在虚拟机是64位的了,需要升级SDK匹配虚拟机

最后的效果

在这里插入图片描述

1.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 <ANDROID_SDK_ROOT>/tools/bin/
./sdkmanager --sdk_root=<ANDROID_SDK_ROOT> --install "cmdline-tools;latest"
./sdkmanager --sdk_root=<ANDROID_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=<ANDROID_SDK_ROOT> --install "emulator" "patcher;v4"

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

sudo apt-get install libsdl1.2debian:i386

1.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。
在这里插入图片描述

您可以使用命令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
  %

1.3 结果如何?

运行正常,但是编译的app 无法安装在虚拟机上面,是不是哪儿还没搞好?需要编译x86版本的安卓包?还是aarch的安卓包?先挖个坑。

[正文完]


原文地址:https://blog.csdn.net/djfjkj52/article/details/140521441

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!