2016-09-01 2 views
0

オフィスのAndroidデバイスでプロセスを自動化するためにbashスクリプトを使用します。私は、スクリプト内でこのようなシェルを呼び出す:(...はadbのシェルコマンドの任意の量のために立ってみましょう。)adbシェルの起動には多くのリソースが必要ですか?

#!/bin/bash 

... 

adb shell do stuff 
adb shell do stuff 
adb shell do stuff 

... 

exit 

これらのスクリプトは非常にうまく機能します。シェルの1つのインスタンスに複数のコマンドを送信するための研究をすでに行っています。彼らができる限り効率的であるかどうかは疑問だ。私は多くのシステムリソースを使用していますか?このプロセスを使用して非常に大規模な自動化スクリプトを実行しているときに、将来この問題が発生する可能性はありますか?

答えて

1

新しいshプロセスの起動には時間がかかりません。複数のコマンドを同じshインスタンスにキューイングしても、パフォーマンスが大幅に向上することはありません。それらのshellセッションで実行するコマンドに注意してください。 inputのようないくつかのコマンドは、ネイティブバイナリではなく、起動に時間がかかるjavaアプリケーションです。したがって、1秒あたりの倍数を起動することはできません。

+0

これは実際に多くを説明します。この質問は、他の質問のシナリオに関連しています。http://stackoverflow.com/questions/39278510/adb-shell-input-command-changes-when-ran-on-multiple-devices/39282793 'input'コマンドは、それらのコマンドが正確に発射されるようにしました。かなり面白いのは、 'input'コマンドがJavaアプリケーションだということです。 – jagdpanzer

1

ない大したことが、あなたはそれを書いて、視覚化する方がはるかに簡単だとして、あなたには、いくつかのif Sまたはループを持っている場合は便利な場合があり

adb shell <<! 
    do stuff 
    do stuff 
    do stuff 
! 

を行うことができます。

+0

*時には便利ですが*まだ**顕著なパフォーマンスの向上はありません** –

+0

多分それはそうです: 'nの時間は{0..9999}です。 adbシェルls -l ">"/dev/null;を実行します。 本当\t 3m29.764s ユーザー行わ\t 0m1.032s SYS \t 0m1.560s >行う >のls -l>は/ dev/nullに > I = $ [$ iの10000を-lt]ながら$時間( (i + 1)) > done 2m1.52s実0m2.43sユーザー0m5.68s系 ' –

関連する問題