上回书我们说到,Ubuntu系统的安装和配置,既然是Android系统的开发,那我们就要有Android系统,那好,目标很明确,接下来我们就来操作,看看源码是怎么来的

一、Android 源码下载(同步sync)

Android源码的下载,也叫同步,其实吧也不是很复杂,就是下载的东西比较多,所以你要多注意一下

1、安装软件

上文我们说到了git的安装,之前装过就不要装了,但是还是要重点说一下,Android源码是托管在github上,无论是访问国外的还是国内的,源码托管的环境都是git,所以要安装git来管理源码

sudo apt-get install git

以下罗列软件,请挨个的安装完,都是基本需要的,如果遗漏的直接sudo apt-get install 软件名 来安装,部分需要输入y后按回车键进行安装

sudo apt-get install openjdk-8-jdk //jdk 这个不用说了吧
sudo apt-get install python //Repo 是基于 Python 2.x 中的特定功能构建的,与 Python 3 不兼容
sudo apt-get install phablet-tools //git工具包
sudo apt-get install curl //上传和下载数据的工具
sudo apt-get install build-essential //提供编译程序必须软件包的列表信息
sudo apt-get install make //源码编译工具
sudo apt-get install gcc //GNU编译器套件
sudo apt-get install g++
sudo apt-get install libc6-dev //共享库
sudo apt-get install patch //补丁工具
sudo apt-get install texinfo //文档系统
sudo apt-get install libncurses-dev //系统的必备库
sudo apt-get install git-core gnupg //git的工具包,虽然有git了,但是有备无患
sudo apt-get install ncurses-dev //编译内核的时候需要
sudo apt-get install valgrind //内存检查器

2、环境配置

(1)、多的话懒得说,首先创建目录

mkdir ~/bin

(2)、下载repo脚本到本地bin文件夹下

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

(3)、根据实际情况,创建源码存放目录,然后赋予目录的读写权限

 mkdir /home/android_aosp/android_9.0  (根据实际情况来新建目录)chmod 777 /home/android_aosp/android_9.0 cd /home/android_aosp/android_9.0

借用大佬的忠告:在此再强调一下,既然要编译源码,乃至后期的源码编译修改等,都是要在linux下进行的,所以一些基本的常识和命令,还是很希望大家能够去学习或者复习一下

3、同步源码(sync)

以上一系列的操作都是为接下来的源码同步工作做准备,你以为这样就可以了么,那你错了,接下来我继续配置 git的邮箱和用户,如果你没有,那么劳烦你去注册一个,github和码云(Gitee)都可以

git config --global user.name Your Name
git config --global user.email you@example.com

(1)、初始化仓库

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

☆这里重点注意了,如果按照之前的步骤来操作,这个位置一定是请求不到反应的,原因是因为~/bin/repo配置下有一句话需要修改

REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改成
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

(2)、repo指定Android版本

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r46

(3)、同步源码,aosp 9.0的源码大概有30多G,漫长等待源码下载的过程中请备好饭,当然也视网络区别,如若失败请检查网络等原因,[虚拟机如果出现两个小时以上都不动的话,请关机后再操作一遍上面的环境配置和源码同步]

repo sync

二、驱动下载(make)

1、下载手机驱动,查看源代码标记和 build版本,用于查看下载适合的驱动版本。

2、从上图可知要下载PQ3A.190801.002的驱动(这里以piexl一代、android9.0.0_r46为例,请按照实际情况下载),查找驱动并下载。

3、将下载的文件解压放在源码根目录,授权执行sh文件,运行后,会提示你查看证书,按Enter键一行行的查看,出现输入提示时,输入 I ACCEPT,解压到了vendor 目录下

./extract-google_devices-sailfish.sh
./extract-qcom-sailfish.sh

三、源码编译(make)

下载完的源码,编译后可能会变成一两百G,所以要准备好磁盘,接下来我们就开始编译了

1、初始化编译环境

source build/envsetup.sh

2、选择编译的目标包,建议和驱动型号一致

lunch  (lunch选定的版本按照实际情况来,默认选第一个)

3、接下来就是重要的环节,编译

make -j8  (后面数字和cpu有关,适当调整数字)

4、完成编译标识

#### build completed successfully (01:35:28 (hh:mm:ss)) ####

本节内容就讲到这里,整个编译过程中可能会出现各种错误,请根据错误提示进行相关的排除,下节我们讲samba服务器的配置

