我要在android中使用第三方的可执行程序。程序用c写的,已经在linux在下交叉编译完成,适合arm指令集的。文件放在android工程assets目录,android应用启动后复制到应用data目录,我通过adb去运行那个程序是可以的,在代码中调用一直不成功,没有返回结果,代码贴出来,求帮忙,在代码中怎么调用可执行程序呢?
//编译过的文件已经通过流复制到data目录下了,我在PC上用adb是可以运行它的,这里通过代码调用失败
try {
Log.i("service", "servicestart");
String rsyncpath = getFilesDir().getPath()+"/"+"rsync-3.0.6-arm-softfloat-linux-gnueabi";
Log.i("paths", rsyncpath);
File rsyncfile = new File(rsyncpath);
//设置执行权限
rsyncfile.setExecutable(true, true);
Process process = Runtime.getRuntime().exec(rsyncpath);
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
int ret = process.waitFor();
if(ret!=0){
Log.i("rsync","error"+ret);
}else{
Log.i("rsync",output.toString());
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。