打造自己的Android源码学习环境之二:在虚拟机中安装Ubuntu(上)

本篇主要针对Windows系统的读者,如果你用的已经是Linux系统,可以跳过此篇。

0. 安装虚拟机Virtual Box

VirtualBox的下载地址:https://www.virtualbox.org/wiki/Downloads

Windows版本的下载地址:http://download.virtualbox.org/virtualbox/5.1.14/VirtualBox-5.1.14-112924-Win.exe

目前最新的是5.1.14版本。

1. 下载Ubuntu镜像

可以从以下地址下载ubuntu系统镜像文件:
* (1) 网易的镜像:http://mirrors.163.com/ubuntu-releases/
* (2) Ubuntu官网:https://www.ubuntu.com/download/desktop
* (3) Ubuntu中文官网:http://cn.ubuntu.com/download/

最新的Ubuntu版本是16.10,代号Yakkety Yak,即2016年10月份的版本。
【可能会有问题】Ubuntu16.10下载地址:http://mirrors.163.com/ubuntu-releases/16.10/ubuntu-16.10-desktop-amd64.iso

【推荐安装Ubuntu16.04】下载地址:http://mirrors.163.com/ubuntu-releases/16.04/ubuntu-16.04-desktop-amd64.iso

【注:我用VirtualBox5.1.2安装Ubuntu16.10之后,安装VBoxGuestAdditions.iso的时候出现问题。升级到VirtualBox5.1.14之后,可以安装VBoxGuestAdditions.iso,但是Ubuntu系统总提示“发生错误”。
推荐使用VirtualBox5.1.14,安装Ubuntu15.04 或者 Ubuntu16.04】

关于Ubuntu版本的说明,可以参考:https://wiki.ubuntu.com/Releases
Ubuntu的版本采用x.y.z的格式,通常情况下,如果只有x.y,则表示x年y月发布的,例如14.04表示2014年4月发布。如果是x.y.z的形式,则表示是x.y的演进版本,例如14.04.1是2014年7月份发布的,14.04.5是2016年8月发布的。

Ubuntu版本与代号的对应关系(只是一部分):

Ubuntu版本 Ubuntu代号
17.04 Zesty Zapus
16.10 Yakkety Yak
16.04 Xenial Xerus
15.10 Wily Werewolf
15.04 Vivid Vervet
14.10 Utopic Unicorn
14.04 Trusty Tahr
13.10 Saucy Salamander
13.04 Raring Ringtail
12.10 Quantal Quetzal
12.04 Precise Pangolin
11.10 Oneiric Ocelot

2. 在虚拟机中安装Ubuntu系统

Step 1: 新建虚拟电脑

打开“Oracle VM VirtualBox”,“新建”,显示界面如下:

“名称”:自定义的名字,与其他虚拟系统区分开即可,例如命名为ubuntu64_200GB。
“类型”:Linux
“版本”:选“Ubuntu (64-bit)”
“内存大小:当前系统内存的30%~40%作为虚拟系统的内存,例如16GB内存,留给虚拟系统6GB内存。

点击“创建”,进入下一步。

Step 2: 选择虚拟硬盘大小为200GB或者更大

“文件位置”:选择将虚拟系统放在哪个硬盘分区中,那个分区要满足虚拟系统对硬盘大小的要求。
“文件大小”:设置为200GB或者更大。
“存储在物理硬盘上”:选择“动态分配”

从实际情况来看,安装一些必备软件、下载Android7.1.1r13的代码、编译之后,虚拟硬盘大小接近150GB了,所以预留充足的空间是必要的。其实设置的大一些也无妨,因为是“动态分配”,虚拟系统不是一下子就占用很大的硬盘空间。

点击“创建”,在Virtual Box中就创建了一个新的虚拟电脑(图中选中的那个),如下:

Step 3:设置虚拟电脑

为了方便主机系统和虚拟系统之间互操作,将“共享粘贴板”和“拖放”都设置为“双向”:

如果之前内存大小设置的不合适,这时还可以设置内存大小:

设置CPU:
处理器数量要小于实际的CPU数量。
运行峰值:100%。如果考虑运行虚拟系统时,主机系统也要正常工作,可以调低此值。为了编译Android源码,我选择了100%。

选择刚下载的ubuntu镜像文件(iso文件):
在启动虚拟电脑时会安装ubuntu系统。
如果此时不选择镜像文件,在启动虚拟电脑时也会提示选择。

设置共享文件夹:
“共享文件夹路径”:存放共享文件的地方
“共享文件夹名称”:此名称最好为英文,因为此文件夹名称还要在之后进行mount
如果双向共享,不要勾选“只读分配”。
为了打开系统后就能使用共享文件夹,勾选“自动挂载”。

其他设置使用默认选项即可。

Step 4:启动刚才创建的虚拟电脑

选中刚创建的“ubuntu64_200GB”,点击”启动“。

如果之前没有选择ubuntu镜像(iso文件),此时会弹出选择界面(如下),否则将会进入安装ubuntu系统的界面。

安装ubuntu的过程,请看下一篇。

3. 可能出现的问题

如果没有显示Ubuntu(64-bit),只显示了Ubuntu (32-bit),可能的原因是你的电脑禁用了“虚拟化技术”。
对于HP笔记本来说,按F10键进入BIOS,“系统设置”页,启用“虚拟化技术”,如下:

