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

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

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

一、配置AndroidStudio下的打包任务

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

task cleanAll(type: Delete) {delete rootProject.buildDirrootProject.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.mrgr.cn/news/63547.html

相关文章:

  • 华为OD机试 - 快递员的烦恼 - 动态规划(Python/JS/C/C++ 2024 D卷 200分)
  • 【网络】传输层协议TCP(中)
  • 线性数据结构之数组
  • Android 虚拟化框架(AVF)指南
  • elementUI tabs 吸顶功能实现,拉到最底部时候点击tab 回到最初位置
  • 轻型民用无人驾驶航空器安全操控理论培训知识总结-多旋翼部分
  • 若依-侧边栏开关按钮禁用,侧边栏始终保持展开
  • 苹果地表最强AI PC诞生,M4 Max猛兽加持性能暴涨!顶配6万,续航飙至24小时
  • Chromium127编译指南 Linux篇 - 同步第三方库以及Hooks(六)
  • 大数据之文件服务器方案
  • jsp中关于一些常识的区别
  • 【AIGC】逆向拆解OpenAI官方提示词Prompt技巧:高效提升ChatGPT输出质量
  • 【私聊记录】最近在忙什么啊?听说你在学人工智能?
  • 工业数字化| 2024年最新物联网平台案例一览
  • 骨传导耳机哪个牌子值得入手?这五款优质机型闭眼入也不踩雷
  • 企业培训知识库 | 产品知识培训的终极指南(定义、好处、方法)
  • 包子凑数(完全背包)
  • 2024 Rust现代实用教程 Borrowing借用 Lifetime生命周期
  • 【C++】关联式容器
  • [ 问题解决篇 ] win11中本地组策略编辑器gpedit.msc打不开(gpedit.msc缺失)
  • ElementUI中el-table双击单元格显示输入框
  • 提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)
  • 多SpringBoot项目同进程下统一启动
  • 华为认证HCIE通过需要考到多少分?_博睿谷·博睿慕课
  • layui 自定义验证单选框必填
  • Raspberry Pi 树莓派产品系列说明