dev-terminal:基于 Kotlin 与 Android Compose 的离线移动编程终端项目

完全离线的安卓编程终端 — 手机上的现代 IDE,离线跑 Python / Java | A fully offline Android coding terminal (Python/Java)

分支1Tags4
文件最后提交记录最后更新时间
23 小时前
58 分钟前
2 天前
2 天前
58 分钟前
1 天前
4 天前
4 天前
4 天前
4 天前
2 天前
2 天前
4 天前
4 天前
13 天前
5 天前
58 分钟前
4 天前
11 天前
2 天前
13 天前
13 天前
12 天前

📱 DevTerminal

真正离线的安卓 Python IDE — 手机上写代码,装完就能跑

原生 Python 运行时(CPython 3.13 交叉编译,含标准库 C 扩展)随 APK 打包,零下载、零网络、零广告。

License Platform Kotlin Offline No Ads

下载 APK · 官网 · Gitee 镜像


✨ 为什么是它

Termux Pydroid 3 Acode Spck DevTerminal
装完即离线 ⚠️ 要装包 ⚠️ 部分 ❌ 联网 ❌ 联网 ✅ 运行时随包
现代 IDE 界面 ❌ 黑框 ⚠️ 旧 ✅ ✅ ✅
多文件 Tab / 查找替换 ❌ ✅ ✅ ✅ ✅
Git 离线集成 ✅ ❌ ✅ ✅ ✅ JGit
numpy / pandas / matplotlib ❌ ✅ ❌ ❌ ⚠️ 未预装(见下)
AI 助手(BYOK) ❌ ❌ ✅ 云端 ✅ 云端 ✅ 自配端点
开源无广告 ✅ GPL ❌ 付费 ⚠️ 广告 ⚠️ 内购 ✅ Apache-2.0

我们的定位:开源 + 无广告 + 装完即离线 + 数据科学栈预装。


🏗 架构

┌─────────────────────────────────────────────┐
│  Compose UI 层                               │
│  文件树 · 编辑器(Sora) · 输出面板 · 命令面板    │
└──────────────────┬──────────────────────────┘
                   │ JNI(jobject 回调)
┌──────────────────▼──────────────────────────┐
│  NativeEngine(Kotlin)+ pybridge.c(JNI 桥) │
│  CPython 3.13 交叉编译为 arm64 原生库        │
│  流式 stdout/stderr · 超时中断 · stdin 交互   │
└──────────────────┬──────────────────────────┘
                   │ dlopen + sys.path
┌──────────────────▼──────────────────────────┐
│  jniLibs/arm64-v8a(随 APK)                 │
│  libpython3.13.so · libpybridge.so · C 扩展  │
│  assets/python-stdlib.zip(纯 Python 标准库) │
└─────────────────────────────────────────────┘

核心取舍:不自造终端模拟器,不依赖外置原生工具链。用 NDK 把 CPython 3.13 交叉编译成 arm64 原生库,随 APK 打包——装完即离线。当前只集成 Python 运行时;Java(JVM)尚未集成,仅保留编辑高亮。


🎯 功能一览

写代码

  • 多文件 Tab · 文件树(新建/重命名/删除,长按操作)
  • Sora Editor 代码编辑器 + 18 种语言 TextMate 语法高亮
  • 静态补全:Python 关键字/内置函数 + 当前文件符号提取(零进程开销)
  • 查找替换(计数跳转)· 全局搜索(跨文件)
  • 快捷符号栏 26 键 · 双指缩放字号 · 自动闭合括号 · 自动换行 · 行号开关
  • 6 套编辑器主题(Darcula / Monokai / 明日蓝 / Solarized…)

跑代码

  • 原生 CPython 3.13(arm64),标准库全量(纯 Python 部分 + C 扩展)
  • math / json / random / datetime / socket / ssl / sqlite3 / ctypes 等 C 扩展随包
  • 流式输出 · input() 交互 · 方向键/Tab 软键盘
  • 死循环保护(超时中断)· 前台服务保活
  • 友好报错翻译(20+ 高频错误)
  • 运行配置(命令行参数)· 脚本内 __file__ 等标准属性可用

管项目

  • 多项目切换(长按删除)· 4 个 Python 模板
  • JGit Git 集成:init / commit / push / pull,纯 Java 离线
  • SAF 导入导出(无需存储权限)
  • 离线包管理:查看内置 wheel / 导入本地 .whl

看结果

  • Markdown / HTML 分屏实时预览,防抖刷新
  • 外部浏览器打开 HTML 文件
  • 输出面板:拖拽调高 / 复制全部 / 分享
  • 三态主题(跟随系统 / 浅色 / 深色)

提效

  • 命令面板 ⌘K:搜索一切动作 + 代码片段
  • AI 助手(BYOK,OpenAI 兼容端点):解释文件 / 修错 / 生成测试
  • 会话恢复:重启回到上次编辑现场
  • 崩溃日志写私有目录,离线可反馈

🚀 构建

# 前置:JDK 17+,Android SDK(platforms;android-35、build-tools;34.0.0)
# 本地生成 local.properties:sdk.dir=/path/to/android-sdk
# clone 后即可出包
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

原生运行时(libpython3.13.so + C 扩展 + 纯 Python 标准库 zip,约 100MB)已随仓库提供,构建完成后 App 运行零网络。

重新编译 libpybridge.so 需 NDK 27.3 与 CPython 3.13 交叉编译环境,见 scripts/package_native.sh。日常构建不需要——预编译产物已在 app/src/main/jniLibs/。

assets/python-stdlib.zip 必须配置 noCompress(已配置),否则 AAPT 压缩后 CPython 无法加载标准库。


📦 随包内置的运行时

  • 纯 Python 标准库:assets/python-stdlib.zip(解压到应用私有目录后加入 sys.path)
  • C 扩展模块:math、json、_random、_datetime、_socket、_ssl、_sqlite3、_ctypes、zlib、binascii 等(jniLibs/arm64-v8a)
  • 第三方科学计算库(numpy / pandas / matplotlib / pillow)当前未预装,import numpy 会提示缺少模块。离线安装第三方 wheel 的能力后续版本开放。

🧭 能力边界(诚实标注)

能力 状态
Python 运行 ✅ 完整(原生 CPython 3.13,arm64)
Java 运行 ❌ 尚未集成 JVM 运行时(保留编辑高亮)
性能 ✅ 原生执行,无 WASM 沙箱开销
第三方科学计算库 ⚠️ numpy/pandas/matplotlib 未预装,离线导入后续开放
pip 联网装包 ❌ 离线定位,额外库需手动导入 wheel

📄 许可证

Apache License 2.0 · 第三方组件声明见 NOTICE.md

贡献前跑 python3 tools/selfcheck.py(0 错误再提交)。

项目介绍

完全离线的安卓编程终端 — 手机上的现代 IDE,离线跑 Python / Java | A fully offline Android coding terminal (Python/Java)

https://x33834.github.io/dev-terminal/定制我的领域