Ubuntu14.04搭建android源码编译环境
2016-05-11 10:21
531 查看
之前编译环境是刚进公司的时候老同志帮我搞定的,现在离职以后第一次要遍android源码,提供源码的人还只给了我一个地址https://source.android.com/source/initializing.html,蛋疼的是需要翻墙才能登,没办法只能问万能的度娘,于是乎找到这篇博客,感谢这位大神解了我燃眉之急,小弟在此谢过,贴上原博路径:基于Ubuntu14.04系统搭建Android源码编译环境http://www.kaelli.com/10.html
在下载完了Android源码后,当然下一步工作就是编译源码了。然而目前我们手头只有一个装载着源码却没有编译环境的Ubuntu系统,所以还是先把编译环境给搞定吧。
同样的,Google官方也提供了非常详尽的文档,英语水平过关的朋友可以参考https://source.android.com/source/initializing.html。然而,同样的,还是有很多人的英语水平比较捉急,所以继续看这篇文章吧。
Google推荐我们使用最新的LTS版Ubuntu系统来编译源码,而目前最新的就是Ubuntu 14.04了,当然得是64位的。貌似使用 OS X也可以编译,然而我自己并没有使用Mac,所以就不在考虑之内了。
安装JDK
Android的应用层以及Framework层的一部分都是用Java写的,所以肯定得安装JDK了。在Android 4.4和更老的版本中,使用的是Oracle JDK,而到了Android 5.0以后,Google将其换为OpenJDK(也许是为了专利考虑?),而在Ubuntu中安装OpenJDK是特别容易的:
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
安装后,需要把Java环境设置一下:
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
如果你想编译老一些的版本,那么就会需要安装更老的OracleJDK了,从Gingerbread (2.3)到Kitkat(4.4)需要的是JDK6,而更老的就要用JDK5了。作为一个只是研究Android源码的人来说,应该不需要考虑这些问题了。而如果是一些因为工作需要而要编译老版本的Android,那么就真的要去找老版本的JDK了。
安装编译Android需要的包
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
这一步在Ubuntu 14.04系统里显得是如此简单,我还很清楚的记得,如果是10.04或者12.04系统,这一步需要安装的包会非常多,大概会有几十个。当然,也许这一步并不会特别顺利,比如下图:
好吧,让人蛋疼的依赖问题来了,这是用Linux最不爽的地方之一了。然而我们并无其他选择,只能想办法解决这种问题了。最简单的尝试是,自己手动安装一下gcc-multilib:
$ sudo apt-get install gcc-multilib
$ sudo apt-get install g++-multilib
搞定了这个问题后,再重新执行一遍之前的安装命令。
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
这次应该会顺利的安装所有的依赖包,安装完了后,有强迫症的我会再执行一遍安装命令,来确认一下是否完全搞定:
好吧,所有的包确实已经安装完毕了。
到这里,实际上你的Ubuntu 14.04系统已经可以很顺利的编译Android源码了。结合之前下载Android 5.1.1_r8源码,就可以轻松编译,来感受一下与Android应用层开发完全不一样的体验了。
在下载完了Android源码后,当然下一步工作就是编译源码了。然而目前我们手头只有一个装载着源码却没有编译环境的Ubuntu系统,所以还是先把编译环境给搞定吧。
同样的,Google官方也提供了非常详尽的文档,英语水平过关的朋友可以参考https://source.android.com/source/initializing.html。然而,同样的,还是有很多人的英语水平比较捉急,所以继续看这篇文章吧。
Google推荐我们使用最新的LTS版Ubuntu系统来编译源码,而目前最新的就是Ubuntu 14.04了,当然得是64位的。貌似使用 OS X也可以编译,然而我自己并没有使用Mac,所以就不在考虑之内了。
安装JDK
Android的应用层以及Framework层的一部分都是用Java写的,所以肯定得安装JDK了。在Android 4.4和更老的版本中,使用的是Oracle JDK,而到了Android 5.0以后,Google将其换为OpenJDK(也许是为了专利考虑?),而在Ubuntu中安装OpenJDK是特别容易的:
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
安装后,需要把Java环境设置一下:
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
如果你想编译老一些的版本,那么就会需要安装更老的OracleJDK了,从Gingerbread (2.3)到Kitkat(4.4)需要的是JDK6,而更老的就要用JDK5了。作为一个只是研究Android源码的人来说,应该不需要考虑这些问题了。而如果是一些因为工作需要而要编译老版本的Android,那么就真的要去找老版本的JDK了。
安装编译Android需要的包
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
这一步在Ubuntu 14.04系统里显得是如此简单,我还很清楚的记得,如果是10.04或者12.04系统,这一步需要安装的包会非常多,大概会有几十个。当然,也许这一步并不会特别顺利,比如下图:
好吧,让人蛋疼的依赖问题来了,这是用Linux最不爽的地方之一了。然而我们并无其他选择,只能想办法解决这种问题了。最简单的尝试是,自己手动安装一下gcc-multilib:
$ sudo apt-get install gcc-multilib
$ sudo apt-get install g++-multilib
搞定了这个问题后,再重新执行一遍之前的安装命令。
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
这次应该会顺利的安装所有的依赖包,安装完了后,有强迫症的我会再执行一遍安装命令,来确认一下是否完全搞定:
好吧,所有的包确实已经安装完毕了。
到这里,实际上你的Ubuntu 14.04系统已经可以很顺利的编译Android源码了。结合之前下载Android 5.1.1_r8源码,就可以轻松编译,来感受一下与Android应用层开发完全不一样的体验了。
相关文章推荐
- ubuntu安装Anaconda3后切换使用原始python
- Android - view tag isn't correct on view:null
- Android笔记 圆形ImageView
- 【转】Android使用XML Shape绘制带阴影效果的圆形按钮
- android客户端学习-ViewUtils
- Android 日期工具类DateUtil
- Android Studio运行时gradle错误
- Android App开发中创建Fragment组件的教程
- Android 主线程 子线程
- 开始第一天的博客学习
- 获取android手机内外部存储空间的参数 && 如何决定一个apk的安装位置 && APK安装过程及原理详解
- Android官方文档之Services
- [Android基础系列]重新审视ContentProvider
- android 开发技巧、问题汇总
- Android全局的一些设置
- Android抽象布局——include、merge 、ViewStub
- Android内存优化之OOM
- Android 内功心法(1.5)——android常用设计模式之命令模式
- [置顶] android webview与js交互(动态添加js)
- 【转】Android进阶2之 阴影制作(Shadow)