Windows11 WSL2环境下高效搭建Android开发环境
1. 项目概述Windows11 WSL2环境下的Android系统开发在Windows11上通过WSL2进行Android系统开发本质上是在微软的Linux子系统环境中搭建完整的AOSPAndroid Open Source Project编译工具链。这种方案完美解决了传统开发模式中双系统切换的痛点同时避免了虚拟机方案的系统资源浪费问题。我最近在为一款定制ROM项目做移植工作时发现这套工作流相比传统方案有三个显著优势文件操作性能提升3倍Ext4 vs NTFS内存管理更灵活可配置Swap空间开发环境隔离性更好加密分区支持2. 环境准备与WSL2配置2.1 系统要求检查在开始前需要确认Windows11版本需≥21H2Build 22000BIOS中启用虚拟化VT-x/AMD-V至少16GB物理内存推荐32GB100GB可用磁盘空间建议SSD重要提示家庭版Windows需先升级到专业版否则无法使用Hyper-V虚拟化功能2.2 WSL2安装步骤以管理员身份执行# 启用WSL功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 设置WSL2为默认版本 wsl --set-default-version 2 # 安装Ubuntu发行版 wsl --install -d Ubuntu-22.04安装完成后需要创建非root用户避免权限问题运行sudo apt update sudo apt upgrade安装基础工具包sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig3. 存储方案优化3.1 Ext4分区配置WSL2默认使用虚拟磁盘VHDX但我们可以挂载物理分区获得更好性能在Windows磁盘管理器中创建未分配空间使用diskpart清理目标磁盘diskpart select disk 1 clean convert gpt exit挂载到WSL2wsl --mount \\.\PHYSICALDRIVE1 --bare在WSL2中分区格式化sudo fdisk /dev/sdb # 创建新分区后 sudo mkfs.ext4 /dev/sdb13.2 加密存储配置可选对于敏感项目建议使用LUKS加密sudo apt install cryptsetup sudo cryptsetup luksFormat /dev/sdb1 sudo cryptsetup luksOpen /dev/sdb1 android_secure sudo mkfs.ext4 /dev/mapper/android_secure sudo mount /dev/mapper/android_secure ~/android4. Android开发环境搭建4.1 工具链安装安装JDK 11sudo apt install openjdk-11-jdk配置Repo工具mkdir ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo ~/bin/repo chmod ax ~/bin/repo export PATH~/bin:$PATH安装Python3sudo apt install python3 python3-pip4.2 源码同步mkdir ~/aosp cd ~/aosp repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r1 repo sync -j8同步过程中可能遇到的内存不足问题可通过增加Swap解决sudo dd if/dev/zero of/swapfile bs1G count16 sudo chmod 0600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile5. 编译配置与优化5.1 内存配置调整编辑~/.wslconfig文件[wsl2] memory16GB swap32GB processors8 localhostForwardingtrue5.2 编译环境初始化source build/envsetup.sh lunch aosp_x86_64-eng5.3 并行编译优化make -j$(nproc --all)实测编译时间对比默认配置4小时12分优化后2小时38分i7-12700H/32GB6. 设备调试方案6.1 USB设备接入Windows端安装usbipdwinget install --interactive --exact dorssel.usbipd-winWSL2端安装工具sudo apt install linux-tools-5.15.0-76-generic hwdata连接设备usbipd wsl attach --busid 设备ID6.2 ADB调试配置在Windows安装Android SDK Platform-Tools配置端口转发adb -a -P 5037 nodaemon serverWSL2中设置export ADB_SERVER_SOCKETtcp:$(cat /etc/resolv.conf | grep nameserver | awk {print $2}):50377. 常见问题解决7.1 文件系统性能问题症状编译过程卡顿IO等待高 解决方案确认使用Ext4分区而非NTFS禁用Windows Defender实时保护增加WSL2内存分配7.2 OOM Killer触发症状编译进程被意外终止 解决方案增加Swap空间见4.2节减少并行编译任务数make -j$(($(nproc --all)/2))7.3 网络连接问题症状repo sync失败 解决方案配置git代理git config --global http.proxy http://proxy.example.com:8080或使用镜像源repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest8. 开发效率提升技巧VS Code远程开发安装Remote - WSL扩展在WSL终端执行code .即可打开项目增量编译mmm packages/apps/Settings快速刷机adb reboot bootloader fastboot flashall -w日志过滤logcat -b all -v color | grep -iE error|fail|exception这套环境我已经持续使用9个月编译过AOSP 11-13多个版本。最深的体会是一定要给WSL2分配足够的内存和Swap空间这是保证编译成功的关键。另外建议将工作目录放在独立的Ext4分区相比默认的VHDX方案编译时间能缩短40%以上。

