ubuntu1204源码
A. 如何用ubuntu 12.04 32bit 编译android 4.4.4
系统环境
系统:Ubuntu12.04 64位系统。
源码:Android4.4源码。
选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾。
步骤
配置jdk6
Android官方给的步骤是用OpenJdk,实测是不行的。网上找到https://jdk6.java.net/download.html
这个网址有需要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增加自己的jdk
bin目录到PATH里面。同时新增如下环境变量:
CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir
然后执行如下命令,设置系统的默认jdk:
$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives --config java
安装软件包
能装的都要装上,以免编译失败,又要回过头重装,如下:
$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo
libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev
zlib1g-dev ia32-libs libxml2-utils lzma
编译源码
到源码目录下,如下:
$ source build/envsetup.sh
$ lunch
选择arm平台。
$ make -jn
n为CPU个数的两倍,主要是提高编译速度。
可能的错误
编译过程碰到如下错误:
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
一般情况是因为前面的javap没有配置所致。如果必须的软件包没有安装,也会有类似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包即可。
B. 如何获取ubuntu源代码
1、在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项
2、使用如下命令获取xxx源码包的详细信息:
sudo apt-cache showsrc xxx这用来查询当前镜像站点中是否有该源码包。
3、源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。
sudo apt-get source xxx 命令来获取源码包,它会将源码包下载到用户当前目录