Ubuntu14编译Android6.0

Android  2017年8月23日 pm9:26发布7年前 (2017)更新 城堡大人
114 0 0

今天(2016年11月6日)终于编译成功,参考的教程有很多,本来也想写一写,但发现自己可能对编译这东西考虑不全,误导了人,所以只好放弃自己写教程的想法。

一:下载Android源码

关于这一步,网上有下载好的源码,或者去清华大学开源软件镜像站下载,都很快的。

Android6.0源码,网盘下载地址:http://pan.baidu.com/s/1o6N86a2#path=%252F(这是别人上传的,我也是这里下载的,如果失效,请留言)

或者到http://blog.csdn.net/ilittleone/article/details/6823441  这位博主那下载

1、网盘下载:

下载完后(用网盘下载更快一点,然后拷贝到Ubuntu下Home目录或者其他,我参考了原作者)

  1. 在Ubuntu下的/Home目录下启动终端(Terminal)
  2. 进入Home/android6_r1
  3. 使用命令:cat Android6_r1_* > M.tgz   稍等一会儿就生产M.tgz
  4. 校验一下:md5sum M.tgz  (下载目录中有相关的md5校验码)
  5. 解压M.tgz:tar zxvf M.tgz
  6. 就出现mydroid这个目录

2、镜像站下载

直接去清华大学开源软件镜像站下载,使用的是repo下载

仔细看教程,就没什么问题。或者参考这篇文章《Ubuntu 下载 & 编译 Android5.1 源码

但是在那里下载好像有些下载不了,我这里提示我链接不上。。

比如直接下载镜像站中提供的实例:

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

这个就可以

如果我下载其他的版本分支,比如

repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4

总是提示没有网络,,我猜测是镜像站中可能没有所有aosp分支的资源。(后来发现git下载取消了,改为https下载就可以啦)

所以最后用了网盘中6.0的版本编译

二:编译环境配置

jdk版本要1.7++,一开始我的是1.6,在编译时报错断开,最后安装了openjdk-7-jdk,顺利编译。

Unbuntu用户的根目录下,然后依次执行以下命令:

sudo apt-get update

sudo apt-get install openjdk-7-jdk

sudo update-alternatives --config java

sudo update-alternatives --config javac

接下来继续执行以下命令,同样每一行都是分开单独执行的:

  sudo apt-get install git gnupg flex bison gperf build-essential

  sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

  sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386

  sudo apt-get install libgl1-mesa-dev g++-multilib mingw32 tofrodos

  sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386

  sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

  以上命令主要是安装编译源码时需要用到的各种软件,如果没有安装这些软件,编译的过程中会提示缺少必要的软件而无法继续编译,因此,在正式编译源码之前,一定要先安装这些软件。(直接摘抄,懒得打字)

三、编译android源码

  1. 切换到mydroid/目录下
  2. 在控制台中执行命令:source build/envsetup.sh  (导入编译Android源码所需的环境变量和其它参数)
  3. 在控制台中执行命令:lunch,运行命令之后会提示我们选择编译目标。
  4. 这里我选择的的默认目标,即aosp_arm_eng(也就是选择1)
  5. 在控制台中执行命令:make -j8,开始编译。注意,make -j8命令中的数字6和我8们电脑的CPU核心数以及线程数有关系,一般这个数字的数值最大不能超过CPU线程数的2倍
  6. 耐心等待,,,我的3个半小时左右
  7. 如果编译成功没有退出终端,在控制台中执行命令:emulator
  8. 如果退出了,那么在mydroid目录下,在执行步骤(2)(3),然后emulator即可

四、单个编译系统应用

使用mmm编译单个系统应用

  1. mmm packages/apps/Email/
  2. make snod
  3. emulator

就可以显示修改后的应用。

本文参考《在Ubuntu Server14.04上编译Android6.0源码》(前三个步骤)和《如何单独编译Android源代码中的模块 》(最后一个步骤)

 历史上的今天

  1. 2023: C语言之类型转换符大全(0条评论)
  2. 2022: bootchart 的配置和使用(0条评论)
  3. 2019: 龙应台:回家(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

  • Android导航网址大全
    Android导航网址大全 游客

    链接失效可以看看这 http://pan.baidu.com/s/1ngsZs 网络大神分享的

    回复

随机推荐

朱自清:背影

那年冬天,祖母死了,父亲的差使也交卸了,正是祸不单行的日子。我从北京到徐州打算跟着父亲奔丧回家。到徐州见着父亲,看见满院狼藉的东西,又想起祖母,不禁簌簌地流下眼泪。父亲说:“事已如此,不必难过,好在天无绝人之路!”回家变卖典质,父亲还了亏空;又借钱办了丧事。这些日子,家中光景很是惨淡,一半为了丧事...

Android的AssetManager使用

前言Android有assets和resources两大资源系统。resources资源系统设计有良好的检索系机制,但它无法应付图形和声音文件这样的大文件,因此这些资源实际是保存在assets系统里的。/res和/assets的不同点是,Android不为/assets下的文件生成ID。如果使...

海子:为什么你不生活在沙漠上

为什么你不生活在沙漠上英雄的可怜而可爱的伴侣我那唯一的人在何方? 用酒调着火所能留下的灰 写下几首诗?我的形象开始上升主宰着你的心灵!孤独守候着一个健康的声音!绝望之神你在何方? 为什么你不生活在沙漠上!我是谁手里磨刀的石块?我为何要把赤子带进海洋&n...

Android截图命令总结

前言简单记录一下Android设备多个屏幕或单个屏幕的截图方式。记录一下,方便自己查阅。正文查看displayId查看有屏幕的displayIdadb shell dumpsys window displays | grep displayIdubuntu$ adb shell d...

余光中:等你 在雨中

等你 在雨中 在造虹的雨中蝉声沉落 蛙声升起一池的红莲如红焰 在雨中 你来不来都一样 竟感觉每朵莲都像你尤其隔著黄昏 隔著这样的细雨 永恒 刹那 刹那 永恒等你 在时间之外在时间之内 等你 在刹那 在永恒 如果你的手在我的手里 此刻如果你的清芬...

自定义PopTextSeekBar记录

前言PopTextSeekBar意思是在拖动Seekbar时顶部显示提示框,并跟随Thumb进行移动(如图)。正文如图思路完全自定义PopTextSeekBar(继承View),画顶部的弹窗View非完全自定义PopTextSeekBar(继承SeekBar)+PopupWindo...