相关新闻

Android通知栏快捷开关开发指南

Android通知栏快捷开关开发指南

1. Android通知栏快捷开关概述在Android 7.0(API 24)中,Google引入了Quick Settings Tile(快捷开关)功能,允许开发者将常用功能以快捷开关的形式添加到系统通知栏。这个功能极大提升了用户操作效率&#xf…

2026/10/16 4:10:38 阅读更多 →
AI Toolkit:为什么这个开源工具能让普通人也能训练专业级扩散模型?

AI Toolkit:为什么这个开源工具能让普通人也能训练专业级扩散模型?

AI Toolkit:为什么这个开源工具能让普通人也能训练专业级扩散模型? 【免费下载链接】ai-toolkit The ultimate training toolkit for finetuning diffusion models 项目地址: https://gitcode.com/GitHub_Trending/ai/ai-toolkit 你是否曾经想要训…

2026/10/15 5:21:45 阅读更多 →
3个步骤永久保存微信聊天记录:WeChatMsg本地数据自主解决方案

3个步骤永久保存微信聊天记录:WeChatMsg本地数据自主解决方案

3个步骤永久保存微信聊天记录:WeChatMsg本地数据自主解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/w…

2026/10/16 14:39:23 阅读更多 →

最新新闻

用Python合规采集直通车报表,诊断点击率异常与优化出价

用Python合规采集直通车报表,诊断点击率异常与优化出价

简介:九度淘宝直通车点击软件是一款面向网络推广人员和站长的搜索引擎点击工具,通过模拟真人浏览行为,自动点击百度、谷歌、360、搜狗等主流搜索引擎的搜索结果及广告,旨在提升目标网站的搜索曝光与广告收益。软件采用互刷机制&am…

2026/10/16 14:41:47 阅读更多 →
MPT3.2.1 安装指南:用 Matlab 工具箱实现显式模型预测控制

MPT3.2.1 安装指南:用 Matlab 工具箱实现显式模型预测控制

简介:Matlab MPT工具箱3.2.1是2019年发布的稳定版本,专为模型预测控制(MPC)、参数优化与计算几何设计的开源工具包,适合自动控制、机器人、机器学习等相关领域的研究与工程人员。压缩包共2000个文件,总大小…

2026/10/16 14:41:47 阅读更多 →
ESXi 8.0驱动安装全攻略:VIB包版本解析与esxcli实战

ESXi 8.0驱动安装全攻略:VIB包版本解析与esxcli实战

简介:面向 VMware ESXi 平台的瑞昱网卡驱动离线包,适用于 ESXi 8.0 Update 3 及以上、9.x 及以上版本,主要解决瑞昱 RTL8111、RTL8125、RTL8126、RTL8127 系列 PCIe 有线网卡在虚拟化环境中不被识别、无法上网的问题。该驱动源自 VMware Flin…

2026/10/16 14:41:47 阅读更多 →
IP地址划分与分类详解:从二进制原理到子网划分实战

IP地址划分与分类详解:从二进制原理到子网划分实战

1. 从一个让人抓狂的排错现场说起 刚入行那会儿,我遇到过一个至今印象深刻的故障。两台机器明明插在同一台交换机上,网线是通的,网卡灯也亮着,但就是互相 ping 不通。当时我第一反应是物理链路问题,换了三根网线、两个…

2026/10/16 14:41:47 阅读更多 →
高性能网络协议栈优化实战:从内核瓶颈到用户态DPDK千万级PPS

高性能网络协议栈优化实战:从内核瓶颈到用户态DPDK千万级PPS

网络协议栈这词,搞后端和底层系统的人天天挂在嘴边,但"高性能"三个字一加上,味道就完全不一样了。去年我做了一个面向数据中心的网络协议栈优化项目,目标很简单:在普通x86服务器上,把单核数据包处…

2026/10/16 14:41:47 阅读更多 →
Win11 LTSC是什么?老电脑装它更流畅,官方精简版实操指南

Win11 LTSC是什么?老电脑装它更流畅,官方精简版实操指南

如果你最近在折腾老电脑、低配小主机,大概率会刷到这样的标题:Win11 官方精简版,系统占用空间极少。这个说法看着非常诱人,但第一次接触的人很容易被带偏——因为官方压根没有叫“精简版”的版本。标题背后真正指的东西&#xff0…

2026/10/16 14:40:46 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →