再学安卓 - 系统环境安装

前言

上半年终于鼓起勇气的我辞去了国内某手机厂商的职位,一方面想休整一下,另一方面也想好好梳理一下自己在安卓这方面的知识,沉淀积累。由于个人知识面有限,若有错误,欢迎大家积极指出,共同讨论,一起进步。

本系列希望从应用开发者的角度出发,将系统层面各个系统服务的脉络及运行原理呈现出来。

适用于个人的开发环境配置

离开公司之后,什么事情都得自己动手了,想想以前在公司有一帮专门搞工程编译的同事,那种衣来伸手饭来张口的日子还真是舒坦,身在福中不知福。😂

开篇就来配置我们的开发环境吧,其中包括3部分:系统环境安装AOSP代码下载及编译、IDE代码导入。

软硬件要求

  • 操作系统:Win11专业版 + WSL2(Windows 11 专业版 24H2 26100.2033)
  • CPU:尽可能高配置,缩短编译时间(13th Gen Intel(R) Core(TM) i9-13900H 2.60 GHz 14核)
  • 内存:至少32G,最好64G(Samsung 32G DDR5 5600MHz + Samsung 8G DDR5 5200MHz)
  • 硬盘:1T及以上,Android13的源代码+编译产物大概要占400G左右(Samsung MZVL21T0HCLR-00BL2 1T)

注:括号中为我的机器配置,供参考。我的机器原本有两条8G内存,两个插槽,为了编译,增加了一条32G,8G就留了一条没有换下来。

安装操作系统

推荐安装Win11 专业版,家庭版不能安装WSL,请勿浪费时间。Win11镜像推荐到官网下载,纯净安全,无负担。 推荐使用Rufus系统安装启动盘制作工具,完全免费,傻瓜式安装Win11。

注:如果可能的话,推荐重新分区,为WSL单独建立一个500G左右的分区,方便后续管理。

安装WSL2

  1. 在BIOS中开启CPU的虚拟化支持(Virtualization Technology) ,简称VT选项。一般都是默认开启的,只要你的机器能启动Android Studio中的模拟器就说明VT选项已经打开了。

Intel平台示例 AMD平台示例

  1. Windows中的配置:控制面板->程序->启用或关闭Windows功能,勾选Hyper-V适用于 Linux 的 Windows子系统虚拟机平台重启系统
  1. 安装WSL2。当前是2024年11月,默认安装已经是WSL2。据广大网友提醒,WSL1不支持编译AOSP,所以切勿浪费时间。
sh 复制代码
# 查看WSL支持的Linux发行版本
wsl -l -o
# 安装指定分发,从上面列表中选一个最新的Ubuntu(AOSP官方指定的编译系统)
wsl --install -d Ubuntu-24.04
  1. 待安装完成后,查看WSL版本。
sh 复制代码
# 查看当前系统中存在的所有Linux实例
# Name: 实例名
# State: 当前状态
# Version: WSL版本
wsl -l -v
# wsl -v 显示更详细的版本信息。其他命令解释请查询 wsl --help
  1. 迁移WSL。我们需要在WSL中存放编译AOSP代码,需要巨大的磁盘空间,不幸的是,WSL默认安装在系统盘中,地主家的系统盘也没这么富裕啊,所以需要安装以下步骤迁移到一个500G或更大的分区中。
sh 复制代码
# 1.查看Linux实例
wsl -l -v

# 2.关闭Linux实例
wsl --terminate <实例名称>   # 关闭指定实例
wsl --shutdown              # 关闭所有实例

# 3.导出Linux实例
wsl --export <实例名称> <导出地址>
# 例如:wsl --export Ubuntu-24.04 E:\ubuntu2404.tar

# 4.卸载系统盘实例
wsl --unregister <实例名称>

# 5.导入实例到其他盘
wsl --import <新的实例名称> <新的实例存放地址> <导入实例文件地址>
# 例如:wsl --import ubuntu2404 E:\ubuntu2404 E:\ubuntu2404.tar

# 6.启动并进入Linux系统
wsl -d <新的实例名称> -u <Linux用户名>
# 例如:wsl -d ubuntu2404 -u root

另外,可以通过命令行提示符cmd顶部提供的快捷入口进入Linux。

  1. 在Linux系统中可能需要科学上网,因此代理配置必不可少。微软官网提供了详细的WSL配置参考。这里列出我选用的配置项。

注:使配置项生效需要重启WSL(wsl --shutdown)。

sh 复制代码
# 文件位置:C:\Users\<用户名>\.wslconfig
[wsl2]

# 启用镜像网络特性支持
networkingMode=mirrored

# WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
dnsTunneling=true

# WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 WPF 能过滤子系统流量(请根据实际需要启用)
firewall=true

# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
autoProxy=true

# 配置WSL能使用的核心数
processors=8
# 配置内存大小,一般为物理内存的50%,AOSP编译要求至少16GB,因此您的机器至少需要32G物理内存
memory=20GB
# 交换分区大小,一般为内存大小的2倍
swap=40GB
# 是否支持嵌套虚拟化,我们后续会在WSL中运行Android模拟器,因此需要打开此选项
nestedVirtualization=true

[experimental]

# 启用空闲内存自动缓慢回收
autoMemoryReclaim=gradual
  1. 在Ubuntu下安装下载编译AOSP源码所需的软件包,此命令来自AOSP官方文档
sh 复制代码
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

附录

Microsoft官网WSL安装使用文档

Microsoft官网WSL配置文件说明

AOSP官方文档

相关推荐
p@nd@19 小时前
Oracle筑基篇-调度算法-LRU的引入
数据库·oracle·操作系统·lru
肖老师+1 天前
“从零到一:揭秘操作系统的奇妙世界”【操作系统中断和异常】
操作系统
GoGeekBaird3 天前
69天探索操作系统-第20天:页替换算法 - 深度剖析
后端·操作系统
IT 青年4 天前
操作系统(12)内存分配
操作系统
IT 青年5 天前
操作系统(15)I/O硬件
操作系统
killsime6 天前
操作系统笔记
笔记·操作系统
IT 青年7 天前
操作系统(11)程序处理
操作系统
千千寰宇7 天前
[操作系统] 计算机资源虚拟化技术
操作系统·docker/k8s/虚拟化/容器化
終不似少年遊*7 天前
华为云(openstack)常用命令行
linux·服务器·网络·华为云·云计算·操作系统·openstack
helloWorldZMY8 天前
操作系统内存管理
操作系统·内存管理·计算机基础