当前位置: 首页 > article >正文

用Python脚本执行安卓打包任务

这个样例是基于windows系统写的python打包安卓的脚本

一、配置AndroidStudio下的打包任务

1.在Android项目根目录下的build.gradle文件配置生成Release包的任务:

task cleanAll(type: Delete) {
    delete rootProject.buildDir
    rootProject.subprojects.each { subproject ->
        delete subproject.buildDir
    }
}



task qudao1Release dependsOn(
        cleanAll,
        ':app:assemble千年血战篇_officialOfficialRelease',
)

1.1 cleanAll : 任务是打包前清空项目缓存的,直接copy就行

1.2 qudao1Release : 任务就是我们打包任务的名称,

1.3 :app:assemble千年血战篇_officialOfficialRelease 任务是我们gradlew执行的生成apk的指令,

这个指令可以在AndroidStudio里右侧窗口gradle树里找到,如下图:

1.4 如下图 :

assemble千年血战篇_officialOfficialRelease 就是我们要执行的release打包任务

1.5 把这个任务copy出来配置在上面1.3讲的位置就好

1.6 在androidStudio下的终端 执行我们的任务:qudao1Release, 执行命令时需要加前缀:.\gradlew。任务回车即可执行打包

二:利用python启动打包任务,我这里用的Python2.7.2版本

1.首先写一个可执行的doc文件,新建一个txt文本,内如如下:

@echo off
@REM 安卓项目路径
cd /d "D:\app\as_project\new_version\GameDemo"
.\gradlew qudao1Release
pause

1.2  D:\app\as_project\new_version\GameDemo: 为我们安卓项目的路径

1.3 .\gradlew qudao1Release :就是我们上面执行的任务指令

1.4 保存后修改文件名尾缀:.bat ,然后保存,如下图所示:

1.5 其实这里我们直接双击这个buildApk文件,就可以执行安卓自动打包了,也不用打开AndroidStudio。但是如果你需要自己写一个完成流程的自动打包脚本,还需要监听这个打包任务是否执行完成,就需要用到python了。

2. 利用python启动这个doc文件:

"""
    编译生成apk
    参数:
    :bat: 可执行文件
"""
def build_apk(bat):
    try:
        # 获取当前脚本的目录
      script_dir = os.path.dirname(os.path.abspath(__file__))
        # 构建.bat文件的完整路径
      bat_file_path = os.path.join(script_dir, bat)


      result = subprocess.call([bat_file_path])

        # 判断任务是否执行成功
      if result == 0:
            print("build apk 任务执行成功")

      else:
            print("任务执行失败,退出状态码为:", result)
    except subprocess.CalledProcessError as e:

      print("The command failed with return code "+e.returncode)

      print("Standard Error:"+e.stderr)

2.1 这个build_apk方法里的bat参数就是我们上面建的bat文件的文件名,例如我的是buildApk.bat。

2.2 在python文件里的main方法里调用 : build_apk('buildApk.bat'),切记这里要使用单引号。

2.3 把buildApk.bat文件放在python文件的同级目录下,这样你的python脚本才能调用到他。

2.4 通过终端进入到你的python文件下,输入:python xx.py。你的脚本就可以执行了,如下图

 

2.5 其实到2.4就完成了这个打包任务,这在构建自动打包平台时最关键的流程就通了,启动任务时只需要启动你的脚本就可以了

2.6 如果你的项目放在git上,希望每次打包时保证项目是最新的代码,那么在打包之前,也可以Python执行git pull 方法,再进行build_apk任务

def git_pull(repo_directory):
    """
    在指定的仓库目录中执行 git pull 命令。

    :param repo_directory: 包含Git仓库的本地目录路径
    """
    try:
        # 更改当前工作目录到指定的Git仓库目录
        os.chdir(repo_directory)

        # 执行 git pull 命令
        result = subprocess.call(['git', 'pull'])

        # 判断任务是否执行成功
        if result == 0:
            print("build apk 任务执行成功")

        else:
            print("任务执行失败,退出状态码为:", result)
    except subprocess.CalledProcessError as e:
        # 如果 git pull 命令失败,则捕获异常并打印错误信息
        print("Error executing git pull: {e}")

    except Exception as e:
        # 捕获其他可能的异常并打印错误消息
        print("An unexpected error occurred: {e}")

源码链接:

Python脚本: 用pyhton写的打包安卓APK的脚本


http://www.kler.cn/a/375609.html

相关文章:

  • Java实现图片转pdf
  • redis实战--黑马商城 记录
  • Rust: 加密算法库 ring 如何用于 RSA 数字签名?
  • C++ 复习记录(个人记录)
  • ts:使用fs内置模块简单读写文件
  • mybatis 参数判断报错的问题
  • 用QWebSocketServer写websocket服务端
  • 华为自研仓颉编程语言官网上线 首个公测版本开放下载
  • 基于GA遗传算法的悬索桥静载试验车辆最优布载matlab仿真
  • Minio 之 内网项目托管Unity Android包体
  • 个人开发三步走
  • wx.setNavigationBarColor动态设置导航栏颜色无效(亲测有效)
  • Hailo-8/8L系列汇总
  • 小白Git操作简洁步骤
  • PostgreSQL 增量备份:保护你的数据资产
  • ARKit读取LiDAR点云
  • qt QGroupBox详解
  • IO详解(BIO、NIO、实战案例、底层原理刨析)
  • CSS3简介(一)
  • 解决项目中图片出不来的bug
  • ubuntu启动慢,如何看启动耗时分布
  • 分布式 ID 生成策略(二)
  • Redis 内存回收策略小结
  • Spark中的常见算子
  • ubuntu22-安装vscode-配置shell命令环境-mac安装
  • Serverless + AI 让应用开发更简单