背景:
随着APP数量的增多,打包的个数也越来越多。怎么让开发者从中脱身更专心的去关注功能的实现,而不是每天跟着客户的业务需求一直在做着重复的替换资源文件、打包、发布的工作。最近一直在学习Python,就大胆的设想了一个方案,让客户或者运营人员就能替换资源,然后根据他们上传的资源自动化编译、打包、发布。
探索之路:
基本流程如上所示:
1.打开网页填写渠道信息(APP名字、资源文件),点击提交按钮发送post请求到服务器
2.服务器用Python语言,主要功能是生成渠道配置文件、下载资源图片、拉取最新GitLab源码、
执行gradle assembleXXXXRelease生成对应渠道APK、上传APK到可下载服务器、返回下载地址到网页端并显示二维码
3.因为使用GitLab托管代码的,避免多个地方推源码不好管理
4.APK文件存放使用的是第三方云平台
5.环境配置有jdk、gradle、Python、git、Web服务器
实践之路:
由于种种原因现在还不能完美的演示在线完全定制化APP功能,只能来个本地枪版的体验体验。
本地所需环境:jdk1.8、gradle3.3、PyCharm自带版本或者Python3.5,各种环境的配置简要说明,具体配置请百度相关的说明教程。
1.配置Path环境变量%JAVA_HOME%bin,JAVA_HOME是你的JDK安装路径
2.添加GRADLE_HOME为gradle的解压路径,配置Path环境变量%GRADLE_HOME%bin
3.Python脚本
# coding=utf-8 import os #Android工程路径 rawPath = '替换成自己的Android源码工程路径' os.chdir(rawPath) # 切换当前路径 command = 'gradle assembleRelease' #命令行中执行的命令 r = os.popen(command) info = r.readlines() for line in info: # 按行遍历 line = line.strip('\r\n') print(line) if (str(line).__contains__("Success")): break