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

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

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

@H_404_2@程序:

@H_404_2@编译应用程序:

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

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

>adb push a.out /mnt/sdcard
@H_404_2@然后转到SHELL并尝试运行a.out:

>adb shell
> 
>/mnt/sdcard/a.out
@H_404_2@结果是:

>`/mnt/sdcard/a.out: permission denied`
@H_404_2@命令ls -l显示a.out的权限:

>`----rwxr-x system   sdcard_rw   863656 2012-04-12 22:42 a.out`
@H_404_2@我试图改变权限:

>chmod 777 /mnt/sdcard/a.out
@H_404_2@但权利不变:

>`----rwxr-x system   sdcard_rw   863656 2012-04-12 22:42 a.out`
@H_404_2@我想我已经离开了一些重要的事情使用android.

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

@H_404_2@非常感谢.

@H_404_2@附:对不起我的英文=)

解决方法

默认情况下,SD卡装有选项noexec,不允许执行卡上的任何文件,无论它是什么权限(即使是-rwxrwxrwx),因此您需要将文件移动到另一个位置,然后执行它. @H_404_2@最简单的是将文件移动到/ 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
@H_404_2@这不需要root访问,并且在重新启动后仍然存在.

猜你在找的Android相关文章