• pandaboard ES学习之旅——4 Android源代码下载与编译


    4 Android源代码下载与编译

    TIP1linaro提供的android源代码是包含ubootLinux kernelandroid源码的,一次下载即可用。

    TIP2:从http://releases.linaro.org/12.10/android/leb-panda/下载到的Linux kernelandroid源码版本分布是kernel 3.2android 4.1.2

    4.1 准备工作

    参考http://blog.csdn.net/luoshengyang/article/details/6559955

    4.2 下载源码并编译

    首先,直接借用linaro下载编译脚本完成代码下载与编译过程。

    http://releases.linaro.org/12.10/android/leb-panda/下载linaro_android_build_cmds.sh

    linaro_android_build_cmds.sh脚本实现的功能是:

    1、  download the repo tool for android下载repo工具。

    2、  download the android code下载linaro版本的安卓源代码。

    3、  download the toolchain to build with下载交叉工具链。

    4、  build the code编译源代码。

    运行脚本即可完成代码下载与编译。(注:此过程也包括自动编译ubootLinux Kernel源码

    参考网址:

    https://android-build.linaro.org/builds/~linaro-android/panda-ics-gcc47-omapzoom-stable-blob/

    其次,熟悉之后可以参照脚本分步下载与编译。

    参照脚本简化的编译方法是:

    1、  第一次在服务器中编译时,先把源码clean,避免下载到的源码出现文件冲突等问题

    root@fwtdev2:/data/smbshare/richard/source_code/android#make clean

     

    2、  指定文件生成路径与交叉工具链路径

    root@fwtdev2:/data/smbshare/richard/source_code/android#export TARGET_PRODUCT=pandaboard

     

    root@fwtdev2:/data/smbshare/richard/source_code/android#exportTARGET_TOOLS_PREFIX=android-toolchain-eabi/bin/arm-linux-androideabi-

    3、  运行环境配置脚本

    root@fwtdev2:/data/smbshare/richard/source_code/android#./build/envsetup.sh

    4、  执行编译命令依次为boot/system/userdata(boot/system/userdata可分开单独执行;-j4表示执行4个线程进行并行编译,速度比较快,也可以去掉)

    root@fwtdev2:/data/smbshare/richard/source_code/android#make boottarball #说明:boot编译时最好不要带参数-j4进行编译,容易报错。

    root@fwtdev2:/data/smbshare/richard/source_code/android#make –j4 systemtarball #说明:编译不过时可以尝试不带参数-j4进行编译,ubuntu下编译android4.1.2很容易出现编译问题,目前原因还未查明。

    root@fwtdev2:/data/smbshare/richard/source_code/android#make –j4 userdatatarball  #说明:编译不过时可以尝试不带参数-j4进行编译,ubuntu下编译android4.1.2很容易出现编译问题,目前原因还未查明。

    4.3 问题

    1、出现的问题:下载android源码的过程中,repo sync出现了error: Exited sync dueto gc errors,原因是git版本较旧,需更新git>=1.7.2版本

     

    解决方法:在Ubuntu 10.04 LTS解决操作步骤如下:

    sudo add-apt-repository ppa:git-core/ppa

    sudo apt-get update

    sudo apt-get install git

    2、服务器swap过小的问题

    会导致有时出现如下打印:

    注意:某些输入文件使用或覆盖了已过时的 API

    注意:要了解详细信息,请使用-Xlint:deprecation重新编译。

    注意:某些输入文件使用了未经检查或不安全的操作。

    注意:要了解详细信息,请使用-Xlint:unchecked重新编译

    有时出现直接退出编译的现象,编译错误不稳定。

    解决方法:

    分析发现Ubuntu服务器SWAP分区只有10G,而最好>16G。

    参考网址:http://bbs.189works.com/thread-42793-1-1.html

    加大SWAP分区变为20G,

    方法:http://www.cnblogs.com/willsun8023/archive/2011/03/19/1988589.html

    然后重新执行./linaro_android_build_cmds.sh脚本,编译ok

    4.4 生成的映像

    ./out/target/product/panda/boot.tar.bz2

    ./out/target/product/panda/userdata.tar.bz2

    ./out/target/product/panda/system.tar.bz2

  • 相关阅读:
    重载的概念和体现形式
    构造方法的概述和使用
    可变长参数
    成员方法的定义
    Point类的定义
    Person类的定义
    类和对象以及引用的定义
    高数学习----微积分
    高数学习----向量代数和空间解析几何
    一个无法解析的外部命令and无法解析的外部符号
  • 原文地址:https://www.cnblogs.com/IDoIUnderstand/p/3280730.html
Copyright © 2020-2023  润新知