各位高手,能不能用c语言,来执行adb shell,生成so文件释放接口给上层。
系统环境要求是安卓,在windows下可以,但是在安卓下,返回无adb命令,直接在安卓终端输入adb命令是可以的,本人理解,可能是在安卓下,没有可供c调用的adb的应用程序,我用的编译器是Cygwin交叉编译,请高手帮忙!开发

解决方案 »

  1.   

    试试通过system命令来调用adb shell 里面相关命令
      

  2.   

    在手机上无需adb啊,adb是和pc用的,直接System执行即可
      

  3.   

    就是用system来实现的,但是system()操作本地是可以成功的,但是system()操作远程设备不成功,
      

  4.   

    问题补充:用c代码
    JNIEXPORT jint JNICALL Java_com_known_util_device_DeviceUtil_installApk
      (JNIEnv * env, jobject objet, jstring js)
    {char buf[200]="";
    //char str[200]="";
    char *str=(char*)env->GetStringUTFChars(js,0); 
    sprintf(buf,"adb install -r %s",str);int i=system("adb install /mnt/sdcard/ApkInstall/A.apk");
    usleep(1000);
    return i;
    }执行i=256,没有执行成功
    但是直接在终端上输入adb install /mnt/sdcard/ApkInstall/A.apk,执行成功。
      

  5.   

    adb是直接和手机上的adbd通讯,看你需求想安静模式下装apk吧,有了root权限才可以
      

  6.   

    root权限已经有了,
    直接在终端上输入adb install /mnt/sdcard/ApkInstall/A.apk,是可以的,但是用c代码不行
      

  7.   

    LS的几位都跟你解释那么清楚了  
    adb是用来操作android设备的  但是你在android里面肯定是没这个的啊
    安装可以试试用  pm install -r path
      

  8.   

    安装肯定是安装了,不然直接 在终端输入命令不会执行成功,tanwei4199你要仔细读我的问题,再回复。谢谢
      

  9.   

    我在我的nexus4上试了一下   竟然有adb命令   然后试着安装一下apk   发现不行   结果是  等待设备  waiting for device
      

  10.   

    LZ想通过android手机/平板给另外的手机/平板安装应用么?
      

  11.   

    请问你在应用层调用installApk时应用程序有先获取root权限吗?APP权限肯定是调用不了的
      

  12.   

    樓主還是先掌握一下adb的基礎知識吧
      

  13.   

    少年,看看adb源码,adb就是socket client,在手机上都是调用的pm命令执行安装,卸载的