Android4.03编译过程

这几天一直在编译4.03版本的Android源码,不是很顺利,记录一下,作为备忘录。

源代码的主页在:http://source.android.com/source/initializing.html

平台为VM8+Ubuntu11.10

  1. 安装JDK6
    添加软件源:deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
    更新:apt_get udpate
    安装:apt-get install sun-java6-jdk
  2. 安装其他软件
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
      libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
      libxml2-utils xsltproc
  3.  进入源码目录
  4. 设置环境变量
    . build/envsetup.sh
  5. 编译
    make -j4
    输出信息如下:
    ============================================
    PLATFORM_VERSION_CODENAME=AOSP
    PLATFORM_VERSION=4.0.3.0.2.0.1.0
    TARGET_PRODUCT=full
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a
    HOST_ARCH=x86
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-3.0.0-12-generic-i686-with-Ubuntu-11.10-oneiric
    HOST_BUILD_TYPE=release
    BUILD_ID=OPENMASTER
    OUT_DIR=out
    ========================================================================================

  6. 出错
    prebuilts/tools/gcc-sdk/gcc: 行 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: 没有那个文件或目录
  7. 处理
    cd prebuilts/tools/
    git reset --hard HEAD^
    cd ../../external/qemu
    git reset --hard d4f5a3ae87a7246613188940c1667bf2880da402
    上面的解决方法参考:http://groups.google.com/group/android-building/browse_thread/thread/7d5b3c3b2076c35f
  8. 修改完成之后
    make clean
    make -j4
  9. 漫长等待,一觉醒来之后,出现如下错误:
    target Dex: android.core.tests.libcore.package.com.no-core-tests-res
    target Dex: android.core.tests.libcore.package.dalvik.no-core-tests-res
    collect2: ld terminated with signal 9 [Killed]
    make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so] 错误 1
    make: *** 正在等待未完成的任务....
    DroidDoc took 5376 sec. to write docs to out/target/common/docs/doc-comment-check
  10. 处理.
    google了一把,这个问题的答案还真多,总结有三种处理方式:
    1) 没有swap分区。 //我在安装的分了2G的swap,不是这个原因
    2) gcc的版本需要为4.4. //查了一下自己的gcc版本,是4.6.1,果然不一致,不过后来想想,官网页没有说GCC版本问题,应该和版本没有关系,这个方法暂不采用。
    3)用多线程编译不太安全,最好用make. //我就是用多线程的make -j4 编译的。
    最后,采用了第三种处理方式,运行make命令(这里我没有make clean)。
  11. 半个小时之后,激动人心的时刻到了:
    Install system fs image: out/target/product/generic/system.img
  12. 运行
    我用自己编译的模拟器运行运行模拟器之后一直是黑屏,原因不明,这个以后处理。
    我们找个现有的模拟器进行测试,把生成的ramdisk.img,system.img,userdata.img这三个文件拷贝到相关模拟器的相关目录:android-sdks\system-images\android-15\armeabi-v7a,运行,出来下面的最终画面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值