virtualbox编译android,VirtualBox Ubuntu 16.04环境下编译AOSP 7.1.2 源码

话说最初投奔Android平台就是看中其开源的特性,善于利用OS源码,对个人开发成长确实有不可替代的作用。May the Force be with you.

在经历若干次下载失败,编译错误之后,最后编译成功,看到了久违的 emulator (是的,几乎20mins 后才能启动的那个原生模拟器 = =! ).

主要步骤如下:

0 安装VirtualBox 以及 安装Ubuntu系统

请参考 http://blog.csdn.net/u013553529/article/details/54838490。

注意: 最好预留100GB+的磁盘空间 和 4GB+的内存,并优选OS 镜像

Ubuntu(64-bit)。

1 下载Android源代码

1.1 下载 repo 工具

同样通过镜像下载 https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/ 。要注意的一点是,该工具 repo 是一个可执行文件 (出现过一次下载后发现是一个HTTP 404 response 的html 文件)。

1.2 下载特定的OS版本

按 传统初始化方法

建立工作目录:

mkdir WORKING_DIRECTORY

cd WORKING_DIRECTORY

初始化仓库:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

如果需要某个特定的 Android 版本(列表):

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

同步源码树(以后只需执行这条命令来同步):

repo sync

由于网络原因,在使用repo sync同步代码的过程中会多次出错,总不能时时刻刻刻盯着,能不能在同步失败的情况下,自动重试呢?当然可以,我们可以写一个简单的shell脚本

#!/bin/bash

#FileName source_asyn.sh

PATH=~/bin:$PATH

# 注意修改成你要编译的版本,比如这里我在mac上编译的是android-7.1.2_r36

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

repo sync

while [$? = 1]: do

echo "=========download failed,again============"

sleep 5

repo sync

done

代码同步完成后,原来的 .repo 隐藏文件下的对应版本的源代码会出现在 WORKING_DIRECTORY 文件夹下。

2 编译代码

2.0 预设置参数

鉴于极易出现2.0.2中描述的问题,建议提前检查修改配置,并启动server

编译过程中主要碰到的问题包括:

2.0.1 Communication error with Jack server

Communication error with Jack server (28). Try 'jack-diagnose'

解决方法:

jack-admin start-server

2.0.2 GC overhead limit exceeded (version 1.2-rc4 'Carnac' ...)

解决方法:

按出错的提示,可以对应修改JVM参数,修改最大可用heap内存。

1 停止运行中的server ./prebuilds/sdk/tools/jack-admin stop-server

2 修改VM 启动参数:

gedit ./prebuilds/sdk/tools/jack-admin

将 JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}" 直接修改为 :

JACK_SERVER_VM_ARGUMENTS="-Xmx4096m -Dfile.encoding=UTF-8 -XX:+TieredCompilation"。注意:这里不再使用${parameter:=default}的语法,直接给JACK_SERVER_VM_ARGUMENTS赋值。

3 重新启动 server ./prebuilds/sdk/tools/jack-admin start-server, 可以从log中看到刚刚设置的 -Xmx 参数

以上是本人碰到过的编译错误。如果遇到其它类型的错误,可以参考这里 解决。

2.1 设置环境

cd WORKING_DIRECTORY

source build/envsetup.sh

2.2 选择编译目标

执行 lunch,选择默认的aosp_arm-eng。

aosp(Android Open Source Project)代表Android开源项目;arm表示系统是运行在arm架构的处理器上

-eng:代表engineer,也就是所谓的开发工程师的版本,拥有最大的权限(root等),此外还附带了许多debug工具

更多关于build 以及 build type的说明,请移步这里.

2.3 编译

通过make指令进行代码编译,该指令通过-j参数来设置参与编译的线程数量,以提高编译速度.比如这里我们设置8个线程同时编译:

make -j8

需要注意的是,参与编译的线程并不是越多越好,通常是根据你机器cup的核心来确定:core*2,即当前cpu的核心的2倍.比如,我现在的笔记本是双核四线程的,因此根据公式,最快速的编译可以make -j8.

(通过cat /proc/cpuinfo查看相关cpu信息)

编译成功后,你会看到类似的信息:

#### make completed successfully (hh:mm:ss) ####

ab049592c30e

3 启动模拟器

