Android的编译环境作为深入学习Android的基础,不可或缺,能够完整下载Android源代码并编译成功,对深入学习Android是非常关键和重要的一步。Android环境搭建比较繁琐和枯燥,大家需要有足够的耐心,去一步一步的解决问题,否则就很容易会编译失败或者没有办法在Google手机上调试通过。 根据AOSP官网中关于“构建编译环境”中描述,我们可以了解到目前只能使用Linux或者macOS进行源码级的开发。 路径:https://source.android.google.cn/setup/build/initializing 构建编译环境 本部分介绍了如何设置本地工作环境来编译 Android 源代码文件。您必须使用 Linux 或 macOS;目前不支持在 Windows 环境下编译。 如果您有Linux或者Mac操作系统的开发设备,那么部分就可以直接跳过。 目前市面上有两款虚拟机软件,大家自行选择其中一款即可。 在VirtualBox的下载页中下载最新的安装包和扩展包,下载完成后将得到以下两个文件: 双击可执行文件 “VirtualBox-6.1.8-137981-Win.exe”, 按照以下的步骤,完成扩展工具包的添加。 那我们应该下载什么版本的Ubuntu操作系统呢,根据AOSP官网的提示,64位的Ubuntu LTS (14.04) 风险小一些。 路径:https://source.android.google.cn/setup/build/initializing 设置 Linux 编译环境 以下说明适用于所有分支(包括 master)。 笔者安装了64位的Ubuntu LTS (14.04)版本,遗憾的是出现了崩溃,尝试几次都没有没有安装成功。 接下来我们需要下载最新版本的Ubuntu桌面版,建议使用加载工具,直接网页下载速度非常的慢。 下载完成以后,您将获得以下可执行文件: 完成虚拟机的创建,选中虚拟机后,单击“设置”按钮,在弹出的虚拟机设置对话框中可以查看并修改虚拟机的各个参数。 屏幕分辨率较低,需要安装增强功能。 从Android 5.0 开始,使用OpenJDK编译源码。 根据提示,无需另行安装OpenJDK,那么跳过此步骤。 路径:https://source.android.google.cn/setup/build/requirements AOSP 中的 Android master 分支带有预编译版本的 OpenJDK;因此无需另行安装。 旧版 Android 需要单独安装 JDK。在 Ubuntu 上,请使用 OpenJDK。 (1)先执行以下命令: (2)更改镜像源 (3)修改完软件源后,更新软件列表和软件 路径:https://source.android.google.cn/setup/build/initializing 因为网络异常或者其他异常,这次工具包一次不能下载或者更新。 由于repo脚本是Android项目编写的Python脚本,用来统一管理Android项目的代码仓库, Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。 创建一个空目录来存放您的工作文件。 配置git账户信息,用于提交代码到Gerrit上,进行代码审查。 运行 repo init 以获取最新版本的 Repo 及其最新的问题修复。您必须为清单指定一个网址,该清单用于指定 Android 源代码中包含的各个代码库将位于工作目录中的什么位置。 路径:https://source.android.google.cn/setup/start/build-numbers#source-code-tags-and-builds 要检出 master 之外的其他分支,请使用 -b 指定此分支。 同步源代码: (1)虚拟机存储不足 介质(M)–> 属性(P) 源代码下载完成以后,就可以开始编译源代码。 make:不带任何参数,用于编译整个系统,编译时间比较长,除非是进行初次编译否则不建议此种做法。 模块编译分三种:make、mmm、mm 以上三个命令都可以用-B选项来重新编译所有目标文件。 虽然从编译速度上mmm,mm都差不多,因为mmm不涉及目录的切换,
1、前言
2、构建编译环境
2.1、虚拟机选择
如果您常用的开发设备是Windows操作系统的话,那么可以考虑用虚拟机去学习或者研究Android源代码。2.1.1、下载VirtualBox及其扩展包
2.1.2、安装VirtualBox
这个部分只需要您做出肯定的回答就可以完成虚拟机的安装。2.1.3、添加扩展包
2.2、安装Ubuntu
我们会定期在 Ubuntu LTS (14.04) 和 Debian 测试版本中对 Android
编译系统进行内部测试。其他大多数分发版本都应该具有所需的编译工具。
如果是 Gingerbread (2.3.x) 及更高版本(包括 master 分支),需要使用 64 位环境。如果是较低的版本,则可以在 32 位系统中编译
所以下面以安装最新的Ubuntu桌面版Ubuntu LTS (20.04)进行说明。2.2.1、下载最新的Ubuntu桌面版(Ubuntu 20.04 LTS)
路径:https://ubuntu.com/download/desktop
2.2.2、Ubuntu安装过程
(1)创建虚拟机:
(2)安装Ubuntu 系统软件
(3)安装增强功能
2.3、安装OpenJDK
Android 版本
JDK
备注
Android 5.x ~ Android 6.x
OPenJDK 7
Android 7.x ~ Android 10.0
OPenJDK 8
2.4、更改镜像源
lsb_release -c sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup sudo chmod 777 /etc/apt/sources.list sudo gedit /etc/apt/sources.list #vim /etc/apt/sources.list
国内有很多镜像源,比如有清华源和阿里云源等,选择其中一个就可以了。
笔者选择了阿里云源。deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
sudo apt update sudo apt upgrade # 更新有失败项的话,执行下面语句以后重复上面两句命令 # sudo apt-get update # sudo apt update # sudo apt upgrade
2.5、Ubuntu系统工具包更新升级
标题:安装所需的软件包 (Ubuntu 14.04)$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
可以重复执行几次,直到控制台提示均已经安装或者更新完毕。3、Android 源代码下载及编译过程
3.1 、源代码下载
3.1.1 、安装python
所以首先要确保安装了Python 2.7。$ python --- Command 'python' not found, did you mean: command 'python3' from deb python3 command 'python' from deb python-is-python3 --- $ sudo apt-get install python $ python --- Python 2.7.18rc1 (default, Apr 7 2020, 12:05:55) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. ---
3.1.2 、安装 Repo
mkdir ~/bin vim ~/.bashrc # 在文件的最后添加下面一行代码,保存退出 PATH=~/bin:$PATH # 生效修改 source ~/.bashrc
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo # curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo # export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' chmod a+x ~/bin/repo
3.1.3、工作目录设置
为其提供一个您喜欢的任意名称: mkdir WORKING_DIRECTORY # mkdir -p aosp/Android10 cd WORKING_DIRECTORY # cd aosp/Android10
3.1.4、配置git个人信息
git config --global user.name "Your Name" git config --global user.email "you@example.com" // 查看配置的git信息 cat ~/.gitconfig --- [user] name = Your Name email = you@example.com ---
3.1.5、获取源码分支
repo init -u https://android.googlesource.com/platform/manifest # repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
Build
标记
版本
支持的设备
安全补丁程序级别
QQ2A.200501.001.B3
android-10.0.0_r36
Android10
Pixel 2、Pixel 2 XL
2020-05-05
6440158
android-9.0.0_r56
Pie
2018-08-05
repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r36 # repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r36
repo sync -jx(x一般是CPU核心的2倍为佳) # 支持续传 repo sync
3.1.6、常见问题
关闭当前虚拟机,回到VirtualBox管理页面。这种调整方案将会导致一直黑屏启动不了。
这种设置只有在虚拟机创建完成后,操作系统还没有安装的情况下调整的。
只有在设置动态存储空间的时候设置一个足够的虚拟空间是必要的,要千万注意。
–> 虚拟机文件选择 –> 属性(P)
–> 拖动滑块,调整大小3.2 、编译源代码
3.2.1、整体编译
$ cd ~/aosp/Android10 $ source build/envsetup.sh(或者 . build/envsetup.sh) $ lunch ... Which would you like? (输入编译的产品名字或者输入前面的数字) $ make -jx(x为CPU核心的2倍为佳)
3.2.2、模块编译
导入编译环境: cd ~/aosp/Android10 source build/envsetup.sh
make SystemUI
mmm frameworksbasepackagesSystemUI
cd frameworksbasepackagesSystemUI mm
所以建议使用 “make 模块名” 的方式分模块编译。4、参考文献
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算