执行命令android本地代码

我试图从本地代码启动一个Android应用程序。

adb shell中,我们可以使用“am”命令启动应用程序。

链接:

如何运行(不仅安装)使用.apk文件的android应用程序?

有没有办法通过C代码调用这个“am”命令?

我尝试了下面的行,但是exec正在返回-1:

ret = execl("/system/bin/am", "start", "-a", "android.intent.action.MAIN", "-n", "com.android.settings/.Settings", (char *)NULL); 

这是对的还是不对?

Solutions Collecting From Web of "执行命令android本地代码"

我得到了答案…我'执行壳本身,并给它的命令…它的工作

 ret = execl("/system/bin/sh", "sh", "-c", "am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity", (char *)NULL); 

感谢m0skit0,Padma Kumar,Yuri …

你应该使用system()系列方法,首先它将fork子进程和调用shell然后返回,所以它不会阻塞android主线程