1.获取Android源码

(1)下载repo

在用户目录下创建一个bin文件夹来存放repo,并把该路径设置到环境变量中mkdir ~/binPATH=~/bin:$PATH

下载repo脚本curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

设置repo可执行权限chmod a+x ~/bin/repo

(2)初始化repo客户端

创建AndroidCode目录用来存放源码mkdir AndroidCodecd AndroidCode

运行repo下载源码repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1repo sync

注:下载android源码对网络要求较高,如果中间出现错误,不要删除已缓存的文件,重新执行repo sync即可。如果网速不允许的话,推荐在论坛或者网盘上找资源,在windows下载后拷贝到ubuntu下即可(无需配置repo)。无论采用哪种方式,切记源码的路径一定不要含有中文。

2.搭建编译环境

(1)安装编译工具sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilibsudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-devsudo apt-get install git-core gnupg flex bison gperf build-essentialsudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilibsudo apt-get install libc6-dev-i386sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-devsudo apt-get install lib32z-dev ccachesudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

注:安装过程中可能出现版本不匹配的问题,但是系统会给出应安装的正确版本提示,按照系统提示安装即可。如果出现不能安装的情况,可以执行 sudo apt-get update 后再进行安装,如果再安装不上,则可以放弃,影响不大。如果电脑里没有git一定要安装一下git。

(2)安装jdk

Android4.4的源码编译所使用的jdk为oracle jdk1.6。由于不能直接下载,所以可在论坛或网盘上找资源下载jdk1.6.0_45.下载后为.bin文件

首先在/usr/loacl目录下创建jvm文件夹用来存放jdkmkdir /usr/local/jvm

然后进入到Downloads下找到刚才下载的jdk,复制到/usr/local/jvm中cp jdk-6u45-linux-x64.bin /usr/local/jvm

然后进入到/usr/local/jvm下,给.bin文件一个可执行权限chmod +x jdk-6u45-linux-x64.bin

执行.bin文件进行安装./jdk-6u45-linux-x64.bin

安装成功后设置环境变量,打开/etc/profile,添加如下几行后保存export JAVA_HOME=/usr/local/jvm/jdk1.6.0_45export JRE_HOME=/usr/local/jvm/jdk1.6.0_45/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

修改后Log Out之后再进入,在终端输入java -version,显示java version "1.6.0_45"则为配置成功

注:编译的时候jdk一定要安装1.6的最高版本,即jdk1.6.0_45,否则编译中会报错,推荐下载地址http://download.csdn.net/detail/javahr/7291125

(3)安装make

由于ubuntu16.04自带make版本过高,无法编译。因此需要将make降至3.81或3.82版本

下载地址ftp://ftp.gnu.org/gnu/make/

下载后到Downloads下将文件拷到其他目录(home下即可),然后解压tar -zxvf make3.8.2.tar.gz

解压后进入到make3.8.2的目录下./configuremakemake install

执行完后在/usr/local/bin中可得到新版本的make,复制到/usr/bin中即可

注:make过程中可能会出现错误,不用理会,只要make install能够成功执行即可。

(4)编译

首先在.bashrc文件末尾追加export USE_CCACHE = 1echo export USE_CCACHE=1 >> ~/.bashrc

然后导入编译Android源码所需的环境变量和其他参数:source build/envsetup.sh

然后make cleanmake update-apimake

注:其中前两行不是必须的,make update-api可能会出错,但是影响不大。

最后一行make也可以用make -j4(四线程编译),电脑性能好的可以用make -j8或-j10,总之是二的倍数。我怕电脑死机只用了make,不过稍微有点慢。

如果没什么意外的话等待编译成功就好了。。。

(5)启动Android模拟器source build/envsetup.shlunch sdk-engemulator

等待一会之后模拟器即可启动

(6)最后:

过程整理出来大概就是这样,由于上文好多命令都是我自己手敲上去的,可能有的敲错了,给大家推荐两篇参考博客

http://www.jianshu.com/p/6d97b4a10b18

http://blog.sina.com.cn/s/blog_6e65e8cc0102wm83.html

如果顺利的话整个编译过程是不会出现网上所说的各种错误的。

祝大家编译成功~

ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码相关推荐

  1. Nexus 6 编译并刷机 Android 7.1.1 AOSP以及常用的修改源码快速验证方法

    一.编译相关资源链接 设备硬件二进制文件 Android分支支持设备列表 搭建构建环境 初始化源码仓库 repo init -u https://android.googlesource.com/pl ...

  2. 12 编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行

    编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入式 / 嵌入式QEMU教程 ...

  3. Android Glide图片加载框架(二)源码解析之into()

    文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...

  4. 作为Android开发师,你真的懂怎么读源码吗?

    前言 对于许多Android开发者来说,所谓的Android工程师的工作"不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上"就好了,源码什么的, ...

  5. 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  6. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  7. Android Glide图片加载框架(二)源码解析之load()

    文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...

  8. Android Glide图片加载框架(二)源码解析之with()

    文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...

  9. android 活体识别人脸动作活体静默活体Demo源码实现讲解

    android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...

  10. Android悬浮窗开启 适配所有机型(附源码)

    Android悬浮窗开启 适配所有机型(附源码) 1.开启悬浮窗权限 清单文件中添加: <uses-permission android:name="android.permissio ...

最新文章

  1. 博通收购高通12张PPT深度解析!
  2. linux 虚函数调用性能,C++虚函数和多态
  3. 关于多线程Thread.Stop()破坏原子性
  4. 【用研】细读7张图片,教你玩转用户调研
  5. 4/100. Maximum Depth of Binary Tree
  6. leetcode-832-Flipping an Image
  7. how is my Angular custom controller code executed
  8. django 轮播图上传_django之动态轮播图技术的实现
  9. idea springboot一直卡在启动 没有日志输出
  10. torch.nn模块介绍
  11. Eclipse 工程迁移到 Android Studio
  12. mc2180 刷机方法_MC控制和时差方法
  13. 直播视频网站源码,延迟的几种方式
  14. 使用命令行提取微软补丁文件
  15. Web前端开发配色表及标准颜色表
  16. c语言自行车租赁系统,winform 自行车租赁系统(含数据库)
  17. vivado实现cameralink接口
  18. python爬取“堆糖网”小姐姐 图片
  19. 自带RGB灯效,配备显卡专属风道,风行者DF700 Flux上手
  20. liu四声拼音怎么读_刘的拼音怎么读

热门文章

  1. pytorch梯度下降函数_Pytorch学习笔记6:激活函数/单层感知机/梯度下降求最小值实例...
  2. 小程序modal控件(显示为弹框) 可有输入框
  3. svd pca matlab,从SVD到PCA——奇妙的数学游戏
  4. 计算机网络实验五静态路由与RIP协议,实验锐捷实训8-1--配置静态路由和rip协议...
  5. angularjs中ui-sref传值步骤
  6. css ltimg gt只适应,css3动画,CSS3实战小技巧--使用CSS变量实现波浪动画
  7. 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案
  8. 站群服务器和虚拟主机的区别,WordPress虚拟主机与站群服务器之间有什么关系 - WordPress 多站点站群...
  9. c语言 万年历编程,用C语言如何编写“万年历”
  10. php 5.4 aws,亚马逊AWS.EC2:Ubuntu安装php与apache环境