升级打怪
本文以 macOS + 命令行工具 为核心,循序渐进地介绍如何从零开始搭建 Android 模拟器环境,并最终创建、启动一个可用于日常开发与测试的 Android Virtual Device(AVD)。
整体流程遵循以下逻辑顺序:
- 认识 Android 命令行工具链;
- 准备运行环境(Java JDK 与 SDK 工具);
- 使用 sdkmanager 管理 SDK 与系统镜像;
- 使用 avdmanager 创建模拟器;
- 使用 emulator 启动并优化模拟器;
- 使用 adb 进行安装与调试。
一、核心命令行工具概览
在命令行环境下配置与管理 Android 模拟器,主要依赖以下工具:
-
sdkmanager
用于查看、安装、更新和卸载 Android SDK 相关组件; -
avdmanager
用于从命令行创建、删除和管理 Android 虚拟设备(AVD); -
emulator
用于启动与运行 Android 模拟器实例; -
adb(Android Debug Bridge)
用于与模拟器或真机通信,例如安装 APK、查看日志、调试应用。
二、先决条件
在开始之前,请确保系统满足以下条件:
- 已安装 Java JDK
- 已安装 Android SDK 命令行工具
下面将按顺序完成这些准备工作。
三、Java JDK 安装与版本管理
Android 构建工具在不同版本中,对 Java 的依赖并不完全一致。因此,同时安装多个 JDK 并进行版本管理 是一种更稳妥的做法。
3.1 使用 Homebrew 安装多个 JDK
# 安装常用的 LTS 版本 JDK
brew install --cask temurin8 temurin11 temurin17 temurin21
说明:
- Java 8 / 11:常见于旧项目或部分构建工具
- Java 17:当前 Android 官方推荐
- Java 21:面向未来版本预留
3.2 使用 jEnv 管理 Java 版本
# 安装 jEnv(Java 版本管理工具)
brew install jenv
# 将 jEnv 注入到 Shell 环境(zsh)
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
# 立即生效
source ~/.zshrc
3.3 将已安装的 JDK 添加到 jEnv
# 添加本机已安装的 JDK 到 jEnv
jenv add $(/usr/libexec/java_home -v 1.8) # Java 8
jenv add $(/usr/libexec/java_home -v 11) # Java 11
jenv add $(/usr/libexec/java_home -v 17) # Java 17
# 查看与切换版本
jenv versions # 查看所有已管理的 Java 版本
jenv global 17 # 设置全局默认版本
jenv local 11 # 为当前目录设置版本
jenv shell 1.8 # 仅对当前 Shell 会话生效
建议:
日常开发可使用 Java 17,仅在构建旧项目时临时切换。
四、安装 Android SDK 命令行工具
Android 官方将命令行工具独立发布,适合不依赖 Android Studio 的开发者。
# 安装 Android Command Line Tools
brew install --cask android-commandlinetools
安装完成后,即可使用 sdkmanager / avdmanager / emulator 等命令。
五、使用 sdkmanager 管理 SDK 与系统镜像
5.1 查看可用组件
# 列出所有可用与已安装的 SDK 组件
sdkmanager --list
5.2 安装系统镜像与基础工具
# 安装 Android 13(API 33)的 Google APIs x86_64 系统镜像
sdkmanager "system-images;android-33;google_apis;x86_64"
# 安装基础命令行工具
sdkmanager "platform-tools" "emulator"
安装内容包括:
- platform-tools(包含 adb)
- emulator(模拟器运行核心)
六、使用 avdmanager 创建与管理模拟器
6.1 常用管理命令
avdmanager list avd # 查看已创建的 AVD
avdmanager list device # 查看所有可用设备模板
avdmanager delete avd -n MyAVD # 删除指定 AVD
avdmanager move avd -n MyAVD -p /new/path
# 查找特定设备(例如 Pixel 9)
avdmanager list device | grep -A 10 "pixel_9"
6.2 创建模拟器的基本格式
avdmanager create avd \
-n <AVD_NAME> \
-k "<SYSTEM_IMAGE>" \
-d <DEVICE_ID>
参数说明:
- -n / --name:模拟器名称
- -k / --package:系统镜像路径
- -d / --device:设备 ID(如 pixel_4)
- -c / --sdcard:SD 卡大小
- -f / --force:覆盖已存在的 AVD
6.3 示例:创建 Pixel 4(Android 13)
avdmanager create avd \
-n Pixel_4_API_33 \
-k "system-images;android-33;google_apis;x86_64" \
-d pixel_4 \
-c 1024M
七、使用 emulator 启动与优化模拟器
7.1 基础命令
emulator -version # 查看 emulator 版本
emulator -list-avds # 列出所有可用 AVD
emulator -avd Pixel_4_API_33
7.2 常用启动参数(性能与体验)
- -scale 0.8:缩放窗口大小
- -noaudio:关闭音频(节省资源)
- -dpi-device 320:模拟真实屏幕密度
- -no-skin:无皮肤模式,提升启动速度
- -memory 2048:限制模拟器内存
- -netdelay / -netspeed:模拟弱网环境
7.3 推荐组合(性能与功能平衡)
emulator -avd Pixel_5 \
-memory 2048 \
-scale 0.8 \
-noaudio \
-dpi-device 320 \
-netdelay 100 \
-shell
提示:
在资源有限的设备上,关闭音频与皮肤能明显提升启动速度。
八、使用 adb 安装与调试 APK
# 查看已连接设备(模拟器 / 真机)
adb devices
# 向指定模拟器安装 APK
adb -s emulator-5554 install app.apk
常用参数:
- -r:覆盖安装并保留数据
- -t:允许测试 APK
- -d:允许降级安装
九、完整示例流程
9.1 默认 Pixel 模拟器(系统原生 UI)
# 1. 安装系统镜像
sdkmanager "system-images;android-33;google_apis;x86_64"
# 2. 创建 AVD
avdmanager create avd \
-n MyAVD \
-k "system-images;android-33;google_apis;x86_64" \
-d pixel_4 \
-c 1024M
# 3. 启动模拟器
emulator -avd MyAVD
9.2 Pixel 9 Pro(Android 16 · Baklava)
avdmanager create avd \
-n Pixel_9_Pro_API36 \
--skin pixel_9_pro \
-k "system-images;android-36.0-Baklava;google_apis_ps16k;arm64-v8a" \
-d pixel_9 \
-c 2048M \
-f
注意:
Pixel 9 Pro 的 skin 文件需要单独下载,或从 Android Studio 的设备目录中拷贝。
十、参考资料
要想使用 Andriod 模拟器,通常先安装 Android Studio。
Andriod 模拟器,即AVD(Android Virtual Device Android虚拟设备)。
模拟器配置
运行 Android Studio,再依次选择 “More Actions > Virtual Device Manager”
然后点击 “+”,再点击 “Create Virtual Device”。
选择自己需要的系统版本。
创建设备后,您将能够在设备管理器面板中看到所有设备的列表。
跨端开发,一直是个热门的话题。
但经历这么多年的发展后,真正持续发热、社区活跃的技术方案,屈指可数。
发展历程
最开始,PhoneGap / Cordova,
然后,React Native / Weex / Flutter
再来,uni-app / Taro
事实上跨端的方案远非如此,还有 Ionic / Expo / Metro 等等。
对于 React Native / Weex 的兴起,前端开发很兴奋...但很快被打脸,对比 native 的性能太差,很多最求性能的公司,都逐渐放弃,又投向 native 的怀抱。
Google 适时的推出 Dart + Flutter,其性能非常接近 native,又让大家看到了曙光。
随着开发深度的推进,Flutter 也暴露出诸多不足:
- 包体积大小
- Dart 生态有限
- 原生集成复杂度
- Web 性能与 SEO
- 桌面端成熟度
- 内存消耗
...
但仍然有公司不断前行,深耕 Flutter 生态建设。
新的转机
技术开发领域,各项一直都是耕耘不辍,Web 领域尤为突出。
由于业务扩张,Web 领域再次迎来了一个变革——小程序,轻应用。
随着小程序的出现,前端开发再次迎来转机,国内催生了 uni-app、Taro 等一众转译框架。
这些转译框架不单可以生成小程序,也可以转化成对比 native 性能的客户端应用。
现在,跨端开发进入到深水区,不仅是UI交互表现,而且追求极至的性能。
对于未来,个人感觉这个方向,转译框架终将替代 native 开发。
Ref
- 字节出手!「Vue Native」真的要来了!就在前几天,字节跳动开源的“大杀器”--Lynx.js 火了。 号称要把 - 掘金
- 2025 年热门 Flutter 包:最佳新插件和库Flutter 的生态系统在 2025 年蓬勃发展,新的和被忽视的软 - 掘金
- uni-app 也能远程调试?使用 PageSpy 打开调试的新大门!文章介绍在 uni-app 集成 PageSpy - 掘金
- 如何使用PageSpy进行H5远程调试PageSpy是一款用来调试 Web / 小程序 / 鸿蒙 App 等平台项目的工 - 掘金
- 前端远程调试工具 PageSpy 原理揭秘货拉拉开源的前端远程调试工具 PageSpy 在 Github 已经获得了 3 - 掘金
- Star 1.3K!推荐一款可以远程调试任意Web项目的开源工具!前言 近日,很多大佬们都在推荐这款远程Web调试工具- - 掘金
- O-Spy