传送门: Android自动化构建之使用JavaWeb实现上传打包加固多渠道-WEB篇(下)
一、前言:
Android打包是一件比较繁琐又耗时的操作,相信很多朋友都想自己搞一个属于自己的自动化构建程序,本文则是对这一程序的实现提供一个思路方法,没有采用 Jenkins持续集成 这种方式来实现,但大概思路都大同小异。
关于本文需要了解的一些东西:
1. 实现思路为:使用JavaGUI做一个zip打包工具,将自定义配置信息写入项目并打包成zip格式,最终将文件拖拽上传至服务器,服务器进行一系列的操作:解压,读取配置,打包,加固,多渠道,最后下发至浏览器端进行自动下载,由于公司电脑是WindowsServer2012,所以内部实现是基于Windows命令的
2.Android项目构建配置都各有不同,所以本文主要提供一个实现思路,感兴趣的朋友可以自己动手实现一个更适合自己的构建工具
3.项目分为GUI端和Web端,均为Java实现,大部分操作都是流/IO,字符串操作,简单易懂
4.使用GUI端需要的配置:JDK环境变量
5.使用Web端需要的配置:IntelliJ IDEA、Tomcat服务器、JDK环境变量、Gradle环境变量、360加固宝PC端、AndroidSDK、Android端所使用到的所有签名文件
6.开发工具,环境变量配置等本文就不多罗嗦了,毕竟不是使用说明书,但是会讲一下Tomcat与IDEA配置所产生的1099端口冲突的坑,还有Gradle多环境配置
7.项目地址:
GUI端:[AutoBuildForAndroid-GUI](https://github.com/SmartKidsLOL/AutoBuildForAndroid-GUI
Web端:[AutoBuildForAndroid-WEB](https://github.com/SmartKidsLOL/AutoBuildForAndroid-Web
二、GUI端的实现效果图
三、实现思路
如图所示,GUI端很简单,使用也很简单,界面也很丑(请不要在意这些细节…),因为公司的项目是加入了Tinker热修复,考虑到对其他项目的适用性,所以目前只做了2个自定义配置,如图所示,1是选择打包方式是以普通Release或者Tinker热修复包,2是输入项目需要用到的打包签名文件名。点击开始打包后便将这2个配置以Key-Value方式存入Properties文件,以便服务器以流的方式取出来存入。写入配置后使用Zipentry压缩流方式将项目文件夹压缩为Zip格式输出到指定目录。
项目以Mvp简单架构实现的,打包时会简单校验一下是否为Android项目文件夹。
注:自动化打包思路都是以修改并自定义配置Gradle文件,但是前提是公司的业务及项目都可以用同样的Gradle配置,比如三方依赖,ndk配置等主要配置都相同,但只有签名,ApplicationID这些可变配置根据不同项目而不同,这种情况下可以将这些可变的变量配置写入到GUI界面中,对同类型的项目进行不同的变量配置即可,最后直接将这些配置写入到Gradle中,上传到服务器进行一系列操作即可。
所以根据实际情况,我并没有将配置写入Gradle文件,而是另存为Properties文件,这种方式也是想以不动不同项目的gradle配置前提,完成自动化打包。
四、使用方式
在你想要进行自动化打包的项目里加入以下2点:
1.在你的Android项目根目录下创建 keystore.propertie 文件,加入以下内容:
KEY_PATH=D\:/tools/your