如果是“禁用”,则在virtualbox创建虚拟系统界面只有32bit的选项。
而且在虚拟化技术被禁用的情况下,用virtualbox创建的guest系统总是反复重启,停在输入账户密码界面。

参考:https://zhidao.baidu.com/question/1732222046289666187.html

———————– 分 割 线 ———————–
本系列文章如下:

  • (1)《打造自己的Android源码学习环境之一:序》
  • (2)《打造自己的Android源码学习环境之二:在虚拟机中安装Ubuntu(上)》
  • (3)《打造自己的Android源码学习环境之三:在虚拟机中安装Ubuntu(下)》
  • (4)《打造自己的Android源码学习环境之四:下载Android源码》
  • (5)《打造自己的Android源码学习环境之五:编译Android源码》
  • (6)《打造自己的Android源码学习环境之六:运行Android模拟器》

打造自己的Android源码学习环境之二:在虚拟机中安装Ubuntu(上)相关推荐

  1. Android源码学习------SystemUI(二)

    SystemUI----AndroidManifest文件 AndroidManifest是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中 ...

  2. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...

  3. 从零开始搭建Ubuntu 环境下的Android 源码开发环境

    本文从一个干净的Ubuntu 10.04 操作系统出发,一步一步引导你搭建自己的基于eclipse IDE 的Android源码开发环境. 正文会包含一下这些内容: 获得源码 编译源码准备工作 编译工 ...

  4. Android源码学习之浅析SystemServer脉络

    在之前的博文中<Android源码学习之如何创建使用JNI>和<Android源码学习之如何使用eclipse+NDK>中,浅谈了如何创建使用JNI和如何利用NDK工具开发创建 ...

  5. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

  6. 【Android 源码学习】 init启动

    目录 Android 源码学习 init启动 从main.cpp开始 init.cpp 部分逻辑 init启动zygote 属性服务 总结 Android 源码学习 init启动 Android 11 ...

  7. 【Android 源码学习】Zygote启动原理

    Android 源码学习 Zygote启动原理 望舒课堂 Zygote进程启动原理学习记录整理. Zygote简介 Zygote是进程在init进程启动时创建的,进程本身是app_process,来源 ...

  8. 【Android 源码学习】系统架构和启动流程

    Android 源码学习 系统架构和启动流程 望舒课堂 学习记录整理.以及以下参考文章的整理汇总.便于我个人的学习记录. 感谢IngresGe,Gityuan的精彩文章.为我们这些初探android系 ...

  9. 【Android 源码学习】SystemServer启动原理

    Android 源码学习 SystemServer启动原理 望舒课堂 SystemServer进程启动原理学习记录整理. 参考文章: Android系统启动流程(三)解析SyetemServer进程启 ...

  10. android源码学习-Toast实现原理讲解

    前言: 前些日志QQ群有朋友发了一个Toast的崩溃日志.Toast如此简单的用法怎么会崩溃呢?所以顺便就学习了一下Toast在源码中的实现,不算复杂,但内容挺多的,这里就来分享一下,方便读者. 一. ...

最新文章

  1. java中的排序算法——归并排序
  2. mysql设置最大连接数为200_设置mysql最大连接数的方法
  3. ClickHouse常见问题及其解决方案
  4. python 列表 元祖 字典,Python 列表、元组、字典
  5. (2)散列表是怎么进行查找的
  6. python基础小结(麻瓜图文总结版)
  7. JavaAgent学习笔记
  8. 一种结合颜色特征和区域生长的疾病斑图像分割方法(复杂环境下分割效果好)
  9. 高通GPS芯片WGR7640的驱动
  10. 国家海洋局事业单位公开招聘考试大纲2016
  11. 共享计算机扫描,windows系统下怎么共享扫描仪?
  12. python在视频上方加字_如何用python 在视频上添加自己的logo
  13. 易飞ERP--自定义报表之采购价格分析功能表
  14. 用c语言编码rna合成蛋白质,蛋白质生物合成过程中为什么从N端到C端
  15. 在c语言中保留字是有专门含义和作用的,c语言中的关键字和保留字的区别?
  16. ajax高级程序设计_javascript高级程序设计核心知识总结
  17. 为什么博图中放置按下按钮无反应_为什么点击了没反应,每个按钮都是
  18. PDF编辑搞不定?迅读PDF大师,了解一下?
  19. MySql学习笔记——压测工具slap(二十九)
  20. 【毕业设计】深度学习人体语义分割在弹幕防遮挡上的实现 - python

热门文章

  1. Phpmyadmin的一次渗透测试
  2. 从用户端到后台系统,严选分销教会我这些事
  3. [SDOI2009]HH的项链 BZOJ1878
  4. JS中的变量和输入输出
  5. POJ 2686 Traveling by Stagecoach
  6. zoj 3261 逆向并查集+离线处理
  7. 阿里云 POSTFIX 邮件服务 PHP
  8. ajax交互的两种方式:html与xml
  9. 小强地狱(Bug Hell)——优先级和缺陷修改的平衡
  10. win mysql 命令行提示_数据分析进阶——mysql基本语句