? ? ? ? 正常情况下,源码编译后可直接执行emulator, 启动编译好的镜像,但是如果使用的是server版的ubuntu系统,没有图形界面,或者WSL编译的源码,以及我当前情况,AMD CPU + Hyper-V + ubuntu(intel CPU好像没这个问题),不得不使用其它方案启动编译好的镜像,该方案目前验证的Android10可行,但Android13 (android-13.0.0_r3)能连上adb,也能进shell,但无画面,从日志看图形有crash,应该是版本问题,其它版本自行验证
启动AVD manager,并创建虚拟设备
通过Android Studio启动AVD manager,该步骤只需执行一次,后续不再需要依赖Android Studio,理论上不使用Android Studio,只依赖Android SDK便可完成这一操作,如果你没有AS,又不想安装,可以摸索一下
创建虚拟设备,创建成功后,便可在设备列表中看到,profile配置这一步不是必须的,也可以从现有的随便选一个
?
?
?选择加载的安卓镜像,这一步需要先从官网下载镜像,注意ABI要和编译源码时候lunch的类型一致,例如,我编译源码lunch的是x86_64的镜像,则此处选的也是x86_64镜像,点击download开始下载镜像
?下载好的镜像存放于SDK目录下system-images子目录内
下载完成后点击下一步->完成
此时便可以在设备列表中看到刚创建的虚拟设备
?文件管理器进入镜像存放目录,将原镜像备份,(此步骤非必须,备份主要是为了保留原来的)
?将源码out\target\product\$device_dir中,以下文件拷贝到上述备份的镜像目录下,拷贝带-qemu后缀的文件,删除-qemu后缀,带-qemu后缀的才是给模拟器用的
advancedFeatures.ini build.prop (system/build.prop) encryptionkey.img kernel-ranchu ramdisk.img system.img
VerifiedBootParams.textproto
? ? ? ? 正常来说这样点击启动模拟器,就可以正常启动镜像,但是如果需要修改安卓源码,那是无法进行动态库替换的的,因为system分区没有写权限,需要修改启动,可以自定义bat脚本启动
主要就是增加了-writable-system启动该选项,把模拟器路径替换为你自己的路径,aosp_x86_64_API_30 为上面设备名替换为你自己的,sysdir 为镜像目录,保存后直接双击bat便可打开模拟器
set emulator_exe=D:\Green_Sorft\Android\Sdk\emulator\emulator.exe
%emulator_exe% -avd aosp_x86_64_API_30 -writable-system -memory 4096 -sysdir D:\Green_Sorft\Android\Sdk\system-images\android-30\default\x86_64-aosp
|