搭建编译环境

$ sudo apt-get update

$ sudo apt-get install openjdk-8-jdk

$ 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

安装 Repo

Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。

要安装 Repo,请执行以下操作:

确保主目录下有一个 bin/ 目录,并且该目录包含在路径中 $ mkdir ~/bin

$ PATH=~/bin:$PATH

下载 Repo 工具,并确保它可执行: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

## 如果上述 URL 不可访问,可以用下面的:

## curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo

初始同步

第一次同步数据量特别大,如果网络不稳定,中间失败就要从头再来了。科大源 提供了打包的 AOSP 镜像,为一个 tar 包,大约 25G(android O,单文件 25G,注意磁盘格式要支持)。这样 就可以通过 HTTP 的方式下载,该方法支持断点续传。

创建源码目录 $ mkdir Android

$ cd Android

下载源码 $ wget http://ipv6.mirrors.ustc.edu.cn/aosp-monthly/aosp-latest.tar # 这里使用ipv6下载初始化包

$ tar -vxzf aosp-latest.tar

$ cd aosp #这时ls什么也看不到,因为只有一个隐藏的.repo目录

修改同步地址 修改.repo/manifests.git/config,将 url = https://android.googlesource.com/platform/manifest

改成 url = git://ipv6.mirrors.ustc.edu.cn/aosp/platform/manifest

即可。

同步 $ repo sync # 同步

在执行repo sync时出错 error: .repo/manifests/: contains uncommitted changes

网上的解决办法是: $ cd .repo/manifests

$ git stash

$ git clean -f -d

但是我的还是未解决,最后找到一个回答 git config core.filemode false

(加入忽略文件权限的配置)

再输入repo sync总算成功了,等待数十分钟的初始化,完成后得到aosp源码了

编译

设置环境 $ source build/envsetup.sh

选择目标 $ lunch aosp_arm-eng

编译代码 $ make -j4

模拟器运行

$ emulator

emulator位于Android/aosp/prebuilts/android-emulator/linux-x86_64/目录下。从控制台打开需要将此目录加到系统PATH环境变量中,或者在当前控制台下执行

$ source build/envsetup.sh

启动Android模拟器需要四个文件,它们分别是zImage、system.img、userdata.img和ramdisk.img,其中,前面一个是Linux内核镜像文件,而后面三个是Android系统镜像文件。如果不带任何参数来运行emulator命令,那么Android模拟器默认使用的zImage文件是位于源代码根目录下的子目录out/host/linux-x86/bin中的kernel-qemu文件,而默认使用的system.img、userdata.img和ramdisk.img文件则位于ANDROID_PRODUCT_OUT目录中。ANDROID_PRODUCT_OUT是一个环境变量,将它的值设置为Android源代码编译结果输出目录;如果不设置ANDROID_PRODUCT_OUT环境变量,就需要指定上述四个文件来启动Android模拟器,如下所示:

$ emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img

android+5+镜像,1 下载AOSP(Android)镜像相关推荐

  1. 利用阿里云容器镜像服务下载gcr.io镜像

    背景 由于你懂的原因,国内是没有办法下载gcr.io镜像的,利用docker hub构建GitHub现在又要钱,所以这里利用阿里云容器镜像服务下载gcr.io镜像. 步骤 这里以gcr.io/tekt ...

  2. android注册的模板下载地址,Android --LoginActivity模板登录

    Android Studio使用自带LoginActivity模板,制作登录界面 登录界面功能: 1.记住表单账户密码,并自动登录 //获得sp实例对象 sp = this.getSharedPref ...

  3. centos镜像 from_下载 CentOS 7 镜像文件

    CentOS 7 镜像文件的下载地址 点击"Get CentOS Now" 点击想要下载的ISO镜像,(目前仅有"DVD ISO"和"Minimal ...

  4. android文件删除工具下载,Coolmuster Android Cleaner下载

          Coolmuster Android Cleaner官方版是很容易使用且实用性也很高的手机深度缓存清理软件,Coolmuster Android Cleaner最新版能够清除应用程序缓存, ...

  5. 【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码

    下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...

  6. android平台与ios下载地址,Android与iOS用户下载时间分布

    根据91手机娱乐数据统计,我们特别将Android系统用户的下载行为与IOS系统用户的下载行为进行了对比分析,按一天24小时来看,我们发现Android与iOS系统用户下载的高峰点与低峰点几乎雷同,不 ...

  7. python sdklive2d_【Android】用Cubism 2制作自己的Live2D——android sdk样本的下载与Android studio编译!...

    前言- 在浏览Live2d说明书的时候我无意中发现了一个有趣的东西,就是android sdk中居然自带动态壁纸!那就让我们来试试吧,说明书此页的网址连接--中文版||日文版 Android开发所必需 ...

  8. 【Android】用Cubism 2制作自己的Live2D——android sdk样本的下载与Android studio编译!...

    前言- 在浏览Live2d说明书的时候我无意中发现了一个有趣的东西,就是android sdk中居然自带动态壁纸!那就让我们来试试吧,说明书此页的网址连接--中文版||日文版 Android开发所必需 ...

  9. python sdklive2d_用Cubism 2制作自己的Live2D(尝试向)——android sdk样本的下载与Android studio编译!...

    前言- 在浏览Live2d说明书的时候我无意中发现了一个有趣的东西,就是android sdk中居然自带动态壁纸!那就让我们来试试吧,说明书此页的网址连接--中文版||日文版 Android开发所必需 ...

最新文章

  1. csdn如何插入多列表格?
  2. 从程序员角度分析,到底“12306”的架构到底有多牛逼?
  3. Mac安装mysql数据库【亲测有用】
  4. 【转】sqlserver使用sql导出索引
  5. Python 集合定义及运算
  6. java canvas 动态画图_canvas前端动图如何实现
  7. STM32学习:按键控制LED
  8. python AES对称加密文件、解密文件
  9. c语言的真随机,怎样让c语言中的随机函数真正随机?
  10. 二叉树的简单应用--表达式树
  11. nginx常见配置详解
  12. 再谈内核模块加载(二)—模块加载流程(上)
  13. 数学基础-概率论01(离散型分布)
  14. BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
  15. layuiTable固定列
  16. 手机上有哪些超棒超实用的APP让你觉得相见恨晚
  17. 在线预览doc,docx文档
  18. 美术集速写模特姿势参考大全,又酷又飒的姿势你画过了吗?
  19. java 获取当前时间的三种方法是什么
  20. Jetpack Compose - Icon

热门文章

  1. 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
  2. 【Flink】Flink使用withParameters(Configuration)传参
  3. Spring : Spring Aop 获取增强(通知)
  4. MySQL之索引的创建和删除
  5. oracle rodo 查看大小,Exadata — platforma bazodanowa | Oracle Polska
  6. LongAdder和AtomicLong哪个性能更好,为什么?
  7. 如何才能写出一手逼疯同事的烂代码?
  8. c语言双链表从右向左遍历,有没有大佬在的,我这双向链表怎么没办法遍历
  9. linux编码安装mysql_在Ubuntu 15.10下安装mysql设置数据库编码
  10. linux ftp 警告暗号话,ssh,FTP到远程服务器时,显示自定义的警告信息