<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 操作系統 > Linux教程 > android java如何執行linux命令

        android java如何執行linux命令

        時間: 春健736 分享

        android java如何執行linux命令

          android java如何執行linux命令?android的程序基于java開發,當我們接上調試器,執行adb shell,就可以執行linux命令,下面跟著學習啦小編來一起來了解下吧。

          android java執行linux命令方法

          通常有很多命令可以通過串口終端輸入,得到結果,在程序中,通常我們需要得到某些命令的結果,在代碼中執行命令,并將結果返回。

          有兩個類:CommandHelper.java和CommandResult.java 第一個類用于處理命令,第二個則用于返回一個結果

          package com.example.task_aidl;

          import java.io.BufferedReader;

          import java.io.IOException;

          import java.io.InputStreamReader;

          public class CommandHelper {

          //default time out, in millseconds

          public static int DEFAULT_TIMEOUT;

          public static final int DEFAULT_INTERVAL = 1000;

          public static long START;

          public static CommandResult exec(String command) throws IOException, InterruptedException {

          Process process = Runtime.getRuntime().exec(command);//創建一個字進程,并保存在process對象中

          CommandResult commandResult = wait(process);

          if (process != null) {

          process.destroy();

          }

          return commandResult;

          }

          private static boolean isOverTime() {

          return System.currentTimeMillis() - START >= DEFAULT_TIMEOUT;

          }

          private static CommandResult wait(Process process) throws InterruptedException, IOException {

          BufferedReader errorStreamReader = null;

          BufferedReader inputStreamReader = null;

          try {

          errorStreamReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

          inputStreamReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

          //timeout control

          START = System.currentTimeMillis();

          boolean isFinished = false;

          for (;;) {

          if (isOverTime()) {

          CommandResult result = new CommandResult();

          result.setExitValue(CommandResult.EXIT_VALUE_TIMEOUT);

          result.setOutput("Command process timeout");

          return result;

          }

          if (isFinished) {

          CommandResult result = new CommandResult();

          result.setExitValue(process.waitFor()); //process.waitFor() 表示 等這條語句執行完后再往下執行

          //parse error info

          if (errorStreamReader.ready()) {

          StringBuilder buffer = new StringBuilder();

          String line;

          while ((line = errorStreamReader.readLine()) != null) {

          buffer.append(line);

          }

          result.setError(buffer.toString());

          }

          //parse info

          if (inputStreamReader.ready()) {

          StringBuilder buffer = new StringBuilder();

          String line;

          while ((line = inputStreamReader.readLine()) != null) {

          buffer.append(line);

          }

          result.setOutput(buffer.toString());

          }

          return result;

          }

          try {

          isFinished = true;

          process.exitValue();

          } catch (IllegalThreadStateException e) {

          // process hasn't finished yet

          isFinished = false;

          Thread.sleep(DEFAULT_INTERVAL);

          }

          }

          } finally {

          if (errorStreamReader != null) {

          try {

          errorStreamReader.close();

          } catch (IOException e) {

          }

          }

          if (inputStreamReader != null) {

          try {

          inputStreamReader.close();

          } catch (IOException e) {

          }

          }

          }

          }

          }

          ------------------------------------------------------------------------------

          package com.example.task_aidl;

          public class CommandResult {

          public static final int EXIT_VALUE_TIMEOUT=-1;

          private String output;

          void setOutput(String error) {

          output=error;

          }

          String getOutput(){

          return output;

          }

          int exitValue;

          void setExitValue(int value) {

          exitValue=value;

          }

          int getExitValue(){

          return exitValue;

          }

          private String error;

          public String getError() {

          return error;

          }

          public void setError(String error) {

          this.error = error;

          }

          }

          ------------------------------------------------------------

          簡單的調用: 殺掉一個進程 kill -9 PID

          @Override

          public String killProc(String PID) throws RemoteException {

          // TODO Auto-generated method stub

          String cmd = "kill -9 "+PID;

          String reply = "";

          Log.v("cmd",cmd);

          try {

          CommandHelper.DEFAULT_TIMEOUT = 5000;

          CommandResult result = CommandHelper.exec(cmd);

          if (result != null) {

          if(result.getError()!=null)

          {

          Log.v("Output","Error:" + result.getError());

          reply = result.getError();

          }

          if(result.getOutput()!=null)

          {

          Log.v("Output","Output:" + result.getOutput());

          reply = result.getOutput();

          }

          }

          } catch (IOException ex) {

          Log.v("Output","IOException:" + ex.getLocalizedMessage());

          } catch (InterruptedException ex) {

          Log.v("Output","InterruptedException:" + ex.getLocalizedMessage());

          }

          return reply;

          }

        android java如何執行linux命令相關文章:

        1.android js調用java方法

        2.linux下啟動java程序的通用腳本介紹

        3.Linux常用網絡服務端口

        4.初學者需要學會Linux的命令

        5.Linux怎么搭建Android開發環境

        6.如何解決Linux系統下的Java進程消失

        1368964 主站蜘蛛池模板: 国产精品熟妇视频国产偷人| 中文毛片无遮挡高潮| 久久久久99精品成人片欧美| 精品久久蜜桃| 国产一区二区不卡在线| 天美传媒mv免费观看完整| 国产欧美另类久久久精品不卡| 亚洲狼人久久伊人久久伊| 亚洲高清WWW色好看美女| 一区二区三区国产亚洲网站| 日本丰滿岳乱DVD| 国产免费视频| 欲色欲色天天天www| 成人午夜伦理在线观看| 国产日产欧产精品精品| 精品无码久久久久国产电影| 日韩国产亚洲一区二区三区| 久久91精品牛牛| 国产精品国产三级国产专业| 亚洲精品视频一二三四区| 色777狠狠狠综合| 极品少妇的诱惑| 国产日韩av免费无码一区二区三区| 日韩 一区二区在线观看| 国产精品丝袜亚洲熟女| 夜夜添狠狠添高潮出水| 姝姝窝人体色WWW在线观看| 视频一区无码中出在线| 日韩人妻中文字幕精品| 亚洲精品成人午夜在线| 18禁国产一区二区三区| 国产精品区在线和狗狗| 国产激情一区二区三区不卡| 国内少妇偷人精品免费| 丰满人妻熟妇乱又精品视| 午夜AAAAA级岛国福利在线| 自拍亚洲综合在线精品| 日产无人区一线二码三码2021| 国产欧美精品aaaaaa片| 欧美牲交A欧美在线| 久草国产在线观看|