Android 辅助进阶 — AVD 镜像的本地编译

Android 辅助进阶 — AVD 镜像的本地编译


文章目录

  • Android 辅助进阶 — AVD 镜像的本地编译
  • 前言
  • 一、源码下载
  • 二、系统镜像编译
  • 三、镜像替换
  • 总结


前言

该系列文章主要总结如何辅助开发者更好的了解 Android 系统,内容会逐渐丰富,欢迎大家点赞关注。

AVD(Android Virtual Device)是 Android 开发中用于模拟真实设备的虚拟设备。AVD 允许 App 开发者在不使用真实硬件的情况下测试和调试应用。AVD 提供了多种配置选项,可以模拟不同的设备类型、屏幕尺寸、API 级别等。

Google 提供了 AVD 的源码,如果想学习 Android Framework,可以针对 AVD 的源码打印堆栈,跟踪流程,增强对 Android 的学习了解。本篇文章,重点介绍一下,如何下载 AVD 源码,以及编译,替换 AVD 镜像。


一、源码下载

根据所需要的分支,下载对应的安卓版本,如果不清楚分支名称,可以浏览器打开 manifest,然后选择你所期望的分支,这里以Android T(13) 为例:

mkdir android-13
cd android-13
repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r3
repo sync -j5

注意:-j 选项用于指定并行任务的数量。具体来说,-j 后面的数字表示同时运行的并行任务数,通过增加并行任务数可以显著提高同步速度。并行数受自身硬件的限制(CPU 和 Mem),下载代码一般限制在 5 以内。


二、系统镜像编译

修改文件 build/make/target/product/sdk_phone_x86_64.mk,在文件末尾添加:

MODULE_BUILD_FROM_SOURCE  := true

然后运行以下命令,编译系统镜像:

source build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j66
make emu_img_zip -j66

注意:这里 -j 的并行任务数量可以大一些,但是也要考虑自身的硬件条件。 最后,会在 out 路径下生成 sdk-repo-linux-system-images-eng.XXX.zip 文件。


三、镜像替换

检查本地安装的 AVD 系统镜像目录,点击 Show on Disk,然后打开文件夹中的 hardware-qemu.ini,找到其中的 disk.systemPartition.initPath,字段后面的地址就是 AVD 系统文件的目录。
Android 辅助进阶 — AVD 镜像的本地编译_第1张图片

解压上一节打包好的 sdk-repo-linux-system-images-eng.XXX.zip 文件并替换 x86_64 文件,重新启动 AVD。


总结

AVD 不但可以帮助测试和调试应用,也可以方便深入学习 Android 系统。通过打印堆栈,帮助开发者更加深入的了解系统架构,在原生的 Android 上面进行修改创新,是 Android 辅助进阶的利器。后面会继续总结 AVD 的一系列用法,比如打印堆栈,自由窗口,平行世界等。


你可能感兴趣的:(Android,辅助进阶,android,安卓)