You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在adb shell环境下编译运行C/C++命令行程序

结论

你提到的两类操作都可以在安卓adb shell环境下正常实现,具体说明如下:


1. C/C++ 编译环境配置

安卓系统默认没有预装gcc、clang这类编译工具,你可以通过两种方式搭建本地编译环境:

  • 安装Termux终端应用,直接在Termux内执行pkg install clang或pkg install gcc即可安装完整的编译工具链,编译生成的都是原生安卓命令行二进制程序,无需打包为APK,既可以在Termux内直接运行,也可以放到adb shell环境下执行。
  • 不想额外安装应用的话,也可以使用安卓NDK交叉编译工具链在电脑端提前编译好gcc/clang的静态二进制包,推送到手机的/data/local/tmp这类有可执行权限的目录后,就可以直接在adb shell中调用编译C/C++代码。

注意:不要把编译好的二进制程序放到内置存储(sdcard)目录下运行,安卓默认给内置存储挂载了noexec参数,无法直接执行存储在内置存储的二进制文件。


2. 标准库与系统调用支持

  • C标准库:安卓默认使用自研的Bionic C库,和桌面Linux常用的glibc有少量接口差异,但绝大多数C标准函数都可以正常使用,编译时开启静态编译把依赖打包进二进制,基本不会出现兼容问题。
  • 系统调用与文件操作:fork()、exec()、kill()这类经典POSIX系统调用安卓完全支持,文件描述符的打开、读写、复制等常规操作和普通Linux系统逻辑完全一致,普通用户权限下的常规使用没有任何限制。
  • 权限限制:部分涉及访问其他应用私有目录、修改系统配置的高权限操作,会受到安卓SELinux规则的限制,需要提前获取root权限或者修改对应SELinux规则才能正常执行。

内容的提问来源于stack exchange,提问作者Galaxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:09:04