急问android应用程序怎么执行shell脚本命令
急问android应用程序如何执行shell脚本命令
跪求大神指点~!
小菜在做一个android应用程序,需要执行系统调用命令,然后我考虑将命令写在.sh脚本里,直接调用脚本执行。
但是调用一直不成功。
我具体用到了如下行的函数调用,系统命令写入了xxxxx.sh里
Process proc=Runtime.getRuntime().exec("/system/bin/sh /system/bin/xxxxx.sh");
请懂这个的朋友指点下,谢谢!!
------解决方案--------------------
这是方法,添加到你的应用程序中即可,比较简陋,呵呵!
public void execShell(String cmd){
try{
//权限设置
Process p = Runtime.getRuntime().exec("su");
//获取输出流
OutputStream outputStream = p.getOutputStream();
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
//将命令写入
dataOutputStream.writeBytes(cmd);
//提交命令
dataOutputStream.flush();
//关闭流操作
dataOutputStream.close();
outputStream.close();
}
catch(Throwable t)
{
t.printStackTrace();
}
}
------解决方案--------------------
先要确认 你在脚本是否能正常在adb.exe窗口 环境下正常执行 脚本读写权限要注意的
如果能正常执行那么
... oncreate(){
test3()
}
private void test3() {
execCommand1("system/bin/xxxx.sh");
}
public boolean execCommand1(String cmd) {
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
process.destroy();
} catch (Exception e) {
}
}
return true;
}
跪求大神指点~!
小菜在做一个android应用程序,需要执行系统调用命令,然后我考虑将命令写在.sh脚本里,直接调用脚本执行。
但是调用一直不成功。
我具体用到了如下行的函数调用,系统命令写入了xxxxx.sh里
Process proc=Runtime.getRuntime().exec("/system/bin/sh /system/bin/xxxxx.sh");
请懂这个的朋友指点下,谢谢!!
------解决方案--------------------
这是方法,添加到你的应用程序中即可,比较简陋,呵呵!
public void execShell(String cmd){
try{
//权限设置
Process p = Runtime.getRuntime().exec("su");
//获取输出流
OutputStream outputStream = p.getOutputStream();
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
//将命令写入
dataOutputStream.writeBytes(cmd);
//提交命令
dataOutputStream.flush();
//关闭流操作
dataOutputStream.close();
outputStream.close();
}
catch(Throwable t)
{
t.printStackTrace();
}
}
------解决方案--------------------
先要确认 你在脚本是否能正常在adb.exe窗口 环境下正常执行 脚本读写权限要注意的
如果能正常执行那么
... oncreate(){
test3()
}
private void test3() {
execCommand1("system/bin/xxxx.sh");
}
public boolean execCommand1(String cmd) {
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
process.destroy();
} catch (Exception e) {
}
}
return true;
}