צילום מסך באנדרויד דרך שורת הפקודה

ישנם מספר דרכים לבצע צילום מסך באנדרויד, בניגוד לגרסאות ישנות (לפני 4) היום האופציה כבר מובנת במערכת ההפעלה, לחיצה בו זמנית על Power + Vol Down – והתמונה תשמר לכם לתיקיה Screenshot, ואליה תוכלו לגשת דרך הגלריה.

לרוב אני מעדיף להעביר קבצים דרך ממשק ה-ADB עם Pull/Push, אז אם אפשר להעביר קבצים, אז למה לא גם לבצע צילום מסך … ?

דרך אחת היא להשתמש בפקודה – screencap

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png
  1. השורה הראשונה מבצעת את הצילום מסך
  2. השניה מושכת את התמונה למחשב
  3. והשלישי מוחקת את התמונה מהמכשיר

עד כאן זה נחמד ועובד, אבל למה לעצור כאן ?

הפלט של screencap -h נותן מידע נוסף

~ # screencap -h

usage: screencap [-hp] [-d display-id] [FILENAME]
   -h: this message
   -p: save the file as a png.
   -d: specify the display id to capture, default 0.

If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.

אז מסתבר שניתן להעביר את התמונה ישירות למחשב אם נריץ את הפקודה  בלי שם קובץ

adb shell screencap -p > cap.png

אך בפועל זה לא יעבוד, מגלגול קצר גילתי שאני לא היחיד שנתקל בבעיה הזאת – והיא נובעת מכך ש-adb מבצע המרה של שורות חדשות (LF) לפורמט של ווינדוס (CR+LF).

אז מה שאנחנו צריכים לעשות זה להעביר את הפלט דרך פילטר שמשנה חזרה את הסיומות לפורמט LF ונקבל את התמונה שלנו

adb shell screencap -p | sed -e "s/\r$//" > cap.png

 טיפ נוסף על הדרך – הדלקת המסך דרך ה-CLI

adb shell input keyevent 26

מקורות:

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *