永发信息网

Android执行shell命令的代码该怎么写

答案:1  悬赏:70  手机版
解决时间 2021-02-09 12:57
Android执行shell命令的代码该怎么写
最佳答案
Android中执行adb shell命令的方式如下:

1234567891011121314151617181920212223242526272829303132333435363738394041424344

public static synchronized String run(String[] cmd, String workdirectory) throws IOException { StringBuffer result = new StringBuffer(); try { // 创建操作系统进程(也可以由Runtime.exec()启动) // Runtime runtime = Runtime.getRuntime(); // Process proc = runtime.exec(cmd); // InputStream inputstream = proc.getInputStream(); ProcessBuilder builder = new ProcessBuilder(cmd); InputStream in = null; // 设置一个路径(绝对路径了就不一定需要) if (workdirectory != null) { // 设置工作目录(同上) builder.directory(new File(workdirectory)); // 合并标准错误和标准输出 builder.redirectErrorStream(true); // 启动一个新进程 Process process = builder.start(); // 读取进程标准输出流 in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { result = result.append(new String(re)); } } // 关闭输入流 if (in != null) { in.close(); } } catch (Exception ex) { ex.printStackTrace(); } return result.toString(); }

android系统底层采用的是linux,所以adb这样的linux指令是可以在java代码中调用的,可以使用ProcessBuilder 这个方法来执行对应的指令。还可以通过如下方式执行:

12345678910111213141516
Process p = Runtime.getRuntime().exec("ls"); String data = null; BufferedReader ie = new BufferedReader(new InputStreamReader(p.getErrorStream())); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String error = null; while ((error = ie.readLine()) != null && !error.equals("null")) { data += error + "\n"; } String line = null; while ((line = in.readLine()) != null && !line.equals("null")) { data += line + "\n"; } Log.v("ls", data);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
vb 中:比如这个:.Application.Selection.End
人生准则阅读答案
伊美美容养生馆地址在什么地方,想过去办事
海蓝之尊.月尊绵柔型白酒42度480ml6瓶装多少
新华大厦北门地址在什么地方,想过去办事
我搜广告联盟啥情况,我搜联盟怎么回事,搜狗
曼黛国际SPA馆地址在什么地方,想过去办事
滨州学院助学贷款和贫困生为学生保密吗
一个头,梳着西发,两撇胡子打一成语
日渐式微的意思是什么
状元馄饨地址有知道的么?有点事想过去
话说有人知道迷雾森林三个试炼的任务去哪接吗
英语中哪些单词,,有“前有do后无to,前无do
懂手机的进!600~800(千元以内),买给长辈
伊人话题地址在什么地方,想过去办事
推荐资讯
新渝干锅辣鸭头解放路店地址在哪,我要去那里
娄底红玉电器专卖店在哪里啊,我有事要去这个
超越台球俱乐部地址在什么地方,我要处理点事
新三国剧中 “生子当如孙仲谋,刘景升儿子若
园林给水管网布置的考虑因素有()等。A.管网布
刚拿到驾照的新手司机怎么才能避免车辆违章
农村商业银行atm(十二里半信用社)地址在什么
袋泡茶不小心把袋子撕开了,泡出来的水还可以
26个英文字母用闽南语读
结婚时候穿的婚纱礼服应该是男方买还是女方买
高速公路收费开出告知书要不要罚款
欢乐迪地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?