欢迎光临
专注android技术,聚焦行业精粹,我们一直在努力

Deepin15.5&&Ubuntu 16.04以上Android6.0源码编译方案

内容包括两点: 前言,流程

1 前言
编译Android 6.0这种文章在ubuntu平台上面网上已经写到烂了,之所以写这个总结是因为 1 想让更多的android手机系统开发者使用这个deepin系统(想想编程的时候可以挂QQ,微信,百度云,迅雷诸多国产软件真是惬意), 2 deepin 15系统是继承debian系列,最近的关于debian编译Android源代码的文章的时间是2015年,而且方法已经完全对不上号,库全部失效了,所以基本上没有什么中国文章,讲在debian上对高版本的Android系统进行有效编译的了,deepin更没有,接下来开始编译内容步骤。

2 流程
android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.

2.1 源码下载
首先推荐的是使用百度网盘下载无git文件的压缩包,理由很简单,体积小,压缩包4G,解压后才13G。要是用repo,可以给你们算一下,30G的git文件+13G的代码+27G编译产生的文件=要吃掉70G的硬盘,而且从国内镜像下载,网速快则半天,不快下24小时都未必可以下载完,其次在开发的时候,在改代码前完全可以在要改之处加git分支,这样保证不管怎么改动都可以还原。下面给出百度网盘链接:
https://pan.baidu.com/s/1dE5Q8hF

如果一定想用repo下载的,请自行百度,我相信别人一定会把repo,改清华镜像的步骤讲得比我详细,哈哈。

2.2 构建编译环境

2.2.1 安装Open jdk7

由于deepin15 没有open jdk7的仓库记录,所以在这里我们用加一下,步骤如下:

加源的方法1:

加源的方法2

加入如下两行,

ok添加完毕,安装:

已经安装了java8或者9的网友,可以在安装openjdk7后,使用如下命令进行java版本的自行切换:

在.bashrc里边配置Java路径:

2.2.2 安装各种支持库

2.2.3 安装deepin15 或者 debian没有默认安装的库
这也是为什么debian和deepin15一直没有人编译android源代码的原因,少库尔。

2.2.3.1 readline库
libreadline6-dev:i386,这个库已经被debian移除,我们把它加回来,这里我把ubuntu的包和debian的对应的libreadline6包都安装进来,打开包看到它们安装位置不一样,不知道会走哪个包,所以都安装。。
ubuntu版本:
libreadline6_6.3-4ubuntu2_i386.deb
地址:http://kr.archive.ubuntu.com/ubuntu/pool/main/r/readline6/libreadline6_6.3-4ubuntu2_i386.deb
libreadline6-dev_6.3-4ubuntu2_i386.deb
地址:http://kr.archive.ubuntu.com/ubuntu/pool/main/r/readline6/libreadline6-dev_6.3-4ubuntu2_i386.deb

debian版本:
lib32readline6_6.3-8_amd64.deb
地址:http://snapshot.debian.org/archive/debian/20140805T163056Z/pool/main/r/readline6/lib32readline6_6.3-8_amd64.deb
lib32readline6-dev_6.3-8_amd64.deb
地址:http://snapshot.debian.org/archive/debian/20140805T163056Z/pool/main/r/readline6/lib32readline6-dev_6.3-8_amd64.deb
这里要注意的是安装顺序,先安装readline6,再安装readline6-dev

2.2.3.2 lib64stdc++6库

lib64stdc++6这个额外的C++运行库deepin 15默认是没有安装的,它的作用是在模拟器接收相关的画面参数后,启动屏幕的渲染,没这个库,模拟器 1会提示你,当前的版本是32位的操作系统,让你加32位强制转换参数,2 就算加了强制转换参数,模拟器走到渲染画面的步骤后,因为没这个库而闪退。
安装:

如果提示没有这库,软件源在/etc/apt/sources.list 文件中像下面这样添加一行:

然后$sudo apt-get update,再安装。
安装完后,不是马上就可以用的,看一眼下面关于这个库的设置:

方法1 假设你目前还没有配置android app应用开发环境,也是就是说还没有下载android sdk的话,可以这么做:

方法2 假设你已经下载了android sdk包,并且已经配置了android sdk环境的,可以用下面这个方法,这样,android 源码的emulator工具和android sdk中的emulator工具,两边运行模拟器都没有问题。好了,下面是步骤:

2.2.4 高版本Linux(>ubuntu 14.04)上面要进行的设置
2.2.4.1

2.2.4.2 修改 build/core/clang/HOST_x86_common.mk
加上 -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
-no-integrated-as //此句7.0以下要加

2.2.4.3 修改 art/build/Android.common_build.mk
#关闭高版本的clang编译器,会把项目编译错误,高版本会走clang编译,可惜android源代码用不起。

2.3 编译

(这两个产品的区别,
aosp_arm-eng 优点:编译的时间比aosp_x86-eng短一个小时,占硬盘比aosp_x86-eng少1G,可以加载模拟器arm架构的内核源码编译出来的镜像,研究编译内核这方面网上公布出来的资料很丰富,适合framework和研究linux内核栈的网友使用
aosp_x86-eng 优点:就是一个字快,启动和运行快如闪电,缺点上面都说,编译时间长点,硬盘占得多点,关于x86架构内核源码编译的方法,网上公布少得可怜,适合不做内核的网友使用)

此文总体方案适合deepin15及ubuntu 16.04以上 系统。
~Enjoy!
附图:

赞(0) 打赏
未经允许不得转载:花花鞋 » Deepin15.5&&Ubuntu 16.04以上Android6.0源码编译方案
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

国内精品Android技术社区

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