exec命令android本机代码

时间:2012-03-02 08:24:47

标签: android c linux adb

我正在尝试从本机代码启动Android应用程序。

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

链接:

How to run (not only install) an android application using .apk file?

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

我尝试了以下行,但exec返回-1:

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

这是对的吗?

2 个答案:

答案 0 :(得分:1)

我得到了答案...... 我'执行了shell本身并给了它命令......它工作了

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 ......

答案 1 :(得分:0)

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