Android系统开发篇(三) —— Android AOSP 9.0源码的同步与编译相关推荐

  1. 基于Android Studio开发的旅游记录与分享APP源码,Android旅游路线记录与分享APP源码

    GoTravelling 旅游路线记录与分享Android App--同享旅行 下载地址:基于Android Studio开发的旅游记录与分享APP源码 App介绍 目标用户 在寒暑假内希望结伴同游的 ...

  2. Android系统开发篇(四) —— Samba服务器的搭建和相关配置

    书接上文,上文中我们说到了Android源码的下载和编译,那么为了高效率的操作和便于在Windows系统中去读取和修改源码:我们采用了Samba文件服务器,这个在linux行业里可以必备的技能.当然S ...

  3. 23最新Android车载系统开发入门指南,附项目实战源码

    当下,Android 开发体系已然非常成熟,行业的红利也已经过去,相关岗位变少,不少程序员表示想跳槽时的选择性大大减小了.因此,这两年许多Android开发者都开始向系统开发靠近,比如时下非常火热的车 ...

  4. Ubuntu下Android 4.0源码及内核下载编译注意点

    Android源码编译再source.android.com上有完整的教程,在这里只说一下自己在下载和编译时遇到的一些问题 一.Android4.0源码下载注意事项: 1.使用64位的ubuntu比较 ...

  5. android系统开发实验,基于Android智能手机的实验管理系统的设计与实现

    摘要: 移动互联时代已经全面向我们走来,渗透到高校学习,生活的每一个角落.智能手机可以随时随地使用的特性,给人们的生活带来了很大的方便.高校实验室建设一直对培养学生的动手能力,增强科研意识和提高独立分 ...

  6. Android App开发实战项目之购物车(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言~~~ 一.需求描述 电商App的购物车可谓是司空见惯了,可以知道购物车除了底部有一个结算行,其余部分主要是已加入购物车的商品列表,然后每个商品左边是商品小图,右边是 ...

  7. 【Flink源码篇】Flink 1.15.0源码编译

    目录 1. 下载源码并解压 2. Flink项目配置 3. 源码编译 4. 编译问题记录 5. IDEA调试Flink程序 1. 下载源码并解压 从github下载Flink的源码:https://g ...

  8. Android 系统开发系列三

    今天写HAL硬件抽象层 1.添加HAL头文件 进入到 android-4.0.4_r1.2/hardware/libhardware/include/hardware 目录,创建 ttt.h 文件: ...

  9. 基于javaweb的仿天猫商城系统开发与设计.rar(论文+任务书+项目源码)

    1设计背景 1 1.1课题现状 1 1.2课题意义 1 2设计思路 2 2.1环境与工具 2 2.1.1 Idea工具 2 2.1.2 webStorm工具 2 2.1.3 Mysql 2 2.1.4 ...

最新文章

  1. 彻底弄懂浏览器端的Event-Loop
  2. c# 文件IO操作 StreamReader StreamWriter Split 使用
  3. java有画图的库吗_Java画图
  4. 空气加热的力量可以让人飞起来吗?
  5. 2012年5月份第2周51Aspx源码发布详情
  6. soapui和cxf的却别_根据wsdl文件用soapUi快速构建webService服务(有图有真相)
  7. 如何正确的检测对象类型?
  8. 爆点客源4.1.0活动营销应用56版 修复朋友圈不显示问题
  9. python 正则表达式 前瞻_我应该如何在python中编写这个正则表达式(How should I write this regex in python)...
  10. 采样干扰十大滤波算法程序大全
  11. 大数据分析工具有哪些特性
  12. AcWing 788. 逆序对的数量
  13. SpringBoot 2.0参数校验Hibernate Validator
  14. 三星s8android8.0,三星S8国行升级安卓8.0 系统流畅度提升
  15. 利用python selenium+cv2破解qq空间登录滑动验证码(无法获得完整图情况)(上)
  16. EXCEL( 获得指定列的最后一个非空单元格)
  17. 山西大学计算机与信息技术学院张超,张超 - 山西大学 - 计算机与信息技术学院...
  18. 分布电容和杂散电容_寄生电容 分布电容
  19. 事实劳动关系的解除依据什么法律规定
  20. 计算机专业文科生录取分数线,文科生适合报考的5所学校,录取分数线不高,但就业前景很好...

热门文章

  1. git reset 和 git revert
  2. java中的时间计算Date
  3. vue项目,移动端浏览器 适配,你还在用rem吗?
  4. 计算机连接不到到网络连接不上,解决无线网络连接上但上不了网电脑故障 电脑维修技术网...
  5. 3ds Max 烘焙模型导入 Unity 3D 步骤
  6. Java小白从0开始:知识点(3)
  7. php paypal ipn回调,Paypal IPN / Webhook 异步回调流程是怎样的?
  8. 周易之二十一—噬嗑卦
  9. 【Python中的XOR异或符号^运用】
  10. 伊朗称以色列和美国可能是加油站网络攻击的幕后黑手、新型勒索软件或成为最大的新兴风险|11月1日全球网络安全热点