android源代码编译过程详解-金沙1005

android源代码编译过程详解_android编译过程详解android源码编译流程

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


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


系统:ubuntu18.04 lts

这一步主要是将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
android源代码编译过程详解_android编译过程详解

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

文件内容替换完成后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,也可以直接暴力点击进入进行下载

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

创建源码本地保存路径

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版本

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

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就好

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

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/140908.html

(0)

相关推荐

  • android回声消除调研 20220321[通俗易懂]回声产生回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声。在voip(voiceoverinternetprotocol,基于ip的语音传输)实时语音通话中,是近端通话者的声音被自己的麦克风拾取后通过网络传到远端,远端扬声器播放出来的声音被麦克风拾取后通过网络又重新发回近端,再加上网络和数据处理等各种延迟的影响,使得近端通话者能够从扬声器中听到自己的刚才所说的话,就产生了回声。回声分类在通信系统中,回声主要分为两类:电路回声和声学回声(线性回声和非线性回声)。

  • color os one ui_color os 12两年磨砺2020年的时候,miui 12以万象息屏功能以及出色的动画表现位居榜首,而当时的color os7正在奋力将“果风ui”的标签从身上摘

  • android developer tools_android:versioncodeandroid的build.version_codes:https://developer.android.com/reference/android/os/build.version_codes#p

  • android apk 反编译_android应用程序反编译工具这段时间在学android应用开发,在想既然是用java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去激活成功教程人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。本文android反编译教程,测试环境:win7ultimatex64ubun

  • 安卓防止系统杀进程_androidserver有啥功能笔者上篇做了一个定时提醒的小应用,但是最后遗留了一个问题,那就是如果设置提醒的间隔时间过长,那么计时的service便会被android系统kill掉。(主要是由于android自带内存清理)在进行了大量的查阅和测试后,笔者终于解决了该问题:当然,在此也要稍微提一下,笔者只测试了,在以一小时为左右的时间内可以不被杀死,还没有测试2个小时以上的情况,更没有测试以天为单位的时间,具体测试如下:(ite…

  • android toast的几种使用方式[亲测有效]toast是android中常用的组件,下面介绍下toast使用的几种方式和注意事项。toast的使用方式简单来说有下面五种:1、默认的显示//第一个参数:当前的上下文环境。可用getapplicationcontext()或activity的context//第二个参数:要显示的字符串。也可是r.string中字符串id//第三个参数:显示的时间长短。toast默认的有两个length_long(长)和length_short(短),也可以使用毫秒如2000mstoast

  • 安卓开发实战讲解!首发10万字android开发实战文档,完整版开放下载[亲测有效]前言最近在网上看许多面经的文章,有拿到offer的,也有凉凉的,这些文章中都有一个共同的特点,就是单单的只有面试题目。而没有面试过程中需要注意的细节和面试心得。导致有些面试者们在面试来临,就去盲目的去刷这些题目,而没有结合自己做过的那些项目中,遇到的一些技术问题会被面试官问道,回答不上导致面试落选或者薪资上不去。android基础&常用针对android基础&常用知识,我认为对于初级开发者来说,按照优先级最主要的知识点主要包括:四大组件、布局使用、多线程&动画;具体

  • android 设置标题栏背景颜色_窗口标题栏左端图标代表android中沉浸式状态栏的文章已经满大街了,可是在实现某些效果时,还是得各种搜索,测试一通后,最后还常常满足不了要求,即使好不容易在一部手机上满足了需求,放在另外一手机上,发现效果差强人意。今天把自己这几天学到的关于沉浸式状态栏知识进行总结下。问题比如我想实现以下效果:1.同一个activity需要动态变换标题栏和状态栏文字字体色值,该如何实现?2.一个activity包含多个f

    2022年11月26日

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图