打造自己的Android源码学习环境之二:在虚拟机中安装Ubuntu(上)
打造自己的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(上)相关推荐
- Android源码学习------SystemUI(二)
SystemUI----AndroidManifest文件 AndroidManifest是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中 ...
- 【Android开发】构建Android源码编译环境
原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...
- 从零开始搭建Ubuntu 环境下的Android 源码开发环境
本文从一个干净的Ubuntu 10.04 操作系统出发,一步一步引导你搭建自己的基于eclipse IDE 的Android源码开发环境. 正文会包含一下这些内容: 获得源码 编译源码准备工作 编译工 ...
- Android源码学习之浅析SystemServer脉络
在之前的博文中<Android源码学习之如何创建使用JNI>和<Android源码学习之如何使用eclipse+NDK>中,浅谈了如何创建使用JNI和如何利用NDK工具开发创建 ...
- Android源码编译环境搭建教程 (一) - Ubuntu系统构建
Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...
- 【Android 源码学习】 init启动
目录 Android 源码学习 init启动 从main.cpp开始 init.cpp 部分逻辑 init启动zygote 属性服务 总结 Android 源码学习 init启动 Android 11 ...
- 【Android 源码学习】Zygote启动原理
Android 源码学习 Zygote启动原理 望舒课堂 Zygote进程启动原理学习记录整理. Zygote简介 Zygote是进程在init进程启动时创建的,进程本身是app_process,来源 ...
- 【Android 源码学习】系统架构和启动流程
Android 源码学习 系统架构和启动流程 望舒课堂 学习记录整理.以及以下参考文章的整理汇总.便于我个人的学习记录. 感谢IngresGe,Gityuan的精彩文章.为我们这些初探android系 ...
- 【Android 源码学习】SystemServer启动原理
Android 源码学习 SystemServer启动原理 望舒课堂 SystemServer进程启动原理学习记录整理. 参考文章: Android系统启动流程(三)解析SyetemServer进程启 ...
- android源码学习-Toast实现原理讲解
前言: 前些日志QQ群有朋友发了一个Toast的崩溃日志.Toast如此简单的用法怎么会崩溃呢?所以顺便就学习了一下Toast在源码中的实现,不算复杂,但内容挺多的,这里就来分享一下,方便读者. 一. ...
最新文章
- java中的排序算法——归并排序
- mysql设置最大连接数为200_设置mysql最大连接数的方法
- ClickHouse常见问题及其解决方案
- python 列表 元祖 字典,Python 列表、元组、字典
- (2)散列表是怎么进行查找的
- python基础小结(麻瓜图文总结版)
- JavaAgent学习笔记
- 一种结合颜色特征和区域生长的疾病斑图像分割方法(复杂环境下分割效果好)
- 高通GPS芯片WGR7640的驱动
- 国家海洋局事业单位公开招聘考试大纲2016
- 共享计算机扫描,windows系统下怎么共享扫描仪?
- python在视频上方加字_如何用python 在视频上添加自己的logo
- 易飞ERP--自定义报表之采购价格分析功能表
- 用c语言编码rna合成蛋白质,蛋白质生物合成过程中为什么从N端到C端
- 在c语言中保留字是有专门含义和作用的,c语言中的关键字和保留字的区别?
- ajax高级程序设计_javascript高级程序设计核心知识总结
- 为什么博图中放置按下按钮无反应_为什么点击了没反应,每个按钮都是
- PDF编辑搞不定?迅读PDF大师,了解一下?
- MySql学习笔记——压测工具slap(二十九)
- 【毕业设计】深度学习人体语义分割在弹幕防遮挡上的实现 - python