之前的博客【QT开发(17)】2023-QT 5.14.2实现Android开发,SDK是24.x版本的,虚拟机是32位的,但是现在虚拟机是64位的了,需要升级SDK匹配虚拟机
文章目录
- 最后的效果
- 1.1 下载最新版 SDK tools (仅限命令行工具)
- 1.2 用 avdmanager (command line) 创建虚拟机
- 1.3 结果如何?
最后的效果
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的安卓包?先挖个坑。
[正文完]