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

【001】RenPy打包安卓apk 流程源码级别分析

1. 入口在下图

2. SDK版本及代码入口 (renpy-8.3.7-sdk)

由于SDK一直在升级,本文采用 标题中的版本进行分析,整体逻辑变化不太大。

实际执行逻辑是调用的rapt

2.1 点击按钮实际执行逻辑

 def AndroidIfState(state, needed, action):
    if state >= needed:
        return action
    else:
        return None

2.2  点击触发操作

class AndroidBuild(Action):
    def __init__(self, label):
        self.label = label

    def __call__(self):
        renpy.jump(self.label)
2.3 调用函数 def android_build(...)

def android_build(p=None, gui=True, bundle=False, install=False, launch=False, destination=None, opendir=False, packages=None):
    ...
2.4 执行构建过程

   rapt.build.build(
       rapt_interface,
       dist,
       p.path,
       bundle=bundle,
       install=install,
       launch=launch,
       finished=finished,
       permissions=p.dump['build']['android_permissions'],
       version=p.dump['build']['version']
   )
   2.5 构建完成后处理输出文件 

   def finished(files, destination=destination):
       # 复制文件到目标路径,并打开目录
3.   总结:

graph TD
    A[点击 Build Package 按钮] --> B{AndroidState() == ANDROID_OK?}
    B -- 是 --> C[执行 AndroidBuild("android_build")]
    C --> D[跳转到 label android_build]
    D --> E[调用 python 函数 android_build()]
    E --> F[执行构建逻辑]
    F --> G{构建成功?}
    G -- 是 --> H[复制文件到目标路径]
    G -- 否 --> I[显示错误信息]
    H --> J[打开输出目录]
   下一篇  分析 rapt中实际的执行逻辑

http://www.dtcms.com/a/196203.html

相关文章:

  • (面试)TCP、UDP协议
  • 手写tomcat:基本功能实现(4)
  • 轻量、优雅、高扩展的事件驱动框架——Hibiscus-Signal
  • Git 版本控制系统入门指南
  • 我的世界模组开发——特征(2)
  • 使用 Vue Tour 封装一个统一的页面引导组件
  • Typescript学习教程,从入门到精通,TypeScript 函数语法知识点及案例代码(5)
  • 六、绘制图片
  • Golang 范型
  • C# WPF .NET Core和.NET5之后引用System.Windows.Forms的解决方案
  • 数据库——SQL约束窗口函数介绍
  • 量化用到的机器学习书籍推荐
  • 广和通L610模块通过AT指令访问服务器方案:嵌赛使用
  • QT6 源(105)篇二:阅读与注释 QAction,给出源代码
  • RJ连接器的未来:它还会是网络连接的主流标准吗?
  • Java-Objects类高效应用的全面指南
  • Vue百日学习计划Day19-20天详细计划-Gemini版
  • 从数据分析到数据可视化:揭开数据背后的故事
  • ArrayList-集合使用
  • 【C语言练习】046. 编写插入排序算法
  • 编译原理实验五:LR语法分析器的控制程序
  • BrepGen中的几何特征组装与文件保存详解 deepwiki occwl OCC包装库
  • 亲测有效!OGG 创建抽取进程报错 OGG-08241,如何解决?
  • gRPC开发指南:Visual Studio 2022 + Vcpkg + Windows全流程配置
  • 深入理解 Java 字节码操作码
  • Rust 数据结构:HashMap
  • 【沉浸式求职学习day42】【算法题:滑动窗口】
  • NVC++ 介绍与使用指南
  • LeetCode 33. 搜索旋转排序数组:二分查找的边界艺术
  • 计算机视觉与深度学习 | Matlab实现EMD-LSTM和LSTM时间序列预测对比(完整源码和数据)