emulator

ab049592c30e

4 参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 首先下载并安装VirtualBox软件,可以在官网上下载最新版本。 2. 打开VirtualBox软件,点击“新建”按钮创建一个新的虚拟机。 3. 在弹出的对话框中,输入虚拟机的名称和操作系统类型,选择Ubuntu 64位版本。 4. 分配虚拟机的内存大小和硬盘空间大小,建议至少分配2GB内存和20GB硬盘空间。 5. 创建完虚拟机后,点击“设置”按钮,进入虚拟机的设置界面。 6. 在设置界面中,选择“存储”选项卡,点击“空白”CD图标,选择Ubuntu 16.04的ISO镜像文件。 7. 点击“启动”按钮,启动虚拟机,进入Ubuntu 16.04的安装界面。 8. 按照安装向导的提示,选择安装语言、时区、键盘布局等选项,然后分配磁盘空间和设置用户名和密码。 9. 安装完成后,重启虚拟机,进入Ubuntu 16.04系统。 10. 在Ubuntu 16.04系统中,可以安装需要的软件和配置系统环境。 ### 回答2: 安装 VirtualBox 以及 Ubuntu 16.04 是一种方便的方式来体验 Linux 的操作系统。以下是在 Windows 环境下安装 Ubuntu 16.04 的步骤: 1. 首先,从 VirtualBox 官网下载适用于您的操作系统的 VirtualBox 安装程序,并按照安装步骤进行安装。 2. 从 Ubuntu 官网下载 Ubuntu 16.04 的 ISO 镜像文件。 3. 在 VirtualBox 中创建一个新的虚拟机,将其命名为 Ubuntu。 4. 在新虚拟机的设置中,选择“存储”选项卡,并将 Ubuntu 16.04 的 ISO 镜像文件添加为虚拟机的光驱。 5. 在新虚拟机的设置中,选择“系统”选项卡,并将启动顺序设置为“光驱优先”。 6. 在此后启动该虚拟机 We continue you through the installation process. 7. 在 Ubuntu 安装界面中,选择“Install Ubuntu”进行安装。 8. 设置您的语言和键盘布局并继续。 9. 在安装选项中,选择“Erase disk and install Ubuntu”选项将其用作独立的操作系统。 10. 执行一些其他基本设置,如用户名及密码,并等待 Ubuntu 的安装。 11. 一旦安装完成,重启虚拟机并启动 Ubuntu 16.04。 12. 您可以在 Ubuntu 中尝试一些预装的应用程序或者更多自己需要的应用去体验。 总体而言,安装 VirtualBoxUbuntu 16.04 只需要简单的几个步骤即可完成。这是 Linux 的初学者们了解 Linux 入门和操作的一个不错的选择并且高度隔离,可以放心的使用,~同时,不会对您的物理计算机造成任何影响。 ### 回答3: 首先,如果您还没有安装虚拟机软件VirtualBox,您需要先去VirtualBox官网上下载并安装VirtualBox。 安装完成之后,打开VirtualBox软件并点击“新建”来创建一个新的虚拟机,在弹出的“创建虚拟机”对话框中,输入虚拟机的名称和操作系统类型(这里选择Linux),然后选择您的操作系统的版本和位数(这里选择Ubuntu 64位)。 然后,您需要为虚拟机分配足够的内存和硬盘空间。建议将内存设置为2GB,硬盘空间设置为20GB。接下来,点击“创建”按钮,即可完成虚拟机的创建。 接下来,您需要将Ubuntu系统安装到虚拟机中。首先,下载Ubuntu 16.04镜像文件,并将其作为虚拟光盘挂载到虚拟机中。 然后,启动虚拟机,并选择从光盘启动。按照屏幕提示,选择Ubuntu系统的安装语言、时区和键盘布局。接着,您需要设置用户名和密码、磁盘分区和安装选项。安装完成后,重启虚拟机即可进入Ubuntu系统。 最后,您需要安装VirtualBox增强功能,在Ubuntu系统中打开终端,输入命令sudo apt-get update,然后再输入sudo apt-get install virtualbox-guest-dkms virtualbox-guest-x11 virtualbox-guest-utils来安装VirtualBox增强功能。安装完成后,重新启动虚拟机即可享受相关的增强功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值