如何在Android系统中编译ARM汇编语言程序?
ARM汇编Hello World Android编译步骤
前置准备
- 安装Android NDK(推荐r21及以上稳定版本),确认对应32位ARM的交叉编译工具链可用,你提供的代码为32位ARM Linux系统调用实现,和Android内核兼容无需修改。
- 电脑上配置好adb调试工具,Android设备开启USB调试并和电脑连接正常。
编译操作
- 将你提供的汇编代码保存为
hello.s文件。 - 进入NDK工具链所在目录,默认路径为
NDK根目录/toolchains/llvm/prebuilt/[你的电脑系统,如windows-x86_64、darwin-x86_64、linux-x86_64]/bin - 汇编生成目标文件,执行命令:
arm-linux-androideabi-as -o hello.o hello.s
- 链接生成可执行文件,执行命令:
arm-linux-androideabi-ld -o hello hello.o
也可以用clang直接编译,跳过单独汇编和链接步骤,执行命令:
armv7a-linux-androideabi21-clang -nostdlib -o hello hello.s其中末尾的21对应你指定的最低兼容Android API版本,可根据需求调整。
设备运行验证
- 把可执行文件推送到设备可执行目录:
adb push hello /data/local/tmp
- 赋予可执行权限:
adb shell chmod +x /data/local/tmp/hello
- 运行程序:
adb shell /data/local/tmp/hello
正常执行会输出hello world。
注意事项
- 如果你需要编译64位ARM版本,需要修改汇编代码为AArch64语法,同时使用aarch64对应的交叉编译工具链即可。
- 若设备仅支持64位ABI,需先开启32位兼容支持,或者将代码适配为64位版本再编译运行。
内容的提问来源于stack exchange,提问作者ItsMe
相关产品推荐
相关产品推荐

