自行搭建Android4.4编译环境

Posted 我想我会记得你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自行搭建Android4.4编译环境相关的知识,希望对你有一定的参考价值。

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

 


 

以上是关于自行搭建Android4.4编译环境的主要内容,如果未能解决你的问题,请参考以下文章

显示对话框片段时与状态栏重叠,仅在Android4.4中

Android 4.4 — 半透明状态/导航栏 — fitSystemWindows/clipToPadding 不能通过片段事务工作

求助IMX6+Android4.4移植RTL8723AU驱动问题

iTOP4412开发板Android4.4源码编译分享

如何通过活页夹将服务发送到 API 级别 14 的片段?

海思android4.4 SDK编译Latin输入法