Akode 是一款专为 Android 平台设计的 C/C++ 集成开发环境(IDE),让你可以在手机上编写、编译和运行 C/C++ 代码。无需电脑,随时随地进行 C/C++ 开发。
还在找一款真正能在 Android 上认真写 C/C++ 的 IDE?
Akode 面向需要 C++ 编译器 + 语言分析 + 代码格式化 + 智能补全 + 高颜值界面 的开发者,提供从编辑、诊断到编译运行的一站式体验。
无论是学习、日常开发,还是在移动端快速验证想法,Akode 都能让你更专注于代码本身。
如果你也在做 C/C++ 开发,欢迎加入 Akode 官方 QQ 群交流反馈:1003648526
- 基于 Sora Editor 的专业代码编辑器
- C/C++ 语法高亮(TextMate 语法支持)
- 智能代码补全
- 括号匹配高亮
- 行号显示
- 当前行高亮
- 多文件标签页管理(最多10个)
- 符号快捷输入栏
- 支持多种编辑器主题
- 支持cmake make ninja
- 集成 Clangd LSP 服务
- 实时语法错误检测
- 智能代码补全
- 函数签名提示
- 代码诊断和错误标记
- 跳转到定义
- 内置 Clang/Clang++ 编译器(首次启动自动安装)
- OLLVM 代码混淆支持(基于 Clang 18.1.8)
- 支持 C 语言(.c)和 C++ 语言(.cpp/.cc/.cxx)
- 自定义编译参数
- 自定义编译命令管理
- 支持 Root 权限运行程序
- 编译错误定位和标记
- 编译缓存(相同代码跳过编译)
内置 OLLVM 混淆器,支持多种代码保护方式,增强逆向难度:
| 参数 | 说明 |
|---|---|
-mllvm -fla |
控制流平坦化(Control Flow Flattening) |
-mllvm -sub |
指令替换(Instruction Substitution) |
-mllvm -bcf |
虚假控制流(Bogus Control Flow) |
-mllvm -ibr |
间接分支(Indirect Branching) |
-mllvm -sobf |
字符串混淆(String Obfuscation) |
-mllvm -split |
基本块分割(Basic Block Splitting) |
-mllvm -split_num=N |
指定分割次数(N 为数字) |
使用方式:在「设置 → 编译设置」中开启对应的混淆选项即可。
- 侧边栏文件浏览器
- 支持新建文件/文件夹
- 文件重命名、删除、复制路径
- 快速定位当前文件
- 记住上次打开的文件和目录
- Git 状态显示(修改/新增/冲突等)
- Git 仓库克隆(支持 HTTPS)
- 私有仓库认证(用户名/密码/Token)
- Git 凭据加密存储
- 提交、推送、拉取操作
- 分支管理
- 远程仓库管理
- 文件状态实时显示
- 新建项目向导
- Git 初始化选项
- 最近项目列表
- 项目配置保存和恢复
- 自动保存功能(可配置间隔)
- 完整的终端环境
- 支持常用 Shell 命令
- 可调节字体大小和样式
- 底部快捷操作栏
- 屏幕常亮选项
- 自动加载插件环境变量
- 支持安装第三方插件(ZIP格式)
- 插件 ABI 选择(arm64-v8a / x86_64)
- 插件启用/禁用管理
- 查看插件示例代码
- 插件安装脚本(.install 文件)
- 插件 Hook 系统(.hook 文件)
- 插件 PATH 环境变量自动注入
插件可以通过 .install 文件定义安装流程,支持交互式安装向导。
| 节点 | 说明 |
|---|---|
alert |
弹窗提示 |
edit |
单行输入框 |
select |
单选/多选列表 |
if |
条件判断分支 |
command |
执行 Shell 命令 |
command_result |
执行命令并获取结果(带 Loading) |
grep |
正则表达式匹配 |
add_path |
添加环境变量路径 |
create_value |
创建变量 |
run_in_terminal |
在终端运行可执行文件 |
| 变量 | 说明 |
|---|---|
${plugin_path} |
当前插件安装目录 |
${plugin_name} |
插件目录名 |
${files_dir} |
应用 files 目录 |
${cache_dir} |
应用缓存目录 |
${current_file} |
当前编辑器打开的文件路径(Hook 中可用) |
${current_dir} |
当前文件所在目录(Hook 中可用) |
{
"install_before": [
{"node": "alert", "title": "欢迎", "message": "即将安装 NDK 插件"}
],
"install_start": [
{"node": "command", "sh": "tar -xzf ${plugin_path}/ndk.tar.gz"}
],
"install_after": [
{"node": "add_path", "export": "${plugin_path}/bin"}
]
}插件可以通过 .hook 文件在特定事件时执行自定义操作。
| Hook | 说明 | 版本 |
|---|---|---|
menu |
添加编辑器右上角菜单项 | v1.0.2+ |
run_menu |
添加运行按钮下拉菜单项 | v1.0.3+ |
toolbar |
添加工具栏按钮 | v1.0.4+ |
on_compile_before |
编译前执行 | v1.0.2+ |
on_compile_success |
编译成功后执行 | v1.0.2+ |
on_compile_error |
编译失败后执行 | v1.0.2+ |
on_run_before |
运行前执行 | v1.0.2+ |
on_app_init |
应用启动时执行 | v1.0.4+ |
{
"menu": [
{
"title": "NDK编译",
"position": "start",
"onClick": [
{
"node": "command_result",
"sh": "ndk-build",
"dir": "${current_dir}",
"loading": "正在编译...",
"success": [
{"node": "alert", "title": "成功", "message": "${cmd_output}"}
],
"error": [
{"node": "alert", "title": "失败", "message": "${cmd_error}"}
]
}
]
}
]
}{
"events": {
"on_compile_success": [
{"node": "command", "sh": "echo '编译成功' >> ${plugin_path}/log.txt"}
]
}
}- Android 5.0 (API 21) 及以上
- 支持架构:arm64-v8a、x86_64
- 存储空间:约 100MB(含 GCC 工具链)
- 需要存储权限(访问文件系统)
- 下载
Akode_x.x.x_release.apk - 安装 APK(可能需要允许安装未知来源应用)
- 首次启动会自动安装 GCC 工具链,请耐心等待
- 点击主页的「代码编辑器」进入编辑器
- 编写你的 C/C++ 代码,例如:
#include <stdio.h>
int main() {
printf("Hello, Akode!\n");
return 0;
}- 点击工具栏的运行按钮(▶)编译并运行
| 操作 | 说明 |
|---|---|
| 左滑屏幕边缘 | 打开文件浏览器 |
| 点击标题栏文件名 | 切换已打开的文件 |
| 长按标题栏文件名 | 查看完整文件路径 |
| 长按保存按钮 | 另存为 |
| 底部符号栏 | 快速输入常用符号 |
| 操作 | 说明 |
|---|---|
| 点击文件夹 | 进入目录 |
| 点击文件 | 打开文件 |
| 长按文件/文件夹 | 显示操作菜单(重命名、删除、复制路径等) |
| 点击路径栏 | 手动输入路径跳转 |
| 长按路径栏 | 复制当前路径 |
| 📍 按钮 | 定位到当前文件所在目录 |
| ➕ 按钮 | 新建文件 |
| 📁 按钮 | 新建文件夹 |
| 操作 | 说明 |
|---|---|
| ▶ 运行按钮 | 编译并运行当前文件 |
| 长按运行按钮 | 设置运行参数 |
| 编译模式切换 | 单文件模式 / 多文件模式 |
| 操作 | 说明 |
|---|---|
| 底部工具栏 | 常用快捷键(Tab、Ctrl、Alt 等) |
| 双指缩放 | 调整字体大小 |
| 长按屏幕 | 粘贴文本 |
| 操作 | 说明 |
|---|---|
| ➕ 按钮 | 安装插件(选择 ZIP 文件) |
| 点击插件 | 查看插件示例代码 |
| 卸载按钮 | 删除插件 |
| 点击 ABI 标签 | 切换插件 ABI(多 ABI 时显示) |
| 开关按钮 | 启用/禁用插件 |
- 记住上次打开的文件:下次启动时恢复上次的文件和目录
- 编辑器字体大小:12-24sp 可选
- 编辑器主题:Darcula(暗色)等主题
- 启用 Clangd LSP:开启智能代码分析(需要安装 Clangd 插件)
- 终端字体大小:10-24sp 可选
- 终端字体:Monospace、Sans Serif、Serif
- 显示底部操作栏:控制快捷键栏显示
- 编译命令管理:自定义编译和运行命令
- Clang 编译参数:C 语言编译参数(默认:
-lm -ldl -llog -lz -std=c99 -Wfatal-errors -Os -s -pie) - Clang++ 编译参数:C++ 编译参数(默认:
-lm -ldl -llog -lz -std=c++17 -Wfatal-errors -Os -s -pie) - Android API Level:目标 Android API 版本(21-35,默认 21)
- 启用 Root 运行:使用 su 以 root 权限执行程序
- 自定义 SU 命令:Root 运行时使用的 su 命令(默认:
su -c) - 启用日志:开启终端操作日志记录
- 保持屏幕常亮:终端运行时保持屏幕不熄灭
- 清除缓存:清除应用缓存和临时文件
- 导出日志:导出终端操作日志文件
plugin.zip
├── .config # 插件配置文件(JSON格式,必需)
├── .install # 安装脚本(JSON格式,可选)
├── .hook # Hook 配置(JSON格式,可选)
├── .path # 环境变量路径(安装后自动生成)
├── lib/
│ ├── arm64-v8a/ # arm64 架构的 .so 文件
│ └── x86_64/ # x86_64 架构的 .so 文件
├── include/ # 头文件
└── example/ # 示例代码
{
"plugin_code": "my_plugin",
"plugin_name": "我的插件",
"plugin_version": "1.0.0",
"plugin_describe": "插件描述",
"author": "作者名称",
"github": "https://github.com/xxx/xxx",
"support_ABI": ["arm64-v8a", "x86_64"]
}详见 插件安装脚本文档
详见 插件安装脚本文档(Hook 系统部分)
- 编辑体验优化
- 注释快捷键按文件类型自动适配:
CMakeLists.txt/*.cmake使用#,C/C++ 继续使用// - 修复部分场景下编辑器高亮渲染异常(
Failed to read span)导致的连续警告日志问题
- 注释快捷键按文件类型自动适配:
- 工具链与智能分析优化
- 修复
clang版本升级后的resource-dir残留硬编码问题,统一改为动态探测安装版本 - 优化 LSP 相关路径解析逻辑,减少因目录名不一致导致的
clangd初始化异常
- 修复
- AI 聊天与数据库能力增强
- 增强 AI 聊天数据库结构与读写能力,优化会话数据组织
- 补充上下文构建、上下文预算与冲突处理相关能力,提升长会话稳定性
- 新增/完善工具编排与请求构建链路,提升 AI 工具调用一致性
- APK 打包与重打包能力升级
- 优化 APK 重打包流程,提升稳定性并减少失败场景
- 改进图标替换与资源处理路径,增强对复杂资源映射场景的兼容
- 提升签名与构建流程衔接,降低安装阶段异常概率
- 构建与工程支持更新
- 持续完善 CMake/Make/Ninja 与项目导入流程的协同体验
- 修复构建配置细节问题,优化编译链与编辑器功能联动
-
项目导入和管理功能
- 实现项目导入对话框,支持手动输入路径和文件夹浏览
- 集成 DocumentFile API 用于文件选择器功能
- 添加项目长按删除功能,支持仅删除配置或整个项目文件夹
- 增加导入项目菜单项和相应的处理逻辑
- 实现 URI 路径解析和项目路径验证功能
- 添加 third.json 配置文件的创建和读取
- 扩展最近项目管理器支持全局项目列表
- 引入 slf4j 日志记录功能
-
APK 生成和签名功能
- 集成 FileProvider 支持文件分享功能
- 实现完整的 APK 生成流程,包括源码编译、模板处理和文件注入
- 创建 Material Design 3 风格的进度对话框,支持丝滑动画效果
- 添加 ARM64 架构编译支持和可执行文件注入功能
- 实现 APK 安装功能,支持 Android 7.0 以上版本的 FileProvider
- 添加文件管理器集成和路径复制功能
- 实现临时文件自动清理机制
- 优化进度更新逻辑,支持分步骤进度显示
- 新增 ApkParser 类实现 APK 文件元数据解析功能
- 新增 ApkRepackager 类实现 APK 重打包流程控制
- 新增 ApkUtils 类提供 APK 文件操作工具方法
- 新增 BinaryXmlEditor 类使用 ARSCLib 修改二进制 XML 文件
- 新增 CertificateBuilder 类使用 BouncyCastle 生成证书
- 新增 CustomApkSigner 类使用 Google apksig 库进行签名
-
AI 辅助开发工具
- 新增编译代码工具(compileCode)支持文件编译验证
- 新增获取诊断信息工具(getDiagnostics)显示错误警告
- 新增创建文件工具(createFile)支持动态文件生成
- 新增符号列表工具(getSymbols)分析代码结构
- 新增重命名文件工具(renameFile)支持文件重构
- 新增删除文件工具(deleteFile)管理项目文件
- 新增查找引用工具(findReferences)追踪符号使用
- 添加诊断信息缓存机制供 AI 访问
- 扩展 AI 系统提示包含 C++ 开发专业指导
- 集成 clangd LSP 诊断验证流程
-
构建配置和 CMake 功能
- 更新 targetSdk 至 34 以支持 Android 15
- 调整混淆配置,降低混淆深度并增加保护规则
- 在 CMake 对话框中添加编译并运行选项
- 修复项目删除对话框的空指针异常问题
- 使用 libs.versions.toml 管理依赖版本
- 为 CMake 编译添加 ScrollView 滚动支持
- 修改 release 构建配置,使用 proguard-android.txt 替代 proguard-android-optimize.txt
- 在 debug 模式下禁用代码混淆和资源压缩,便于调试
- 启用 BlackObfuscator 混淆功能
-
ClangdClient 优化
- 在 ClangdClient 中添加 ensureExecutorAvailable 方法确保执行器可用
- 在所有异步操作前调用 ensureExecutorAvailable 检查执行器状态
- 修改 stop 方法不立即关闭 executor,避免新请求冲突
- 添加 cleanup 方法用于完全清理资源
- 在 EditorActivity 中启用 OLLVM 混淆参数进行 C++ 编译
-
Bug 修复与优化
- 修复多项已知 Bug,提升应用稳定性
- 优化内存管理,减少内存占用
- 改进编译器错误提示准确性
-
Clang 配置优化
- 优化 Clang 默认编译参数配置
- 改进 Clang 格式化配置文件
- 提升编译性能和代码生成质量
-
定制化功能支持
- 增强编译参数定制化能力
- 支持更灵活的插件配置选项
- 优化用户自定义设置体验
-
新增 Tools 工具链
- 新增cmake编译器
- 新增make支持
- 新增ninja支持
- 完善fla在大部分情况加密报错
-
UI 优化
- 优化对话框输入框样式
- 优化主页主题
- 新增 OLLVM 混淆 Clang 工具链
- 基于 Clang 18.1.8 + OLLVM 混淆器
- 支持代码混淆保护,增强逆向难度
- 自动检测工具链版本,版本不匹配时提示重新安装
- 支持的混淆参数
-mllvm -fla:控制流平坦化(Control Flow Flattening)-mllvm -sub:指令替换(Instruction Substitution)-mllvm -bcf:虚假控制流(Bogus Control Flow)-mllvm -ibr:间接分支(Indirect Branching)-mllvm -sobf:字符串混淆(String Obfuscation)-mllvm -split:基本块分割(Basic Block Splitting)-mllvm -split_num=3:指定分割次数
- 编辑器优化
- 更优秀的代码补全策略,提升补全准确性和响应速度
- 支持快捷键拆解多行(选中代码后快速拆分)
- 支持快速格式化代码(基于 clang-format)
- UI 优化
- 优化对话框输入框样式,更符合 M3 设计规范
- 对话框按钮颜色统一为 M3 紫色
- 新建项目页面自动聚焦到项目名称输入框
- 项目名称支持中文命名
- 修复大屏设备输入法焦点问题
- 添加 onWindowFocusChanged 回调方法
- 修复 iPad 等大屏设备点击唤起输入法后焦点丢失的问题
- 编译进度对话框深色主题适配
- 根据当前编辑器主题动态设置对话框背景色
- 动态调整进度指示器颜色和轨道颜色
- 文本颜色随主题自动切换
- 编译错误信息对话框主题颜色适配
- **更新修复
- 修复更新弹窗主题
- 新增 Git 集成功能
- 支持 Git 仓库克隆(支持私有仓库认证)
- Git 凭据管理(加密存储)
- Git 提交、推送、拉取操作
- 分支管理功能
- 文件列表显示 Git 状态标识(M/A/U/C 等)
- 新增项目管理功能
- 新建项目向导(支持 Git 初始化选项)
- 最近项目列表
- 项目配置保存和恢复
- 新增 Android API Level 配置
- 支持 API 21 到 API 35 版本选择
- 编译器目标参数可配置
- 新增应用内版本更新
- 自动检查 GitHub releases 版本
- 支持 APK 下载和安装
- Markdown 格式发布说明渲染
- 新增自动保存功能
- 支持定时静默保存文件
- 可配置保存间隔
- 优化编译器参数处理
- 区分 C 和 C++ 文件编译参数
- 自动过滤 C++ 专用参数
- UI 优化
- 工具栏响应式布局(窄屏适配)
- 暗色主题对话框样式统一
- 远程仓库添加对话框
- 重大升级:将编译链从 GCC 升级为 Clang,提供更好的编译性能和错误提示
- 新增 C++17 标准支持,可在编译参数中选择
-std=c++17 - 优化 Makefile 文件读取,修复 mk 文件解析问题
- 新增
toolbarHook,支持在工具栏添加自定义按钮 - 新增
on_app_initHook,支持应用启动时执行初始化操作 - 优化编译缓存机制,提升编译速度
- 改进错误提示和日志输出
- 优化内存使用,减少应用占用空间
- 新增插件
author字段支持,显示插件作者信息 - 新增
run_menuHook,支持在运行按钮下拉菜单添加自定义项 - 优化插件列表 UI,新增卸载按钮
- 修复保存按钮点击无反应的问题
- 修复首次启动状态栏显示紫色的问题
- 修复首次打开编辑器显示白色主题的问题
- 新增 Clangd LSP 智能代码分析支持
- 新增插件安装脚本系统(.install 文件)
- 新增插件 Hook 系统(.hook 文件)
- 新增插件 PATH 环境变量自动注入
- 新增编辑器菜单 Hook 支持
- 新增编译事件 Hook(编译前/成功/失败)
- 新增运行事件 Hook(运行前)
- 新增
command_result节点(带 Loading 和结果分支) - 新增
grep节点(正则表达式匹配) - 新增
run_in_terminal节点(在终端运行文件) - 优化编译流程,支持编译缓存
- 修复多项已知问题
- 初始版本发布
- 基础代码编辑器功能
- GCC/G++ 编译支持
- 终端模拟器
- 插件系统基础功能
Akode 的开发离不开以下开源项目:
- Sora Editor - 代码编辑器组件
- Termux - 终端模拟器
- Clang/LLVM - C/C++ 编译器工具链
- libsu - Root 权限访问库
- Material Components - Material Design 组件库
- JGit - Java Git 实现库
- OkHttp - HTTP 客户端
- Markwon - Markdown 渲染库
- C4droid - Android 平台 C/C++ 编程工具
- simpleC - Android 平台 C/C++ 编程工具
阿夜 - GitHub
如有问题或建议,欢迎反馈!