您的位置首页>硬件>

利用Docker环境加速Android应用的构建

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解利用Docker环境加速Android应用的构建问题。意义大大缩短了从安卓开发到测试到产品

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解利用Docker环境加速Android应用的构建问题。

意义

大大缩短了从安卓开发到测试到产品到渠道的距离。

减轻安卓程序员的负担。

谷歌的环境已经到位,放入docker显然不会有太多坑(错、逃)。

文件

https://github.com/lijianying 10/FixLinux/blob/master/docker file/androidautoubuild/docker file

团队合作的故事

在敏捷开发的常务会上,作为一个后端程序员,我发现安卓程序员的发布时间大概在半个小时左右,我觉得时间太长了,应该缩短,这也成为了开发这个东西的目的。然而,经过一段时间的研究,许多问题需要解决:

很多东西都有围墙。

许多依赖项不能被重用(各种pom包)。

如何在不从网上下载的情况下快速安装gradlew?

自动校准。

自动签名。

自动混淆。

被考虑在内

系统底层依赖

JDK

安道尔id-SDK

格拉德卢

项目相关性

施工说明

建议:用国外的vps来建,不然要花很长时间。

构建变量

ENV JAVA_HOME /jdk1.8.0_65

ENV ANDROID _ HOME/opt/ANDROID-SDK-Linux/

ENV ANDROID _ SDK _ FILENAME ANDROID-SDK _ r 24 . 4 . 1-Linux . tgz

http://dl.google.com/android/${ANDROID_SDK_FILENAME}

ENV PATH $ { PATH } : $ { ANDROID _ HOME }/tools : $ { ANDROID _ HOME }/platform-tools : $ { JAVA _ HOME }/bin/

潜在依赖性

Gcc,注意我们需要安装32位编译环境和git wget。

RUN sudo apt-get update sudo apt-get install-y gcc-multi lib 32 Z1 lib 32 TDC 6 git wget apt-get clean RM-RF/var/lib/apt/listvar/tmp/*

安装JDK

RUN CD/wget-no-check-cerTIficate-no-cookies-header ' cookie : oraclelicense=accept-securebackup-cookie ' http://download . Oracle.com/OTN-pub/Java/JDK/8u 65-b17/JDK-8u 65-Linux-x64 . tar . gz \

焦油xf jdk-8u65-linux-x64.tar.gz \

RM-RF $ JAVA _ HOME/src . zip $ JAVA _ HOME/JavaFX-src . zip $ JAVA _ HOME/man/JDK-8u 65-Linux-x64 . tar . gz

这里使用Cookie来确定同意协议。

安装SDK

运行cd /opt \

wget -q ${ANDROID_SDK_URL} \

tar-xzf $ { ANDROID _ SDK _ FILENAME } \

rm ${ANDROID_SDK_FILENAME} \

echo y | Android update SDK-no-ui-all-filter工具,平台-工具,extra-android-m2repository,android-21

RUN echo y |安卓更新sdk - no-ui - all - filter安卓-22,构建-工具-21.1.2,构建-工具-22.0.1

因为最好把每一层控制在1G以内,所以这里用两次运行来切割。

请注意,SDK安装在项目所需的最高版本的映像中,然后向下安装,否则工具文件夹将不会运行工具。

注意上面的SDK平台等等都是基于我们的项目,通过详细探究项目代码,你就知道靠什么了。

准备项目

使用git克隆来同步项目目录。

执行第一次手动编译。命令:gradlew汇编bug

第二点有三个目的:

检查项目是否缺少依赖项,使用android update sdk命令增加Android sdk依赖包。

自动下载项目中的所有依赖项。

安装gradlew。

有两点需要备份

/root/。gradle备份这个目录,这样以后自动构建就不需要再安装gradlew了。

备份$PROJDIR/。gradle项目依赖、备份。($PROJDIR是您的项目根目录位置)

备份后,下一次编译就不需要网络了(容器就不需要梯子了,对提升速度很重要)。

根据项目构建图像

因为每个项目的依赖性不同,所以需要针对项目进行定制。大致的操作目标如下:

创建一个容器。

想办法同步代码git、FTP、NFS等等。

将以上两个备份点放在指定位置使用。

执行生成输出。

销毁容器。

事实上,只要你能做到这一点,添加一个git钩子和简单的发布就是一个简单的CI。

对齐、签名、混淆

项目的build.gradlew可以根据以下参考文件进行调整。

签名是在安卓节点下添加以下代码:

签名配置{

发布{

storeFile文件('./

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。