如何在Android SHELL中运行C应用程序

前端之家收集整理的这篇文章主要介绍了如何在Android SHELL中运行C应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想运行在C上编写的hello世界,并使用 Android toolchain 9进行编译,但是我遇到了问题:默认情况下,我没有权限启动它,我无法使用chmod来更改权限.

我使用Android 2.3.3 – Api 10级

应用程序由交叉编译器编译为API级别9

程序:

编译应用程序:

~/toolchain_andr9/bin/ arm-linux-androideabi-g++ helloworld.cpp

然后在模拟器上向SDCARD发送应用程序:

>adb push a.out /mnt/sdcard

然后转到SHELL并尝试运行a.out:

>adb shell
> 
>/mnt/sdcard/a.out

结果是:

>`/mnt/sdcard/a.out: permission denied`

命令ls -l显示a.out的权限:

>`----rwxr-x system   sdcard_rw   863656 2012-04-12 22:42 a.out`

我试图改变权限:

>chmod 777 /mnt/sdcard/a.out

但权利不变:

>`----rwxr-x system   sdcard_rw   863656 2012-04-12 22:42 a.out`

我想我已经离开了一些重要的事情使用android.

有人可以帮助我,并给我一种如何在Android SHELL中运行应用程序的方法

非常感谢.

附:对不起我的英文=)

解决方法

默认情况下,SD卡装有选项noexec,不允许执行卡上的任何文件,无论它是什么权限(即使是-rwxrwxrwx),因此您需要将文件移动到另一个位置,然后执行它.

最简单的是将文件移动到/ data / local / tmp /并使用完整路径(通常的POSIX PATH语义)执行它.

> adb push a.out /data/local/tmp/a.out
> adb shell
> chmod 755 /data/local/tmp/a.out
> /data/local/tmp/a.out

这不需要root访问,并且在重新启动后仍然存在.

原文链接:https://www.f2er.com/android/311353.html

猜你在找的Android相关文章