再学安卓 - 系统环境安装

前言

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

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

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

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

开篇就来配置我们的开发环境吧,其中包括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官方文档

相关推荐
别说我什么都不会10 小时前
鸿蒙轻内核M核源码分析系列十五 CPU使用率CPUP
操作系统·harmonyos
袁庭新20 小时前
CentOS7通过yum无法安装软件问题解决方案
centos·操作系统
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列十二 事件Event
操作系统·harmonyos
qq_437896432 天前
动态内存分配算法对比:最先适应、最优适应、最坏适应与邻近适应
操作系统
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列十一 (2)信号量Semaphore
操作系统·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列十 软件定时器Swtmr
操作系统·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列九 互斥锁Mutex
操作系统·harmonyos
别说我什么都不会4 天前
鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
操作系统·harmonyos
别说我什么都不会4 天前
鸿蒙轻内核M核源码分析系列六 任务及任务调度(3)任务调度模块
操作系统·harmonyos
徐徐同学5 天前
【操作系统】操作系统概述
操作系统·计算机系统