#android #bash #adb
Вопрос:
Конечная цель-получить скриншот приложения для Android (разрабатываемого в Android Studio), работающего на реальном устройстве, а не в AVD.
При попытке создать файл .bashrc со следующим кодом (только для тестирования):
alias screenshot="adb exec-out screenshot -p > ~/Desktop/adb_screen.png"
, Я получаю файл adb_screen.png на своем рабочем столе, который не распознается как изображение (без размеров), поэтому я не могу его открыть.
Важно отметить, что снимок экрана, который я пытаюсь сделать, сделан с подключенного реального устройства. На самом деле, когда я запускаю adb devices -l
, он распознает устройство, с которого я хочу сделать снимок экрана. Не могли бы вы помочь мне решить эту проблему.
Спасибо,
Комментарии:
1. Для начала неплохо бы изучить файл. Если
adb
что-либо записывается в его стандартный вывод, а не проходит точно через выходные данные родительского процесса, это ваша проблема.2. Кстати, я сомневаюсь (действительно, я в полном недоумении), что псевдоним имеет к этому какое-то отношение. Всегда старайтесь максимально упростить вопрос, задавая его: если у вас возникает та же проблема при запуске
adb exec-out screenshot -p > ~/Desktop/adb_screen.png
в командной строке git bash / msys-bash без псевдонима, то вам следует задать вопрос таким образом, без использования псевдонимов.3. (Если есть псевдоним-конкретным, то я заподозрил бы, что сгенерированное имя имеет скрытый символ на конце, как могло произойти, если ваш
.bashrc
был спасен с неверной строки типа; в любом случае, бежатьset -x
, чтобы включить ведение журнала трассировки, прежде чем ссылаться на псевдоним будет показывать команда, которая выполняется, чтобы разрешить вопросы, которые вообще вроде как должен быть запущен вниз).4. Предполагая, что это происходит только при запуске adb из bash, а не при запуске adb из cmd.exe Кстати, возможно, стоит посмотреть, проходит ли поток обработку, предназначенную для текста-конфликт CR против CRLF очень реален, и программы, которые пытаются перевести двоичные данные так, как если бы это был текст, могут легко привести к повреждению.
5. Но на самом деле … проверьте файл . Посмотрите, не начинается ли оно с какого-нибудь текста, которого там быть не должно. Посмотрите, как его фактический размер отличается от размера того же файла, если он создан на устройстве без переноса через стандартный вывод adb. Сравните
hexdump
выходные данные исходного файла и неработающей версии; и т.д. Все эти шаги по отладке-это то, что вы можете сделать, потому что у вас есть реальное оборудование и реальные файлы, но мы не можем сделать это сами отсюда.