ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码
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 源码相关推荐
- Nexus 6 编译并刷机 Android 7.1.1 AOSP以及常用的修改源码快速验证方法
一.编译相关资源链接 设备硬件二进制文件 Android分支支持设备列表 搭建构建环境 初始化源码仓库 repo init -u https://android.googlesource.com/pl ...
- 12 编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行
编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入式 / 嵌入式QEMU教程 ...
- Android Glide图片加载框架(二)源码解析之into()
文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...
- 作为Android开发师,你真的懂怎么读源码吗?
前言 对于许多Android开发者来说,所谓的Android工程师的工作"不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上"就好了,源码什么的, ...
- 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- Android Jetpack架构组件之 Room(使用、源码篇)
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...
- Android Glide图片加载框架(二)源码解析之load()
文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...
- Android Glide图片加载框架(二)源码解析之with()
文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...
- android 活体识别人脸动作活体静默活体Demo源码实现讲解
android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...
- Android悬浮窗开启 适配所有机型(附源码)
Android悬浮窗开启 适配所有机型(附源码) 1.开启悬浮窗权限 清单文件中添加: <uses-permission android:name="android.permissio ...
最新文章
- 博通收购高通12张PPT深度解析!
- linux 虚函数调用性能,C++虚函数和多态
- 关于多线程Thread.Stop()破坏原子性
- 【用研】细读7张图片,教你玩转用户调研
- 4/100. Maximum Depth of Binary Tree
- leetcode-832-Flipping an Image
- how is my Angular custom controller code executed
- django 轮播图上传_django之动态轮播图技术的实现
- idea springboot一直卡在启动 没有日志输出
- torch.nn模块介绍
- Eclipse 工程迁移到 Android Studio
- mc2180 刷机方法_MC控制和时差方法
- 直播视频网站源码,延迟的几种方式
- 使用命令行提取微软补丁文件
- Web前端开发配色表及标准颜色表
- c语言自行车租赁系统,winform 自行车租赁系统(含数据库)
- vivado实现cameralink接口
- python爬取“堆糖网”小姐姐 图片
- 自带RGB灯效,配备显卡专属风道,风行者DF700 Flux上手
- liu四声拼音怎么读_刘的拼音怎么读
热门文章
- pytorch梯度下降函数_Pytorch学习笔记6:激活函数/单层感知机/梯度下降求最小值实例...
- 小程序modal控件(显示为弹框) 可有输入框
- svd pca matlab,从SVD到PCA——奇妙的数学游戏
- 计算机网络实验五静态路由与RIP协议,实验锐捷实训8-1--配置静态路由和rip协议...
- angularjs中ui-sref传值步骤
- css ltimg gt只适应,css3动画,CSS3实战小技巧--使用CSS变量实现波浪动画
- 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案
- 站群服务器和虚拟主机的区别,WordPress虚拟主机与站群服务器之间有什么关系 - WordPress 多站点站群...
- c语言 万年历编程,用C语言如何编写“万年历”
- php 5.4 aws,亚马逊AWS.EC2:Ubuntu安装php与apache环境