2020-02-21
关键字:ubuntu编译Android4.4、Android编译依赖库
本篇文章记录一下笔者自行搭建 ubuntu 系统并成功编译 Android 4.4 源码的过程。
笔者这边选择使用虚拟机来开发,因为说实话对于我们这些普通开发者来说,做软件开发还是离不开windows的。
ubuntu要选择 14.04.06_amd64 的版本。还有一个 i386 的版本,可千万不能选,笔者一开始就是用的 i386,然后导致交叉编译链工具无法运行。ubuntu desktop 和 ubuntu server 差别其实不大。不过笔者比较喜欢 ubuntu server。
关于 ubuntu 镜像的下载大家可以自行在网上查找。如果不想找或找不到合适的,笔者推荐上阿里巴巴开源镜像网站去下载:
https://developer.aliyun.com/mirror/
接下来就是虚拟机的安装了,笔者选择 VMWare 来安装虚拟机。关于虚拟机的安装就不在此赘述了。
ubuntu 系统安装好以后就来配置一下系统环境。
首先先确保网络正常。网络这一块 ubuntu14.04 中的配置一般都是好的,如果是安装虚拟机的,建议网络配置方式选择“桥接模式”。
在确保自己的网络正常的情况下,如果发现配置了桥接模式以后怎么都上不了网,甚至拿不到IP地址。可以去设置一下vmware的网络配置
自己手动选择一下网络通道。
在网络问题解决以后就先来安装一下 SSH 服务。
其实在 ubuntu server 安装过程中就会弹出选择框让你选择一些预置服务的,其中就包括有 SSH 等常用工具。
如果你在安装系统时没有装上,则现在可以手动安装一下。一般 ssh 客户端都是标配,这里我们仅需安装一下服务端:
sudo apt-get install -y openssh-server
安装好以后就可以直接使用的了,如果不行直接重启一下ubuntu系统暴力解决就是了。
后续强烈建议通过 ssh 在 windows 中连接来控制,虚拟机中的 ubuntu 控制黑框实在是太难用了。
接下来安装一下 samba 服务。这个服务同样在 ubuntu 安装过程中可以预置安装。手动安装的命令如下:
sudo apt-get install -y samba samba-common
安装好以后来配置一下。
sudo vim /etc/samba/smb.conf
在文件的末尾添加以下信息:
#for windows [share] comment = shared workspace for windows. browseable = yes path = /home/chorm create mask = 0666 directory mask = 0777 force users = chorm force group = chorm public = yes available = yes writable = yes
上面标红的部分需要填你自己的信息。
然后再翻到上面一点,添加上如下信息:
# Allow users who‘ve been granted usershare privileges to create # public shares, not just authenticated ones usershare allow guests = yes follow symlinks = yes wide links = yes unix extensions = no
主要是添加上面标红的三行,其余信息是 smb.conf 中已有的信息。这里的配置是为了解决 ubuntu 系统中的软链接在 samba 上无权限访问的问题。
然后重启一下 samba 服务以生效配置:
sudo service samba restart
再然后就到 windows 中检查 samba 的工作情况了:
直接在我的电脑地址栏中键入 ubuntu 的地址回车即可,通常都能打开如下画面:
如果很不幸,你在敲下回车以后提示 windows 无法访问错误,可以尝试按如下步骤解决:
首先打开 windows 中的管理工具,按如下步骤操作,将 webclient 服务运行起来:
接着再去到文件和共享中心,将文件共享和网络发现打开:
再然后打开 windows 的注册表:
如此,应该就能通过 samba 在 windows 中访问 ubuntu 中的指定目录的了。
接着去配置一下 ubuntu 的 apt 源。默认的源就很不错,当然不排除有些同学的网络环境访问起默认源来速度会非常慢的情况。笔者办公室的网络访问默认源的速度倒是很快,但家里的网络就巨慢。笔者以默认源为准了,在默认源的末尾添加一条源信息:
#chorm added deb http://us.archive.ubuntu.com/ubuntu trusty main universe
这条源是用来安装 minw32 工具用的。
保存以后更新一下源:
sudo apt-get update
再然后终于到了 Android 4.4 编译依赖库的安装了。
sudo apt-get install -y git sudo apt-get install -y gcc sudo apt-get install -y lzop sudo apt-get install -y gnupg sudo apt-get install -y flex sudo apt-get install -y bison sudo apt-get install -y gperf sudo apt-get install -y build-essential sudo apt-get install -y zip sudo apt-get install -y curl sudo apt-get install -y libc6-dev sudo apt-get install -y libncurses5-dev:i386 sudo apt-get install -y x11proto-core-dev sudo apt-get install -y libx11-dev:i386 sudo apt-get install -y libreadline6-dev:i386 sudo apt-get install -y libgl1-mesa-glx:i386 sudo apt-get install -y libgl1-mesa-dev sudo apt-get install -y g++-multilib sudo apt-get install -y tofrodos sudo apt-get install -y python-markdown sudo apt-get install -y libxml2-utils sudo apt-get install -y xsltproc sudo apt-get install -y zlib1g-dev:i386 sudo apt-get install -y mingw32
以上命令,强烈建议一条一条手动复制粘贴执行,以确保每一项都成功安装上。逐条手动安装虽然繁琐,但可以确保结果,有错排错,无错心安。
在所有依赖库都安装完以后再去配置 jdk 环境。android 4.4 需要 jdk1.6 的环境。jdk环境的配置就简单了,大家可以自行搞定。如果实在找不到,笔者这里可以提供一个:
链接:https://pan.baidu.com/s/1IdsqtRR1gBfqVgv4c1IWaA 提取码:tguw
jdk安装好以后建议将它添加进默认环境变量中,反正也是经常要用的:
sudo vim /etc/profile
在末尾添加如下信息:
#add by chorm export PATH="/usr/toolchain/jdk1.6.0_29/bin:$PATH"
上面标红的信息要以你们自己的实际路径为准。
以上,就是 android 4.4 编译环境的全部配置内容了。接下来终于可以下载源代码来编译了。
关于 Android 的源代码,就需要各位自行去准备了。
然后再额外提一下配置 git 服务器的方式。配置方式非常简单,一条命令搞定:
git init --bare my_android.git/
这条命令会将 my_android.git 目录初始化为代码服务器仓库。初始化好以后就可以通过 git clone 命令来管控代码了。关于 Git 的更详细知识,请同学自行参阅相关资料,这里强烈推荐 廖雪峰 老师的 Git 课程,特别棒。
https://www.liaoxuefeng.com/wiki/896043488029600
至此,我们终于可以愉快地 make otapackage 了。
注:以上内容是笔者经自己手里的 android 4.4 源代码编译通过了的,考虑到不同源码有可能存在的差异性,不保证适用于任何一个 android 4.4 源码。如果各位发现按照笔者本篇文章所述配置仍旧无法成功编译,还需各位自行解决。
最后,笔者的 ubuntu 版本信息如下:
chorm@ubuntu:/$ cat /proc/version Linux version 4.4.0-142-generic (buildd@lcy01-amd64-006) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) ) #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019