Android源码编译详解【四】:Android 6.0_源码的下载与编译
1、AOSP源码下载
AOSP:即为"Android Open-Source Project"的缩写,中文意为 :"安卓开放源代码项目"。
Google官方宣称:任何人都可以以任何目的使用Android源代码,我们也十分欢迎这样做。但是为了共享整个Android生态系统的应用程序,所有设备制造商必须参加“安卓兼容性计划”,但事实上......在中国很难实现兼容计划~!。
目前,我们可以下载Google原生未定制修改的AOSP版Android源码进行测试编译,但是一定要保证整套源码的健全性,否则无法编译通过。
正规手机厂商做ROM定制时,普遍的方案都是从源码定制厂商(如:高通、联发科、华为、Inter、Marvll等)拿到针对其硬件平台优化后的源码,进行二次的定制、修改、编译和发布(例如国内备受大家喜爱的: 小米 MIUI、魅族 Flyme、锤子 SmartisanOS、华为EMUI、一加 氢OS、OPPO ColorOS 等等)。
通常情况下,手机厂商都会名义上免费拿到配套源码,前提是他们的产品需要搭载配套的芯片(如 高通的 Snapdragon 骁龙系列、MTK 的Helio 系列、华为的麒麟等)。
这里提供一套Android 1.6 --- Android 6.0各个版本下载的网盘地址,供大家测试使用,其健全性还有待考究:
链接: http://pan.baidu.com/s/1bmArk6 密码:m8fq
2、上传源码到Ubuntu编译服务器
首次向编译服务器上传初始化源码,一般是由管理员账户执行,较比简便的的方式就是使用FTP软件(如Xshell、FlashFXP、Xftp等)登陆服务器,直接拖进对应的目录。
3、 编译前的配置
编译前对编译环境的配置,是我们编译源码的必行之路。介于不同的源码定制厂商对环境配置可能会有一定的出入,因此,这里只是介绍几个基本通用的环境配置命令,供大家参考:
3.1在 .bashrc文件中添加相关属性:
echo export USE_CCACE=1 >> ~/.bashrc
3.2为了提高编译效率,我们需要设置编译器高速缓存,执行以下命令:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
-M 50G 两个参数表示设置50G大小的空间作为编译缓存,这个数值可以根据自己的硬盘空间大小进行调整
3.3导入编译Android源码所需的环境变量和其它参数,运行以下命令:
source build/envsetup.sh
3.4运行lunch命令选择编译目标
lunch
这里输入 "1" 选择aosp_arm_eng
各种版本的不同之处,待补充。
4、执行编译
完成编译环境的配置之后,执行如下命令开始源码编译:
sudo make -j8
【执行make -j8, 8为同时编译的线程数,一般Google推荐执行源码编译的线程数 = CPU核心数x 2 + 2,比如4核,就推荐10线程编译,执行make –10。】
关于cpu个数,可以用下面命令查看:
cat /proc/cpuinfo
编译命令同配置命令一样,不同的定制厂商都会包装出各自不同的源码编译方式和命令。
由于使用虚拟机编译源码的时长超乎想象,所以,暂时不给大家提供编译结果的展示,后续,配置实体服务器编译正规源码后,补充贴图。
5、刷机烧写ROM
由于暂时没有正式可编译的定制源码和测试机/测试板,而且不同源码定制平台厂商会提供不同刷机工具FlashTool,因此,这步暂时不做过多的说明,后续再行补充,敬请谅解。
Android源码编译详解【四】:Android 6.0_源码的下载与编译相关推荐
- Android中mesure过程详解 (结合Android 4.0.4 最新源码)
如何遍历并绘制View树?之前的文章Android中invalidate() 函数详解(结合Android 4.0.4 最新源码)中提到invalidate()最后会发起一个View树遍历的请求,并通 ...
- Android中layout过程详解 (结合Android 4.0.4 最新源码)
上一篇文章Android中mesure过程详解 (结合Android 4.0.4 最新源码)介绍了View树的measure过程,相对与measure过程,本文介绍的layout过程要简单多了,正如l ...
- java tomcat源码_详解Tomcat系列(一)-从源码分析Tomcat的启动
在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知 ...
- 源码泄露详解 一文了解常见源码泄露
前言 这几天回顾做过的ctf题 看到好多题有源码泄露 本篇做个归纳总结 1..git源码泄露 在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件夹 这个文件夹包含所有 ...
- android 弹性动画,SpringAnimation详解-Android
SpringAnimation 类是最近(25.3.0版本)才添加在支持库中的一个类,它主要是为了让实现弹性动画变得更加方便,其实facebook在很久以前的Rebound库就实现了这样的动画,而且效 ...
- Android 系统(199)---Android事件分发机制详解
Android事件分发机制详解 前言 Android事件分发机制是Android开发者必须了解的基础 网上有大量关于Android事件分发机制的文章,但存在一些问题:内容不全.思路不清晰.无源码分析. ...
- Android面试Hash原理详解二
Hash系列目录 Android面试Hash原理详解一 Android面试Hash原理详解二 Android面试Hash常见算法 Android面试Hash算法案例 Android面试Hash原理详解 ...
- Android 源码编译详解【合集篇】
Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...
- Android四大组件之bindService源码实现详解
Android四大组件之bindService源码实现详解 Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 Android四大组件之bindServic ...
- 全志 android 编译,全志Android SDK编译详解(二)
注意要确定安装了jdk) 第一步: cd lichee; ./build.sh -p sun5i_elite -k 3.0 (apt-get install uboot-mkimage需要安装m ...
最新文章
- 一条正确的Java职业生涯规划,顺利拿到offer
- 到底应该选择哪种Linux.NET的部署方式?
- pythontkinter在一块区域中绘图_用Python中的tkinter模块作图(续)
- python网络编程教学_python网络编程学习初步
- 计算机小技巧7,大神也未必知道的7个电脑小技巧,你会吗?
- 4.Flow Layout Pane
- python中常用的序列化模块_python 序列化,常用模块
- 《Linux编程》学习笔记 ·002【Linux常用工具GCC、GDB、Make】
- Codeforces Bubble Cup 8 - Finals [Online Mirror] B. Bribes lca
- robot framework接口自动化测试post请求
- Mac 下如何用命令行解压和压缩 rar 文件
- 史上最全的全国特产一览表,到哪就买当地最正宗的特产!!!
- 所谓的光辉岁月,并不是后来闪耀的日子,而是无人问津时你对梦想的偏执。
- 深入浅出傅里叶变换(目前看到的讲得最好的一篇文章)
- 如何快速实现增长App用户量?
- 进程(父进程、子进程、init进程)
- web前端 --- HTML标签详解
- 大数据开发个人学习规划
- ARM板上的华容道小游戏
- 水果FL studio20.8中文汉化翻译语言