デバイスからadb pullコマンドを実行するpythonスクリプトに取り組んでいます。大きな .apk ファイルをプルする場合、プルが完了するまでにかかる時間を調べる方法はありますか?
プルの例:
./adb pull /data/app/com.rovio.angrybirdsstarwars.ads.iap-1.apk
これは、スリープ後でも次のコマンドが開始される前に、完了するまでに時間がかかりました(4)
電話してみませんか
file_name = "/data/app/com.rovio.angrybirdsstarwars.ads.iap-1.apk"
cmd = "adb shell ls -l %s"%file_name #stat doesnt work i dont think
file_size = subprocess.Popen(cmd,stdout=subprocess.PIPE).communicate()[0].split()[3]
usb2_xfer = 4603904.0 #4496 KB/s (http://forum.xda-developers.com/showthread.php?t=882608)
print "EST TIME:%0.2f secs"%(file_size/usb2_xfer)
usb2_xferを調整する必要があるかもしれません...また、デバイスが1.1ではなくusb 2.0で実行されていることを確認してください(または、はるかに遅くなります...ダウンロード速度を取得したリンクを参照してください)
これは、USB経由でデバイスに接続していることを前提としています...ネットワーク経由で接続している場合は、ダウンロード速度を得るために小さなtxtファイルをダウンロードしてください....
os.system でコマンドを呼び出している場合、コマンドが終了するまでブロックする必要があります
print "Start Command!"
os.system("adb pull ...")
print "Command Finished!!"
Popen で呼び出している場合
print "start command"
p = subprocess.Popen("adb pull ...",stdout = subprocess.PIPE,stderr=subprocess.PIPE)
stdout,stderr = p.communicate() # you could do p.wait() if you dont care about output
print "Command Finished!"
print stdout
print stderr