创建安卓模拟器

概述

最近开发中,每每需要测试程序的时候都是用usb数据线连接手机进行,有点麻烦了,所以打算使用模拟器替代手机硬件。

配置流程

安卓模拟器的配置主要就是sdk和配套工具。

  1. android sdk
  2. flutter sdk

以上各种工具都放在$HOME/Android/Sdk目录,同时把相关资源写到PATH环境变量里。

vim ~/.profile
export ANDROID_SDK_ROOT="${HOME}/Android/Sdk"

export PATH="${PATH}:${HOME}/bin:${ANDROID_SDK_ROOT}/flutter/bin:${ANDROID_SDK_ROOT}/flutter/bin/cache/dart-sdk/bin/:${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/:${ANDROID_SDK_ROOT}/emulator/"
  1. 参考原来的文章配置flutter sdk安装

  2. 然后运行flutter doctor命令,会检测flutter的运行环境,如果没有android sdk会提示安装。

  3. 下载Android SDK Tools,同样放在sdk目录,不过父目录结构要正确,必须为:$HOME/Android/Sdk/cmdline-tools/tools/bin/sdkmanager。(sdkmanager为可执行程序)

  4. 下载镜像
    查看可用镜像列表

sdkmanager --list
sdkmanager "system-images;android-28;default;x86_64"
  1. 下载模拟器和工具
sdkmanager platform-tools
sdkmanager emulator
  1. 创建模拟器
avdmanager create avd --name emulator1 --package "system-images;android-28;default;x86_64"
  1. 运行模拟器
emulator -avd emulator1

此步如果提示找不到ANDROID_SDK_ROOT没有设置或者找不到avd工具的信息,就是上面sdk路径设置有误。确保相关工具都要放到$HOME/Android/Sdk目录下。

其他操作

删除模拟器

avdmanager delete avd -n emulator1

删除模拟器emulator1

常见问题

Warning: Could not create settings

执行sdkmanager命令提示如上错误,是由于sdkmanager命令的父目录名称结构不正确
正确的目录结构:cmdline-tools/tools/bin/sdkmanager
最后的sdkmanager是可执行程序,可以参考链接
还有另外一个讨论

相关链接

vscode安装安卓模拟器
命令行安装模拟器
sdkmanager
avdmanager
Android SDK Tools