zoukankan      html  css  js  c++  java
  • Android源码编译全过程记录(基于最新安卓5.1.0)【转】

    本文转载自:http://blog.csdn.net/drg1612/article/details/44802533

    我的编译条件:

    1 Ubuntu Kylin 14.04 长期支持版 下载地址 : http://www.ubuntu-china.cn/download

    2 我的电脑是联想G470 i3处理器 内存4G,120g固体硬盘,配置不高,但是足够编译了(编译花费了5小时)

    3 Ubuntu我的分区状况:/home 100g(至少80g),swap分区8g(至少4g),空间请务必满足最低条件,不然无法编译成功

    4 一个速度快且稳定的v-p`n,我用的是green,线路选择的是日本高速线路,差不多有10m带宽 

    前后我总共花费了3 天的时间,一直在看网上的教程,期间还有下载和编译需要花费大量的时间,这个和我电脑配置低有很大的关系,最后结果还不错,成功运行了虚拟机。

    开始具体过程:

    1 首先检查是否满足编译的条件,缺一不可,如果你的swap分区(输入 free -m查看)如果没有4g,那么按照教程增加

    具体教程见:http://blog.csdn.NET/mznewfacer/article/details/7334592

    修改swap无需重启电脑

    还有v-p~n的事情,我是花钱买了一个月,18块,不是广告,毕竟花钱稳定点,同步安卓源码库必须要挂。

    2 然后按照官网教程一步一步来

    具体见http://source.Android.com/source/initializing.html

    我总结一个简化步骤:

    (1)配置ubuntu的编译环境(仅限于安卓5.1.0,其余版本请到官网看各自的编译环境):

    sudo apt-get update

    sudo apt-get install openjdk-7-jdk

    sudo apt-get install bison g++-multilib Git gperf libxml2-utils make zlib1g-dev:i386 zip

    (2)同步5.1.0源码

    2.1 安装repo(用于同步库的软件,基于git

    mkdir ~/bin

    PATH=~/bin:$PATH

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

    chmod a+~/bin/repo

    2.2 开始下载源码(需要很长时间(14g左右),我当时记得挂了一晚上,下载好了,具体时间要看各自的v-p~n速度)

    mkdir WORKING_DIRECTORY

    cd WORKING_DIRECTORY

    repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r3

    repo sync

    同步完成之后,目录是这样的:


    (3)开始编译

    source build/envsetup.sh (编译环境参数)

    lunch aosp_arm-eng (目标设备)

    make -j4 (以4个线程开始编译)

    如果顺利的话,我的机器花费了5个小时编译(out目录占29.1g),第一次编译花费时间很长,以后增量更新速度就快了,编译时间具体看个人机器了,编译完成之后,终端会显示:

    然后输入emulator运行虚拟机:

    祝各位编译顺利!

    3 我遇到的问题

    3.1问题1:过时的API

     注: 某些输入文件使用或覆盖了已过时的 API。
    注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

    如果此问题造成编译停止,请看有没有执行过:sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip

    如果没有造成编译停止,请忽略

     

    3.2问题2:内存溢出

    make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] 错误 1
    make: *** 正在等待未完成的任务....

     

    swap分区过小了,试试改成6g。

     

    最后附上对我此次编译帮助最大的文档,感谢他们:

    1 一些编译出错的解决方案

    http://www.cnblogs.com/tao560532/p/3302444.html

    2 目录结构(学习资料)

    http://www.it165.net/pro/html/201403/10393.html

    3 深入理解Android编译系统(学习资料)

    http://blog.csdn.Net/huangyabin001/article/details/36383031

  • 相关阅读:
    编程 判断 是否满足条件 的 验证代码。
    Javascript作用域详解。
    DateTable To Json
    反射_获取字段的Description信息
    C# Json格式
    jQuery选择器
    SQL日期格式转换
    【转载】#pragma once与#ifndef
    C++中的左值与右值
    HTML、CSS基础知识
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7281903.html
Copyright © 2011-2022 走看看