在Ubuntu 14.04上编译Android源码

之前在mac os X上用新版的xcode编译android失败了,chromium_org的gyp文件出了问题。看别人教程都是用旧版的xcode 4.x去编译。不想装xcode所以就直接去官方推荐的ubuntu上编译,果然畅通无阻,几乎没遇到坑。

1. 下载Android源码

  1. 可以去国内的repo:
    https://mirrors.tuna.tsinghua.edu.cn/help/#AOSP
  2. 我为了省时间直接百度网盘上下了一个:
    http://pan.baidu.com/s/1gdrJzYr
    是android 4.4 版本:
    full-eng 4.4 KRT16M eng.root.20151107.092746 test-keys

2. 初始化环境

  1. 要装个Oracle JDK 1.6版本。
  2. 其他依赖:

    $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

    详见https://source.android.com/source/initializing.html

3. 选版本

  1. 如果编译arm默认版本
    直接在根目录下make。
    如果出了问题多半是依赖没有装,就apt-get安装一下继续make。ubuntu下面一般不会出现问题,会畅通无阻的编译完。

  2. 如果要编译x86版本
    加载环境变量:
    ./build/envsetup.sh
    选版本:
    ./lunch
    选vbox-86
    然后make -j2 installer_img(-j是指定CPU数,双核所以用j2)

4. 运行

最后生成的文件在:
/root/android/out/target/product/generic
和/root/android/out/target/product/vbox_x86
system.img userdata.img ramdist.img
编译log文件在:
/root/android/out/target/product/generic/system/build.prop里面。

由于服务端没有装x 11也不想装vnc界面,直接用命令行运行emulator会报错误:SDL init failure, reason is: No available video device。所以只能copy出来运行,编译完之后用sz命令把三个image copy到自己的电脑。
1. Arm版本,由于我编译的是API19,所以直接把生成的三个img文件copy到这里覆盖掉。
这里写图片描述

然后在avd管理器里面新建API19的设备,直接运行。看到系统的版本号变成:full-eng 4.4 KRT16M eng.root.20151107.092746 test-keys。就说明运行的是刚刚build的image。
2. ViturlBox 版本
用make installer_img命令编译。
出现错误:error: do_inode_allocate_extents: Failed to allocate 5 blocks。
原因是给Image分配的空间太小。
要修改BoardConfig.mk中BOARD_SYSTEMIMAGE_PARTITION_SIZE 值,因为值太小,所以要设置一个比原来的值大的值,但是网上的都是在device目录下找,但是vbox_x86的不在device目录下,是build/target/board/目录下。
编译成功之后会生成out/target/product/vbox_v86/installer.img文件。然后用sz installer.img命令copy到自己电脑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值