Androidgradle打包并自动上传的方法-创新互联
简介

这篇文章主要介绍Android用gradle打包,并且调用python脚本将打包好的apk上传到fir.im供相关人员下载,对于学习gradle 打包和python 几个常用网络库有一定帮助
关键字 :Android Gradle Python fir.im
1 开发前准备
开发前需要下载 AndroidStudio ,gradle(3.3版本),python3.6,Curl,pycurl
准备fir.im账号一个,有账号对应的apitoken,具体fir.im的细节可查看文档fir.im
开发环境为macOS,windows推荐把pycurl部分全部替换为requests,即上传apk部分代码换为上传图标的那种方式,详细见代码
2 Gradle 脚本编写
我们脚本需要做的事情就是在APK打包完成以后,把apk的路径传递给python脚本即可,如何保证打包好了,就用gradle的dependsOn方法,例如打debug包,我们就可以写一个task ,这个task dependsOn ‘assembleDebug',这样这个task调用时,会先执行assembleDebug,然后在执行里面的代码,即符合我们的需要
具体代码
//这个task 需要放在 app/build.gradle文件中的android 代码块里
task assemblewithlog {
dependsOn 'assembleDebug'
doLast {
//这个需要配置一下,app的图标
def appicon = "app/src/main/res/drawable/icon.png"
//这个需要配置一下,app的输出到fir.im的名称
def outId = "yitiji_Debug"
//取 apk的版本名和apk的输出文件目录
def verName = project.android.defaultConfig.versionName;
def apkpath = applicationVariants.first().outputs.first().outputFile
//调用python脚本 这个脚本需要放在工程目录下
def process = "python3 uploadfirim.py ${outId} ${verName} ${appicon} ${apkpath}".execute()
// Wait till the process completes before continuing
println("上传apk中")
//将python代码里面打印的内容在gradle窗口中打印出来
ByteArrayOutputStream result = new ByteArrayOutputStream();
def inputStream = process.getInputStream()
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
println(result.toString("UTF-8"));
//阻塞gradle代码直到python代码执行结束
int exitValue = process.waitFor()
println "上传结束 with value $exitValue"
}
}
当前标题:Androidgradle打包并自动上传的方法-创新互联
本文URL:http://www.jxjierui.cn/article/dgehoj.html


咨询
建站咨询
