2016-09-01 2 views
0

Я использую скрипт bash для автоматизации процессов на устройствах Android в моем офисе. Я называю оболочки, как это в скрипте: (. Пусть ... стенд для любого количества команд оболочки ADB)Запускает ли оболочка adb много ресурсов?

#!/bin/bash 

... 

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

... 

exit 

Эти сценарии действуют очень хорошо. Я уже провел исследование по отправке нескольких команд в один экземпляр оболочки; Мне интересно, насколько они эффективны, какими они могут быть. Я использую много системных ресурсов? Может ли это потенциально вызвать проблемы в будущем, когда я буду запускать очень большие сценарии автоматизации, используя этот процесс?

ответ

1

Завершение процесса создания sh не требует много времени и ресурсов. Очередь нескольких команд на тот же экземпляр sh не обеспечивает заметного улучшения производительности. Просто помните о том, какие команды вы запускаете в этих сеансах shell. Некоторые команды, такие как input, не являются внутренними двоичными файлами, а java приложениями, которые занимают больше времени, чтобы начать - так что не ожидайте, что у вас будет возможность кратковременно пропускать их в секунду.

+0

Это на самом деле многое объясняет. Этот вопрос связан со сценарием в моем другом вопросе, http://stackoverflow.com/questions/39278510/adb-shell-input-command-changes-when-ran-on-multiple-devices/39282793 Замедление моего Команды 'input' позволяли этим командам точно срабатывать. Довольно интересно, что команды 'input' - это java-приложения. – jagdpanzer

1

Не большое дело, но вы можете сделать

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

который иногда полезно, если у вас есть какие-то if с или петли, как это гораздо проще писать и визуализировать.

+0

*, который иногда полезен *, но все же ** не обеспечивает заметного улучшения производительности ** –

+0

Возможно, он делает: 'время для n в {0..9999}; do adb shell ls -l ">"/dev/null; сделали реального \t 3m29.764s пользователь \t 0m1.032s SYS \t 0m1.560s $ раз в то время как [$ я -lt 10000] > сделать > Ls -l>/DEV/нуль > я = $ ((i + 1)) > сделано 2m1.52s реальный 0m2.43s пользователь 0m5.68s system' –