Android 自己动手编译android源码
来源:互联网 发布:淘宝怎么看卖家信誉 编辑:程序博客网 时间:2024/05/01 21:56
最近尝试编译android源码,中间遇到一些问题,记录一下。
0x01:
编译之前,强烈建议先看看google的[官方文档],哪怕是使用翻译工具也要看完。
其中提到的编译环境是Ubuntu LTS (14.04),check源码需要100g空间,编译一个版本需要150g空间,那么我们建立虚拟机的时候就要满足这些要求。强烈建议多分配磁盘!!!
下面按照官方文档的要求来操作。
0x02: 初始化环境
先考虑清楚你要编译的版本,然后根据版本要求去配置环境,我选择的是4.4.4的。
第一步:安装jdk
Java 7: For the latest version of AndroidJava 6: for Gingerbread through KitKatJava 5: for Cupcake through Froyo
我是4.4.4(KitKat),所以安装java6就好。
目前ubuntu已经不支持命令行安装jdk了,故不采用google的文档,自己去oracle的官网下载安装包,我下载的是:jdk-6u45-linux-x64.bin
将文件copy到虚拟机的 /usr/lib/jvm/java 目录,执行如下命令安装:
sudo chmod u+x /usr/lib/jvm/java/jdk1.6.5_45.bin/usr/lib/jvm/java/jdk1.6.5_45.bin
安装完毕后在同级目录下会产生jdk1.6.5xxx文件夹,下面配置环境变量:
gedit ~/.bashrc
在最下面添加:
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_45PATH=$PATH:${JAVA_HOME}/binCLASSPATH=$CLASSPATH:${JAVA_HOME}/lib
保存后执行:
source ~/.bashrc
然后运行:
java -version
输出:
java version "1.6.0_45"Java(TM) SE Runtime Environment (build 1.6.0_45-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
安装成功。
第二步:安装依赖包
按照官方文档执行:
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
报错:
g++-multilib : Depends: gcc-multilib (>= 4:4.8.2-1ubuntu6) but it is not going to be installed
是安装包依赖问题,用如下分别安装方式解决:
sudo apt-get install gccsudo apt-get install g++-multilibsudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 libreadline6-dev:i386 g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-devsudo apt-get install lzopsudo apt-get install keychain
分别安装后,再执官方文档的命令,看看是否有遗漏:
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
此时应该能够顺利安装完成。
官方文档还有很多其他配置,可以参考着配置,我没有再去配置其他。
0x03:下载源码
这一步没有啥好说的,按照[官方文档]操作即可,其中我指定了下载android-4.4.4_r2:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r2
0x04:开始编译
这一步也没啥好说的,按照[官方文档]操作即可。其中遇到make版本过高问题:
You are using version 4.0 of make. Android can only be built by versions 3.81 and 3.82.
没办法,只能降级回来了,先remove掉4.0的make:
sudo apt-get remove make
从[这里]去下载3.81的make安装包,我下载是i386的deb包。
下载后执行命令安装:
sudo dpkg -i make*.deb
至此,再执行编译,应该就没有问题了。
- 自己动手编译Android源码
- Android 自己动手编译android源码
- 自己动手编译Android 8.0源码
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译Android源码(超详细)
- 自己动手编译Android源码(超详细)
- 自己动手编译最新Android源码及SDK
- 自己动手编译最新Android源码及SDK
- 自己动手编译Android源码(超详细)
- 自己动手调试Android源码
- 自己动手编译Android内核-美化包
- 不用Ubuntu,自己动手下载Android源码
- 自己动手调试Android源码(超简单)
- 编译android源码5---编译android源码
- android源码的编译
- Android源码编译
- [LeetCode][Java] Remove Duplicates from Sorted Array
- 翻转
- iOS网络协议----HTTP/TCP/IP浅析
- 树莓派自动登陆
- 转载邮件失败!javax.mail.AuthenticationFailedException: 535 Error: authentication
- Android 自己动手编译android源码
- B树、红黑树简单概念
- C语言 printf
- java底层的深入理解——————堆栈
- 关于堆,栈等内存的使用
- 操作符重载:什么时候返回引用
- NYOJ 844 A+B Problem(V)
- c++ primer读书笔记-第十二章 类
- iOS接地气的面试题