2、开发环境总览:Windows与Ubuntu双系统方案、虚拟机方案、Docker方案对比,我推荐哪种?
说实话,很多刚接触鸿蒙设备开发的朋友,第一个卡住的地方不是代码,而是环境搭建。
Windows?Ubuntu?双系统?虚拟机?Docker?
嗯,别急。这一章我带你把这些方案捋清楚。哪种适合你,哪种坑多,我直接告诉你答案。
核心结论先放这:我个人最推荐 Windows + VMware虚拟机 + Ubuntu 20.04 这套组合。原因?稳定、省心、切换方便。后面我会细说。
2.1 三种主流方案速览
先看一张图,帮你快速建立整体认知。
2.2 方案一:Windows与Ubuntu双系统
这个方案我早期用过一年多。说白了,就是一台电脑装两个系统,开机时选哪个进哪个。
优点很明显:
- 性能完全释放,没有中间层损耗
- 硬件兼容性最好,USB、串口直连无压力
- 适合长期在Linux下工作的开发者
但坑也不少:
- 切换系统必须重启,你想想看,正写着文档突然要编译,得重启进Ubuntu,编译完再重启回Windows...一天下来光重启了
- 磁盘分区麻烦,万一分区搞错了,数据可能全丢
- 两个系统之间文件共享不方便,虽然可以挂载NTFS分区,但偶尔会出乱码问题
⚠️ 注意:我曾经遇到过Ubuntu更新内核后,Windows引导项丢失的情况。折腾了大半天才修复。如果你不是Linux重度用户,双系统其实有点折腾。
2.3 方案二:虚拟机方案(我推荐的)
这个方案我现在一直在用。Windows做主力系统,Ubuntu跑在VMware里。
为什么推荐它?
- 切换零成本:Windows里开个虚拟机窗口,就像开个软件一样。写代码、查资料、编译,都在一个屏幕上搞定
- 快照功能太香了:环境搞坏了?恢复快照,三秒回到干净状态。我在项目里至少靠这个功能救了五六次
- 资源按需分配:给虚拟机分配4核8G内存,平时不编译时让它休眠,完全不占资源
- 文件共享方便:设置共享文件夹,Windows和Ubuntu之间直接拖文件
💡 小技巧:虚拟机磁盘用VMDK格式,选「预分配空间」模式,虽然第一次创建慢一点,但后续读写性能比动态分配好很多。我实测编译速度能快8%左右。
那缺点呢?
- 性能损耗大概10-15%,但说实话,对于鸿蒙设备开发这种编译任务,感知不强
- USB设备透传需要装VMware Tools,偶尔会掉驱动。嗯,这里要注意,买开发板时尽量选USB转串口芯片是CH340或CP2102的,兼容性最好
2.4 方案三:Docker方案
Docker方案,说白了就是把编译环境打包成一个容器镜像。你拉下来就能用。
这个方案我试过,但没作为主力。为什么?
先说优点:
- 环境完全隔离,不会污染宿主机
- 团队协作方便,一个Dockerfile发过去,大家环境一模一样
- 资源占用比虚拟机小
但实际用起来问题不少:
- 鸿蒙的编译工具链涉及很多图形化依赖,Docker里跑图形界面要配X11转发,麻烦
- USB设备映射到容器里,需要额外配置--privileged参数,而且不是所有设备都能识别
- 调试时想用vscode远程连容器,还得装插件配SSH,学习成本高
我的建议:Docker方案适合团队标准化部署,或者CI/CD流水线。个人开发用虚拟机更省心。如果你非要折腾Docker,记得把--network=host加上,不然网络配置能让你怀疑人生。
2.5 三种方案对比表
| 对比维度 | 双系统 | 虚拟机(推荐) | Docker |
|---|---|---|---|
| 性能 | ★★★★★ | ★★★★☆ | ★★★★☆ |
| 切换便捷性 | ★☆☆☆☆ | ★★★★★ | ★★★★☆ |
| 环境隔离 | ★★★★★ | ★★★★☆ | ★★★★★ |
| USB/串口支持 | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 学习成本 | ★★★☆☆ | ★★★★☆ | ★★☆☆☆ |
| 磁盘占用 | 大(两个系统) | 中(一个虚拟机文件) | 小(镜像分层) |
| 适合场景 | Linux重度用户 | 大多数开发者 | 团队/CI环境 |
2.6 我的最终推荐
看到这里,你应该明白了。
我个人强烈推荐:Windows 10/11 + VMware Workstation Pro + Ubuntu 20.04 LTS
为什么是Ubuntu 20.04而不是22.04?
嗯,这里有个坑。鸿蒙的编译工具链对Python 3.8支持最好,而Ubuntu 20.04默认就是Python 3.8。22.04默认是Python 3.10,有些脚本要手动改,麻烦。我在项目里吃过这个亏,后来老老实实换回20.04。
💡 配置建议:
- 虚拟机内存:至少8GB,推荐16GB
- CPU核心:至少4核
- 磁盘空间:至少80GB(鸿蒙源码+编译产物很占空间)
- 网络模式:NAT模式最省心,桥接模式需要路由器支持
下一章,我会手把手带你安装VMware和Ubuntu。每一步我都会截图说明,包括那些容易踩坑的地方。
准备好了吗?我们开始动手。