2017-01-23 25 views
-1

Androidデバイスでプログラムによっていくつかのシェルコマンドを実行しようとしています。私はいくつかのコマンドを実行することができますが、それらのすべてを実行することに失敗しました。一例として、私は次のコマンドを実行することができる午前:Androidスタジオの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"のようなコマンドに対して正しい出力を与えてくれますが、次のコマンドに対して私に正しい応答を与えません。私のexecuteCommandLine関数は次のようになります。

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); 
    } 
} 

私はすべてのコマンドに対してどのように応答するのでしょうか。

+0

私が間違っていない場合は、アプリケーション内でAndroid携帯でこれらのコマンドをプログラムで実行したいとお考えですか? –

+0

はいアプリケーション内でAndroid携帯でプログラム的に実行したいです。 – Bouba

+0

アプリ内で 'adb push'を実行しようとしていますか? –

答えて

1

あなたはthere

アンドロイドデバッグブリッジ(ADB)は、あなたが実行しようとしているのエミュレータインスタンスまたは接続されたAndroidデバイス

と通信することができます多彩なコマンドラインツールです読み取ることができたようadbはコンピュータ上で動作するコマンドラインユーティリティであり、アンドロイドデバイスには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

関連する問題