如何在adb shell里面运行Linux编译出来的可执行程序

把编译好的HelloWorld程序使用 adb push 上传的一个Android系统中。这里测试时使用的是一个Android虚拟机,其中虚拟了一个 256M的sdcard。这里把程序先上传到sdcard有一个好处是基本不会失败。

上传程序后当然可以尝试着在Android Shell 中运行编译好的程序。

1)  使用 adb shell, 进入Android 的命令行。

2)  cd /mnt/sdcard 进入HelloWorld的存储位置。

3)  ./HelloWorld 执行程序,

但如果尝试在sdcard 中运行程序多半会遇到一个Permision Denied一个错误。

我们可以简单尝试使用 chmod 777 HelloWorld来修复它,但再次运行程序时多半还会失败。

网上找了找原因,给出的解释是Android不能修改 sdcard下 程序的权限,最简单的老老实实把它复制到Android系统下的某个文件夹下吧。

4)  cp /mnt/sdcard/HelloWorld  /data/    复制文件到Android的data目录下

5)  chmod 777 HelloWorld  修改权限

6)  ls -l 当然可以在查询一下,但也不是必须的。

7)  ./HelloWorld  运行程序

这时基本已经可以了。

picture_1

 

如果交叉编译出来的程序不正确在这里是没法运行的,出现 error:  magic 7F45  基本上就是交叉编译出的问题了。

picture_err


————————————————
版权声明:本文为CSDN博主「zy__」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangzhiyu1980/article/details/16972937

你可能感兴趣的:(如何在adb shell里面运行Linux编译出来的可执行程序)