Android(安卓)应用中执行cd命令
16lz
2021-12-10
如果要在java程序里执行一条linux可以用下面的写法,android中也类似
Java代码- Processprocess=Runtime.getRuntime().exec(cmd);
- process.waitFor(); //让该process 阻塞
但是当遇到像cd这样的命令时,上面的这种写法切不管用,很多时候我们以为是命令输错了或是文件找不到。
现在提供一种新的执行命令方法:
Process proc = null;try {proc = Runtime.getRuntime().exec("/system/bin/sh", null, new File("/system/bin")); // android中使用// proc = Runtime.getRuntime().exec("/bin/bash", null, new File("/bin")); //Linux中使用// 至于windows,由于没有bash,和sh 所以这种方式可能行不通Log.d("","");} catch (IOException e) {e.printStackTrace();}if (proc != null) {BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);out.println("cd /data/data/com.vatata.atest.commandexecute");out.println("pwd");out.println("pwd");out.println("pwd");out.println("cd /");out.println("ls -l");// out.println("exit");try {String line;while ((line = in.readLine()) != null) {System.out.println(line);Log.d("command", line);}// proc.waitFor(); //上面读这个流食阻塞的,所以waitfor 没太大必要性in.close();out.close();proc.destroy();} catch (Exception e) {e.printStackTrace();}}
附上源码吧,可以看看,希望对需要的人有点帮助 <!--EndFragment-->
更多相关文章
- 友盟推送android 8.0系统不显示推送消息问题
- Android预安装软件&adb命令&编译源码
- android Ant编译项目多渠道打包
- Android(安卓)多模拟器使用adb shell
- Android(安卓)bluetooth介绍(四): a2dp connect流程分析
- Android(安卓)命令行编译、打包生成apk文件
- Ionic 运行报错No resource identifier found for attribute 'ap
- 使用sencha cmd创建android应用
- Android执行shell命令