2017-01-23 2 views
-1

Android 장치에서 프로그래밍 방식으로 일부 셸 명령을 실행하려고합니다. 일부 명령을 실행할 수는 있지만 모든 명령을 실행하지 못했습니다.Android Studio의 ADB 셸에서 명령 실행

executeCommandLine(“ls”) 
executeCommandLine(“netstat –atun”) 

하지만 지금은 제대로 실행되지 않습니다 다음 명령을 실행해야합니다 :

$ adb push netstat3 /data/local/tmp/ 
$ adb shell 
$ chmod 755 /data/local/tmp/netstat3 
$ /data/local/tmp/netstat3 

나는 위를 실행하는 기능을 썼다을 예를 들어 나는 다음과 같은 명령을 실행 할 수 있어요 Android에서 언급 된 명령. 이 함수는 "ls"및 "netstat -atun"과 같은 명령에 대한 올바른 출력을 제공하지만 다음 명령에 대한 올바른 응답을 제공하지 않습니다. 나는 나의 모든 명령에 대한 응답을받을 수있는 방법을 알고 싶습니다

public String executeCommandLine(String commandLine) { 
    try { 
    Process process; 
    process = Runtime.getRuntime().exec(commandLine); 

    BufferedReader reader = new BufferedReader(
       new InputStreamReader(process.getInputStream())); 
    String read; 
    StringBuilder output=new StringBuilder(); 
    while ((read = reader.readLine())!=null){ 
     output.append(read); 
     output.append("\n"); 
     Log.d("executed command ", output.toString()); 
    } 
    reader.close(); 
    process.waitFor(); 
    return output.toString(); 
    } catch (IOException e) { 
    throw new RuntimeException(e); 
    } catch (InterruptedException e) { 
    throw new RuntimeException(e); 
    } 
} 

: 내 executeCommandLine 기능은 다음과 같다.

+0

내가 잘못하지 않았다면, 응용 프로그램 내에서 Android 폰에서 프로그래밍 방식으로 명령을 실행하고 싶다고 말할 수 있습니까? –

+0

예 내 응용 프로그램 내에서 Android 휴대 전화에서 프로그래밍 방식으로 실행하고 싶습니다. – Bouba

+0

앱에서'adb push'를 실행하려고합니까? –

답변

1

당신이 there

안드로이드 디버그 브리지 (ADB)를 읽을 수있는 것처럼 당신이 에뮬레이터 인스턴스 또는 연결된 안드로이드 장치 당신은 실행하려고하는

을 통신 할 수있는 다양한 명령 줄 도구입니다 adb은 컴퓨터에서 실행되는 명령 줄 util이고 Android 장치에는 adb이 없기 때문에 안드로이드 장치에 대한 adb 명령은 의미가 없습니다.

+0

_ "안드로이드 장치에 아무런 adb도 없습니다"_ 아주 정확하지 않습니다. 특정 OS 버전 또는 제조업체의'adb' 바이너리에 따라 시작되는 Ether은'system/bin' 아래에 배송되었습니다. _ "당신이하고있는 것을 알지 못한다면 대부분의 경우에는 안되는 안드로이드 장치에 대해 adb 명령을 실행하려고합니다. @Bouba [이 답변] (http :// /stackoverflow.com/questions/34104119/why-does-exec-start-a-adb-daemon/34112381#34112381) 현재 답변 외에 추가 설명을 제공 할 수 있습니다. – Onik

+0

특정 버전의 안드로이드에 대한 링크가 adb와 함께 제공되기 시작 했습니까? 어떻게 유용 할 지 모르겠다. – Divers

+0

예! 링크는 내 답변에 제공됩니다 (즉, [this one] (http://www.slideshare.net/tetsu.koba/adbandroid-debug-bridge-how-it-works)). 그리고 그것을 사용할 수있는 방법에 대한 설명 (슬라이드 36부터 시작)이 있습니다. – Onik

관련 문제