【AOSP】 将编译的模拟器映像文件导入Android Studio

1. 环境说明

编译环境:Ubuntu 22.04(WSL)
编译版本:Android 11 (API 30)
Android Studio: Android Studio Giraffe | 2022.3.1 Patch 3

2. 快速开始

2.1 编译Android Sdk(包含模拟器镜像)

username@ubuntu:~$ cd aosp/
username@ubuntu:~/aosp$ . build/envsetup.sh
username@ubuntu:~/aosp$ lunch sdk_phone_x86_64

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
TARGET_PRODUCT=sdk_phone_x86_64
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=x86_64
TARGET_2ND_ARCH=x86
TARGET_2ND_ARCH_VARIANT=x86_64
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-Ubuntu-22.04.3-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RD2A.211001.002
OUT_DIR=out
PRODUCT_SOONG_NAMESPACES=device/generic/goldfish device/generic/goldfish-opengl hardware/google/camera hardware/google/camera/devices/EmulatedCamera device/generic/goldfish device/generic/goldfish-opengl
============================================
username@ubuntu:~/aosp$ make sdk
[100% 220/220] Package SDK: out/host/linux-x86/sdk/sdk_phone_x86_64/android-sdk_eng.username_linux-x86.zip
...
#### build completed successfully (02:37 (mm:ss)) ####

username@ubuntu:~/aosp$

2.2 确定Android Studio的模拟器映像保存位置

打开Android Studio,请来到创建模拟器界面:
在这里插入图片描述

请选择x86 Images,我们只是想确定映像的保存位置,因此您可随便选择一个版本下载,下载完成后尝试在path-to-your-sdk\system-images下查找,它看起来像这样:

PS D:\Libraries\.android\Sdk\system-images> tree
卷 新加卷 的文件夹 PATH 列表
卷序列号为 182F-3537
D:.
└─android-31
    └─aosp_atd
        └─x86_64
            └─...

看起来确实保存了我在Android Studio中下载的映像。

2.3 导入映像

我编译的是Android 11(API 30),那么我需要在system-images\下创建android-30\aosp_atd

PS D:\Libraries\.android\Sdk\system-images> tree
卷 新加卷 的文件夹 PATH 列表
卷序列号为 182F-3537
D:.
└─android-30
   └─aosp_atd

最后,我将自己编译的镜像复制进上一步创建的目录。我编译的输出目录位于:
out/host/linux-x86/sdk/sdk_phone_x86_64
那么我的模拟器镜像应该位于out/host/linux-x86/sdk/sdk_phone_x86_64/android-sdk_eng.username_linux-x86/system-images/

username@ubuntu:~/aosp/out/host/linux-x86/sdk/sdk_phone_x86_64/android-sdk_eng.username_linux-x86/system-images$ tree -d
.
└── android-11
    └── x86_64
        └── data
            └── misc
                ├── apns
                ├── emulator
                │   └── config
                ├── gceconfigs
                └── wifi

9 directories
username@ubuntu:~/aosp/out/host/linux-x86/sdk/sdk_phone_x86_64/android-sdk_eng.username_linux-x86/system-images$

只需将x86_64目录完整复制进上一步创建的目录即可。之后整个目录看起来像这样:

PS D:\Libraries\.android\Sdk\system-images> tree
卷 新加卷 的文件夹 PATH 列表
卷序列号为 182F-3537
D:.
└─android-30
    └─aosp_atd
        └─x86_64
            └─data
                └─misc
                    ├─apns
                    ├─emulator
                    │  └─config
                    ├─gceconfigs
                    └─wifi
PS D:\Libraries\.android\Sdk\system-images>

3. 验证

如果您的Android Studio还在运行,请先将其关闭,再重新打开,来到创建模拟器界面:
在这里插入图片描述
如果一切顺利(希望您也如此),将看到Android R(API 30)已显示为已下载状态,不要犹豫,点击Next完成模拟器的创建,之后便可尝试启动它。我们的Red Velvet Cake看起来像这样:
在这里插入图片描述
如果想确认这是不是您所编译的系统映像,请移至Settings => About emulated device,关注Build number(通常在最底部)字段,里面应该包含您编译时所使用的username

如何让Android Studio自动下载并使用我们编译的SDK呢?我想您可能需要一台用于托管SDK的网络服务器,具体请参考共享 AVD 系统映像以供他人配合使用 Android Studio

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值