快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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打包并自动上传的方法-创新互联
当前网址:http://6mz.cn/article/dgehoj.html

其他资讯