提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、系统环境
  • 二、Linux换源
    • 1.备份并替换默认源文件
  • 三、基本环境安装
    • 1、repo下载安装
    • 2、git安装
    • 3、python3安装
  • 四、使用repo下载Android源码
  • 五、源码编译
    • 1、编译环境准备
    • 2、python2安装
    • 3、开始编译
  • 总结

前言

新公司入职,领了新的Linux电脑,身为一名光荣的Android开发者,电脑上Android源码肯定得有一套的,所以借此契机,整理一套Android源码下载与编译基本流程。当然Google官方已经整理得很详细了,详参Google开发者流程。废话不多说,直接开干


一、系统环境

系统:Ubuntu18.04 LTS

二、Linux换源

这一步主要是将Ubuntu系统默认的源换成国内的镜像源,推荐清华源,他们官方文档写得很详细

1.备份并替换默认源文件

一名合格的程序员都会为自己留一条后路,记得备份原本的默认源文件:Ubuntu 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用清华源的软件源镜像。

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

文件内容替换完成后Update一下

sudo apt-get update

三、基本环境安装

1、repo下载安装

mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

这里使用的是清华源的git-repo文件地址,如果提示curl命令找不到,请按Linux提示安装curl,也可以直接暴力点击进入https://mirrors.tuna.tsinghua.edu.cn/git/git-repo进行下载

repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新(推荐),可以将如下内容复制到你的~/.bashrc

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

2、git安装

sudo apt-get install git

配置自己Git用户名和邮箱

git config --global user.name "your_name"
git config --global user.email "your_email"

3、python3安装

注:源码下载需要python3版本支持

sudo apt-get install python3

四、使用repo下载Android源码

创建源码本地保存路径

mkdir AOSP
cd AOSP

初始化代码仓库

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-security-9.0.0_r76

-b后面跟的是Android版本,详见Android版本列表选择自己想要下载的Android版本

同步源码树(以后只需执行这条命令来同步)

repo sync -c -d --no-tag

接下来等待源码下载完成就可以啦(这个过程很漫长)
注:如果在初始化代码仓库的时候报SSL协议的CA证书问题,就把上面所有https的地址换成http就好,然后把代码仓库里的.repo文件夹删除,再初始化。当然这是最暴力的手段,官方还是推荐使用https协议下载源码的,安全!!!

五、源码编译

1、编译环境准备

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

如果存在部分安装失败,可以尝试将镜像源文件里的注释给解开,update后再试。或者运行sudo apt-get install -f自动卸载未安装的软件。
这是Ubuntu18.04的环境,官方也给出了其他Ubuntu版本的环境安装命令。
Ubuntu14.04:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Ubuntu12.04:

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Ubuntu10.04-11.10:

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

在 Ubuntu 10.10 中,请运行以下命令:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

在 Ubuntu 11.10 中,请运行以下命令:

sudo apt-get install libx11-dev:i386

2、python2安装

注:这里比较坑的是,源码下载要用python3,源码编译要用python2(裂开)

sudo apt-get install python2.7

安装完之后得配置一下python版本的优先级

# 进入ubuntu 软件安装的文件夹
cd /usr/bin/
# 过滤 python,查看python各版本文件名路径
ll | grep python
# 配置优先级,150>100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 150
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 100
# 查看当前默认 python 版本,确认优先级是否配置成功
python --version
# 显示是python2.x就成功了

3、开始编译

进入本地代码路径

cd AOSP
# clean一遍
make clobber
# 开始民工三连
source build/evnsetup.sh
lunch
# 这时候需要选择一个镜像编译版本,根据你的需求和机型来,输入版本前面对应的数字序号
1
# 整编,-j参数根据你的cpu线程数自己决定
make -j8

理想情况下几个小时后就收到编译成功的通知了~

单编的话就进入到子模块目录(带Android.mk文件目录)下mm -j8就好

总结

文章只是整理了部分步骤,还有很多的不足,请谅解

Android 源码编译步骤实录相关推荐

  1. Android 源码编译详解【合集篇】

    Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...

  2. android 编译完后镜像在哪个文件夹,Android源码编译后

    在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data. ...

  3. Android 源码编译及常见错误及解决方法

    Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...

  4. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...

  5. weka源码编译步骤

    weka源码编译步骤 1 安装JDK环境和Java开发环境,我用的是MyEclipse. 2 安装WEKA(安装不带JRE的WEKA即可). 3 重新编译: 3.1 创建工作目录.新建一个WEKA-R ...

  6. android源码编译出错的原因

    (1)gcc的版本过高,由于android源码编译要求为4.3,如果你的gcc版本为4.4,那你的编译可能会失败的!我的系统是ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格, ...

  7. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  8. Android源码编译(基于Ubuntu18.0.4)

    文章目录 一.环境搭建 硬件要求 软件要求 操作系统和 JDK 主要软件包 软件安装 Git安装 repo工具安装 安装 openJDK 8 其他依赖安装 二.源码下载 建立源码文件夹 初始化仓库 源 ...

  9. Android 源码编译技巧--模块清理

    参考之前的 Android 源码编译技巧–模块编译_南国樗里疾的博客-CSDN博客 https://blog.csdn.net/weixin_44021334/article/details/1069 ...

  10. Android源码编译make的错误处理

    https://www.linuxidc.com/Linux/2011-11/47411.htm Android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLAT ...

最新文章

  1. Android学习笔记之AndroidManifest.xml文件解析
  2. 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing
  3. 换晶振导致stm32串口数据飞码的解决办法(补充)
  4. 665. Non-decreasing Array - LeetCode
  5. inode及硬链接和软链接
  6. android UI进阶之布局的优化
  7. centos 图形模式与命令行模式设置
  8. python基础篇——字典
  9. bat脚本 rar压缩文件 rar压缩文件带一层路径 带路径压缩
  10. 软考中级-软件设计师-第1章 软件设计师考试介绍
  11. 腾讯C++程序员面试题
  12. C语言读取文件函数用法,C语言读取文件流的相关函数用法简介
  13. 自协方差函数的Matlab实现
  14. 运放专题:虚短、虚短
  15. vue-element-template模板
  16. ElasticSearch-6.8.11实践笔记
  17. Python 技术篇-pip版本查看和升级
  18. 非标资产与标准资产_资产商店行动新闻– 2011年10月!
  19. exchange 2010 脱机地址簿操作
  20. 基于树莓派的超声波数据采集与存储(一)——树莓派配置

热门文章

  1. Tomcat安装及idea配置教程
  2. 零基础入门渗透测试教程
  3. mib节点 snmp trap_snmp trap编写
  4. 8款值得学习的科研论文作图软件!
  5. 相见恨晚的英语学习方法!百万人读过!
  6. 停车场无人值守管理系统
  7. 战略分析思路——沙盘推演逻辑
  8. 报考南航计算机的专硕还是学硕呢?
  9. 《InfoGAN: Interpretable Representation Learning》翻译
  10. JavaScript中的各种编码