版本:v1.0.0 · 适用:Android 8.0+(ARM64)
- 从 Releases 下载
app-debug.apk(约 124MB); - 手机允许"安装未知来源应用"(不同厂商路径不同,一般在 设置 → 安全 → 未知来源);
- 安装后打开,首次运行会自动解压内置 Python 标准库(约 1~5 秒,之后秒开)。
提示:APK 较大是因为内置了完整的 CPython 3.13 原生运行时 + 标准库。装完即离线,无需再下载任何东西。
| 区域 | 作用 |
|---|---|
| 顶部栏 | 当前文件 Tab、项目名、运行/停止按钮 |
| 左侧(可收起) | 文件树:项目下的所有文件 |
| 中间 | 代码编辑器(Sora Editor) |
| 底部 | 输出面板:运行结果、报错、stdin 输入 |
| 右上 ⌘K | 命令面板:搜索一切动作 |
- 新建项目:启动页 → 新建 → 选模板(基础 / 算法 / 数据处理 / 空项目);
- 新建文件:文件树右上 + → 输入文件名(
.py/.md/.html等); - 多文件 Tab:点文件树里的文件即可打开/切换,Tab 可关闭;
- 编辑:语法高亮、自动补全(Python 关键字/内置函数/当前文件符号)、自动闭合括号、自动换行、行号开关(设置里可关);
- 字号:双指捏合缩放;
- 查找替换:顶栏搜索图标 → 输入关键词 → 逐个跳转/全局替换;
- 全局搜索:跨当前项目所有文件搜索。
- 快捷符号栏提供 26 个常用符号键;
- 运行中可使用方向键 / Tab 软键,发送给正在运行的程序。
- 打开要运行的
.py文件; - 点顶部 ▶ 运行(或命令面板 → Run);
- 输出实时显示在底部面板;
- 再次点 ■ 停止 可中断运行(死循环也能停:先推 EOF 打断
input(),再发 KeyboardInterrupt)。
命令行参数:运行配置里可填,如 --name "hello world"(支持带引号)。
交互输入:程序运行到 input() 时,点输出面板的"点击输入",输入后回车。
超时保护:设置里可调超时秒数(默认 120s)。超时自动中断,避免死循环耗电。
- 报错跳转:输出里的
line 12/main.py:12可直接点击,跳到对应行; - 友好翻译:20+ 高频错误(缩进、变量未定义、除零等)会自动翻译成人话;
- Markdown / HTML 预览:打开
.md/.html文件 → 分屏实时预览; - PNG 图片:脚本生成的图片文件点开直接看;
- 复制/分享输出:输出面板底部按钮。
- 切换项目:启动页列出所有项目,点选进入;长按可删除;
- 导入/导出:通过系统文件选择器(SAF),不需要存储权限——导入 zip 或文件夹,导出项目 zip;
- 项目模板:新建时选模板,自动生成目录结构。
文件树 → 长按项目根 → Git:
init:初始化仓库;commit:填写提交信息,提交全部变更;push/pull:需要仓库地址与凭证(仅支持 HTTPS 或本地仓库,离线定位);- 状态查看:变更文件列表。
基于 JGit(纯 Java),不依赖系统 git。
默认关闭。打开后需自配 OpenAI 兼容端点:
- 设置 → AI 助手 → 填写 Base URL、API Key、模型名;
- 功能:解释当前文件、分析报错、生成单元测试;
- 隐私:代码只会发送到你配置的端点;不配置则完全不联网。
| 设置项 | 说明 |
|---|---|
| 主题 | 跟随系统 / 浅色 / 深色 |
| 编辑器主题 | 6 套:Darcula / Monokai / 明日蓝 / Solarized 等 |
| 字号 | 滑块调整 |
| 自动换行 / 行号 | 开关 |
| 运行超时 | 秒数(默认 120) |
| AI 助手 | 端点 / 密钥 / 模型 |
| 问题 | 解答 |
|---|---|
import numpy 报错? |
未预装第三方科学库,见 FAQ |
| 运行很慢? | 首次运行解压标准库需几秒,之后秒开;可去设置调大超时 |
| 停止后无法再运行? | 等 2~3 秒让旧进程收尾;若提示"已有程序在运行中",稍候重试 |
| 中文乱码? | 不应出现(Python 层 UTF-8 桥接);如遇请提交 Issue |
| 能跑 Java 吗? | 暂不支持,仅编辑高亮 |
| 手机提示"未知来源"? | 设置里允许安装未知来源应用 |
- 崩溃日志:写入应用私有目录(
crash-*.log),可通过导出功能带出; - 提交 Issue / 参与开发:见 CONTRIBUTING.md。
有问题先看 FAQ;解决不了就来提 Issue,我们重视每一条反馈。