前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Build Android Source Code on Mac

Build Android Source Code on Mac

作者头像
宅男潇涧
发布2018-08-01 14:56:00
6870
发布2018-08-01 14:56:00
举报
文章被收录于专栏:潇涧技术专栏潇涧技术专栏

本文记录下搭建Android源码编译环境的流程。

趁着国庆长假,抽出些时间来记录下最近倒腾的一些内容,第一个需要记录的自然是Android源码编译的流程。上班第一天就干了一件事,编译Android 6.0源码,第二天就是编译Flyme系统啦!但是编完系统之后刷到PRO6里面还有点小鸡冻呢!

Ubuntu系统下的Android源码编译环境搭建

如果是在Ubuntu系统下进行编译的话,中文文档请参考自己动手编译最新Android源码及SDK或者Gityuan写的编译最新的7.0源码的文章搭建Android 7.0的源码环境,英文文档主要看Google官方的文档,包括前提要求篇环境准备篇以及源码编译篇,如果磁盘空间充足并且网络环境通畅的话,编译通过是没啥问题的。

特别需要注意以下几点: 0.磁盘空间的大小 按照Google官方的说法是,checkout代码至少需要100GB空间,单个编译的话至少需要150GB空间,多类型的编译的话至少需要200GB空间(实际我下载完代码之后大约占用了50GB左右)。而且,如果你是在虚拟机的Linux中编译的话,还需要满足至少有16GB的RAM/swap。

1.Ubuntu系统的版本和JDK的版本 Ubuntu系统推荐使用14.04,而且安装好系统之后如果有提示软件更新,建议更新一下。此外,推荐在设置中设置软件更新的远程服务器,将其设置为China下的aliyun服务器,这样速度会快很多。

JDK版本需要根据你要编译的Android系统版本来确定,而且还需要注意是Oracle JDK还是Open JDK!可以在系统中多安装几个版本的JDK,以后使用update-alternatives --config命令来切换。

2.Android源码的分支 详细的分支列表可以在这里查看,当然,repo init的时候也可以不指定分支。

Mac系统下的Android源码编译环境搭建

关于是否在自己的MBP上搭建android编译环境的问题我纠结了很久,原因是自己的磁盘剩余空间真的不多了,后来在网上找到了Mac笔记本的扩容卡,对于我这款MBP来说最大可以扩容256GB!虽然有点贵,但是,为了Android,豁出去啦!

在Mac系统上进行Android源码编译的话可以参考Mac下设置Android源代码编译环境这篇文章,主要步骤分别是创建大小写敏感的磁盘、安装依赖包、下载Android源码然后编译就行了。

对于第一步,创建磁盘操作我是直接将买来的扩容卡格式化成OS X Extended(Case-sensitive Journaled)格式。

第二步是安装JDK、Xcode、MacPorts,这三个在我当前的系统中都已经有了,检查下版本是否可以就行,之后就是通过MacPorts安装几个依赖包,POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

这一步我遇到了一个坑,简单描述下:我目前的系统一直以来都是通过系统的更新而升级过来的,所以大概有2年左右的时间没有重装了(嗯,我就是在夸Mac系统好☺️),系统环境也慢慢变得相当复杂了。之前用MacPorts,后来用Homebrew,但是大家都知道brew doctor的时候总是会提醒MacPorts如何如何的,建议你移动它的位置,后来我貌似是移动了还是怎么的,系统的MacPorts不能正常工作了,利用安装工具反复安装了很多次都卡在了最后的Running package scripts这个步骤,访问外国网站状态下安装也是如此,最后的解决方案是利用MacPorts的源码安装一次就好啦!还有就是,不管你的MacPorts是否正常,建议执行一次sudo ports -v selfupdate进行更新升级一次,如果失败可能是网络连接的问题,可以试试MacPorts的其他镜像。

第三步是下载Android源码,大家都知道在国内的话需要找镜像,我选择的是清华大学的TUNA镜像。建议下载它的初始化包,大约20多GB,待解压并且完成repo sync之后建议将这个初始化包保存到移动硬盘中存起来,然后删除本地的初始化包,这样可以省下大量的磁盘空间。

对于Mac系统最后还需要在~/.bash_profile中设置ulimit -S -n 1024以增加最大文件打开数量。

最后一步是执行编译,lunch时我选择aosp_arm64_eng为target,并启动6个线程进行编译make -j6

Anyway,最后我还是没能在Mac上编译成功,貌似机器的配置还是不够,算了,还是用来看代码吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/10/3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档