Android gradle打包并自动上传的方法
简介
这篇文章主要介绍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/class="lazy" data-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" } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Android gradle打包并自动上传的方法
下载Word文档到电脑,方便收藏和打印~