Android Debug Bridge มีอะไรอีกมากมายที่คุณอาจไม่รู้ คลิกที่นี่เพื่อดูคำแนะนำและเคล็ดลับที่เป็นประโยชน์ในการใช้ ADB!
ลิงค์ด่วน
- การเข้าถึงเชลล์
- การเชื่อมต่อกับอุปกรณ์หลายเครื่อง
- การโอนไฟล์
- การบันทึก
- แสดงรายการแอพที่ติดตั้งผ่าน ADB
- การติดตั้งและถอนการติดตั้งแอพผ่าน ADB
- แยก APK ด้วย ADB
- การสำรองและกู้คืนข้อมูลแอปพลิเคชัน
- แสดงรายการส่วนประกอบของแอป
- เปิดตัวกิจกรรม บริการ และเครื่องรับกระจายเสียง
- ปิดการใช้งานและเปิดใช้งานเกือบทุกแอพ
- กำลังจับภาพหน้าจอ
- การถ่ายโอนข้อมูลไบนารีระหว่างพีซีและอุปกรณ์ Android
หากคุณเป็นผู้ชื่นชอบ Android ที่ซุ่มซ่อนอยู่ในฉากการดัดแปลงหรือเป็นนักพัฒนาแอปมาระยะหนึ่งแล้ว ไม่ช้าก็เร็วคุณจะพบกับเครื่องมือที่เรียกว่า Android Debug Bridge หรือ ADB สำหรับ สั้น. มีการใช้กันอย่างแพร่หลายใน Android Studio เป็นยูทิลิตี้สหายบรรทัดคำสั่ง นักพัฒนา Android ยังใช้เป็นโซลูชันแบบสแตนด์อโลนในการติดตั้งและทดสอบแอปด้วยตนเอง สมาร์ทโฟนระบบ Android เช่นเดียวกับอุปกรณ์ Android ที่จำลอง
แต่ ADB สามารถทำได้หลายอย่าง และส่วนใหญ่ไม่ได้มีประโยชน์เฉพาะกับนักพัฒนาเท่านั้น แม้ว่าคุณจะไม่ใช่นักพัฒนาซอฟต์แวร์และกำลังอ่านบทความนี้ แต่ก็มีโอกาสที่ดีที่คุณอาจเคยใช้ ADB ครั้งหรือสองครั้งเพื่อ
คุณจะต้องมี ADB และทำงานบนคอมพิวเตอร์ของคุณ อย่าลืมตรวจสอบบทความของเราเกี่ยวกับ วิธีการติดตั้ง ADB ถ้าคุณต้องการความช่วยเหลือ. ในกรณีที่คุณใช้ Windows คุณต้องทำเช่นกัน ติดตั้งไดรเวอร์ OEM USB ที่เหมาะสม สำหรับอุปกรณ์ Android ของคุณ
การเข้าถึงเชลล์
หากคุณเคยใช้ ADB มาก่อน คุณอาจคุ้นเคยกับการรันคำสั่งทั้งหมดในบรรทัดเดียว แต่คุณยังสามารถใช้ ADB เพื่อเปิดเทอร์มินัลเชลล์บนอุปกรณ์ของคุณและรันคำสั่งได้โดยตรง และมันง่ายมาก!
ในหน้าต่างเทอร์มินัลหรือพรอมต์คำสั่งของคุณ:
adb shell
จากนั้นคุณจะได้รับการต้อนรับด้วย $
สัญลักษณ์ที่คุณสามารถเรียกใช้คำสั่งบนอุปกรณ์ของคุณได้โดยตรง
การเชื่อมต่อกับอุปกรณ์หลายเครื่อง
ADB สามารถสื่อสารกับอุปกรณ์หลายเครื่องพร้อมกันได้ อย่างไรก็ตาม คุณต้องระบุอุปกรณ์เป้าหมายเมื่อออกคำสั่ง ADB ในสถานการณ์ดังกล่าว
ในการดำเนินการนี้ คุณจะต้องทราบหมายเลขซีเรียลของอุปกรณ์เป้าหมาย คุณสามารถรับซีเรียลได้โดยใช้คำสั่งอุปกรณ์:
adb devices
ตอนนี้ใช้ -s
ตัวเลือกเพื่อระบุหมายเลขซีเรียลของอุปกรณ์เป้าหมาย ตัวอย่าง:
adb -s <serialnumber> shell
การโอนไฟล์
สำหรับผู้สนใจรักบรรทัดคำสั่ง ADB มอบวิธีที่ง่ายมากในการถ่ายโอนไฟล์เข้าและออกจากอุปกรณ์ Android ของคุณ เพียงแค่ใช้ pull
คำสั่งคัดลอกไฟล์และไดเร็กทอรีจากอุปกรณ์และ push
คำสั่งในการคัดลอกไฟล์และไดเร็กทอรีไปยังอุปกรณ์:
หากคุณต้องการคัดลอกไฟล์หรือไดเร็กทอรีที่มีไดเร็กทอรีย่อยไปยังอุปกรณ์ Android:
adb push local_path device_path
- ตัวอย่าง:
adb push D:\image.png /sdcard
คำสั่งต่อไปนี้จะคัดลอกไฟล์หรือไดเร็กทอรีที่มีไดเร็กทอรีย่อยจากอุปกรณ์ Android ไปยังโฮสต์พีซี:
adb pull device_path local_path
- ตัวอย่าง:
adb pull /sdcard/backup_April.tar D:\Backup
การบันทึก
Android Studio ให้ หน้าต่าง Logcatซึ่งรองรับการแสดงบันทึกจากอุปกรณ์ของคุณแบบเรียลไทม์ อย่างไรก็ตาม มันไม่มีประโยชน์เลยสำหรับการประมวลผลเป็นชุด โชคดีที่อุปกรณ์ Android มาพร้อมกับคำสั่ง logcat ที่พร้อมใช้งานผ่าน ADB ซึ่งสามารถใช้เพื่อถ่ายโอนข้อความบันทึกของระบบและแอปพลิเคชันและพิมพ์ลงบนหน้าจอ
ไวยากรณ์พื้นฐานมีดังนี้:
adb logcat
หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูบทช่วยสอนของเราที่ วิธีใช้ logcats ของระบบ บันทึกเคอร์เนล และ dmesg บน Android.
ไข่อีสเตอร์
Google เสนอไข่อีสเตอร์ที่ดีสองใบที่เกี่ยวข้องกับคำสั่ง logcat
- อันแรกคือ lolcat ซึ่งพยักหน้าให้ ฮ่าๆ มีมแมว. มันให้เอาต์พุตเดียวกันกับคำสั่ง logcat ปกติ
adb lolcat
- อันที่สองคือ longcat ซึ่งเทียบเท่ากับคำสั่ง logcat -v long โดยจะแสดงช่องข้อมูลเมตาทั้งหมดและแยกข้อความด้วยบรรทัดว่าง
adb longcat
แสดงรายการแอพที่ติดตั้งผ่าน ADB
หากต้องการดูแอปที่ติดตั้งบนอุปกรณ์ของคุณ คุณสามารถใช้คำสั่งต่อไปนี้:
adb shell pm list packages
นี่จะส่งคืนรายการชื่อแพ็คเกจของแอพที่ติดตั้งโดยแต่ละชื่อจะอยู่ในบรรทัดของตัวเองที่นำหน้าด้วย package:
.
ตัวเลือก
นอกจากนี้ยังมีตัวเลือกบางอย่างที่คุณสามารถใช้เพื่อเรียกข้อมูลรายการที่เฉพาะเจาะจงมากขึ้นได้
- -ฉ จะรวมเส้นทางไปยัง APK พื้นฐานสำหรับแต่ละแอป พร้อมด้วยชื่อแพ็กเกจ
- -ก จะทำให้แน่ใจว่ามีการส่งคืนแพ็คเกจที่ไม่ใช่ APEX ที่รู้จักทั้งหมด
- -d จะทำให้คำสั่งส่งคืนเฉพาะแพ็คเกจที่ปิดใช้งานเท่านั้น
- -e จะทำให้คำสั่งส่งคืนแพ็คเกจที่เปิดใช้งานเท่านั้น
- -ส จะทำให้คำสั่งส่งคืนแพ็คเกจระบบเท่านั้น
- -3 จะทำให้คำสั่งส่งคืนเฉพาะแพ็คเกจบุคคลที่สามเท่านั้น
- -ฉัน จะรวมชื่อแพ็คเกจตัวติดตั้งสำหรับแต่ละแพ็คเกจ
- -ยู จะรวม UID ของแพ็คเกจสำหรับแต่ละแพ็คเกจด้วย
- -ยู จะรวมแพ็คเกจที่ถอนการติดตั้ง
- --show-versioncode จะรวมรหัสเวอร์ชันสำหรับแต่ละแพ็คเกจ
- --เอเพ็กซ์เท่านั้น จะส่งคืนแพ็คเกจ APEX เท่านั้น
- --uid จะแสดงเฉพาะแพ็คเกจที่มี UID ที่กำหนดเท่านั้น
- --ผู้ใช้ จะแสดงเฉพาะแพ็คเกจที่เป็นของ ID ผู้ใช้ที่กำหนดเท่านั้น
การติดตั้งและถอนการติดตั้งแอพผ่าน ADB
นี่เป็นการใช้ ADB ที่ค่อนข้างธรรมดา แต่ก็คุ้มค่าที่จะกล่าวถึงอยู่ดี คุณยังสามารถใช้ ADB ได้ด้วย ติดตั้งและถอนการติดตั้งแอพ Android ไปยังอุปกรณ์ Android ของคุณ
การติดตั้ง APK
หากคุณมี APK บนคอมพิวเตอร์ คุณสามารถติดตั้งลงในอุปกรณ์ของคุณได้ด้วยวิธีต่อไปนี้:
adbinstall-rsomeapk.apk
อย่าลืมเปลี่ยน someapk.apk
พร้อมเส้นทางแบบเต็มไปยัง APK ที่คุณต้องการติดตั้ง
ตัวเลือก
มีตัวเลือกมากมายสำหรับการติดตั้ง APK ผ่าน ADB
- ที่ -ร ตัวเลือกอนุญาตให้ ADB ติดตั้งผ่านแอปที่มีอยู่ (เช่น อัปเดต) บน Android Pie และใหม่กว่า คุณไม่จำเป็นต้องระบุตัวเลือกนี้
- ที่ -ร ตัวเลือกสำหรับ Android Pie และใหม่กว่าจะทำให้การติดตั้งล้มเหลวหากติดตั้งแอปไว้แล้ว
- ที่ -ฉัน ตัวเลือกช่วยให้คุณระบุชื่อแพ็คเกจตัวติดตั้ง นี่คือสิ่งที่จะได้รับคืนหาก Android ต้องการทราบว่า APK ใดติดตั้งอยู่
- ที่ -ที ตัวเลือกอนุญาตให้ใช้ APK ด้วย หุ่นยนต์: testOnly = "จริง" ในรายการที่จะติดตั้ง
- ที่ -d ตัวเลือกอนุญาตให้ APK ที่ระบุดาวน์เกรดเป็นแอปที่ติดตั้งไว้แล้ว ใช้งานได้เฉพาะเมื่อแอปทั้งสองเวอร์ชันสามารถแก้ไขจุดบกพร่องได้
- ที่ -ก ตัวเลือกสำหรับ Android Marshmallow และใหม่กว่าให้สิทธิ์รันไทม์ทั้งหมดแก่แอปที่ติดตั้งโดยอัตโนมัติ
นั่นไม่ใช่ทั้งหมด หากคุณต้องการรายการทั้งหมด คุณสามารถดูเอกสารประกอบในตัวได้
APK และบันเดิลหลายรายการ
หากคุณมี APK จำนวนมากที่ต้องการติดตั้งพร้อมกัน ไม่ว่าจะจากหลายแอป หรือเนื่องจากคุณกำลังติดตั้ง App Bundle คุณสามารถใช้ ADB install-multiple
และ install-multi-package
คุณสมบัติ.
หาก APK ทั้งหมดของคุณมีไว้สำหรับแอปเดียว ให้ใช้ install-multiple
:
adbinstall-multipleapk1.apkapk2.apk ...
มิฉะนั้นให้ใช้ install-multi-package
:
adbinstall-multi-packageapp1.apkapp2.apk ...
ตัวเลือกสำหรับคำสั่งเหล่านี้คล้ายคลึงกับ install
แต่มีข้อจำกัดบางประการ ตรวจสอบเอกสารประกอบของ ADB ว่ามีทางเลือกใดบ้าง
การถอนการติดตั้งแอพ
หากต้องการถอนการติดตั้งโดยใช้ ADB คุณจะต้องมีชื่อแพ็คเกจของแอปที่คุณต้องการถอนการติดตั้ง ตรวจสอบส่วนสำหรับ แสดงรายการแอพที่ติดตั้ง ถ้าคุณยังไม่ได้
เมื่อคุณมีชื่อแพ็คเกจแล้ว การถอนการติดตั้งก็ทำได้ง่าย ๆ ดังนี้:
adb uninstall <packagename>
โดยทั่วไปคุณไม่สามารถถอนการติดตั้งระบบหรือแอปที่ติดตั้งไว้ล่วงหน้าโดยใช้คำสั่งนี้ คุณอาจปิดการใช้งานด้วย ADB ได้ ตรวจสอบส่วน ปิดการใช้งานและเปิดใช้งานเกือบทุกแอพ เพื่อดูรายละเอียด
แยก APK ด้วย ADB
มีเหตุผลมากมายที่คุณอาจต้องการแยก APK สำหรับแอป บางทีคุณอาจต้องการสำรองข้อมูลเพื่อใช้ในอนาคต หรืออาจไม่พร้อมใช้งานออนไลน์อีกต่อไป และคุณต้องการถ่ายโอนไปยังอุปกรณ์อื่น
การแยกแอปโดยใช้ ADB ทำได้ค่อนข้างง่าย ขั้นแรก คุณจะต้องค้นหาชื่อแพ็กเกจของแอปที่คุณต้องการแตกไฟล์ มีหลายวิธีในการทำเช่นนี้ แต่วิธีที่ง่ายที่สุดคือใช้แอปการตั้งค่าของอุปกรณ์เพื่อดู รายการแอปที่ติดตั้งทั้งหมด เลือกแอปที่คุณต้องการ และเลื่อนลงไปจนกว่าคุณจะพบชื่อแพ็คเกจหรือแอป บัตรประจำตัวประชาชน
เมื่อคุณมีชื่อแพ็คเกจแล้ว ให้รันคำสั่งต่อไปนี้:
adb shell pm path <packagename>
คำสั่งนี้จะส่งคืนเส้นทางของ APK ทั้งหมดสำหรับชื่อแพ็คเกจนั้น
จากนั้นคุณสามารถใช้คำสั่งต่อไปนี้เพื่อดึง APK แต่ละรายการไปยังคอมพิวเตอร์ของคุณ:
adb pull /path/to/apk.apk
การสำรองและกู้คืนข้อมูลแอปพลิเคชัน
แม้ว่า Google จะยังไม่มีวิธีการสำรองข้อมูลแบบคลิกเดียวแบบ iOS แต่คุณสามารถใช้ ADB เพื่อสำรองและกู้คืนแอปที่ติดตั้งพร้อมกับข้อมูลได้ อย่างไรก็ตาม ฟังก์ชั่นนี้ยังห่างไกลจากความสมบูรณ์แบบ และ Google ก็มีอยู่แล้ว ทำเครื่องหมายคุณลักษณะว่าเลิกใช้แล้ว.
สำรอง
วิธีสำรองแอปพลิเคชันเดียวด้วย APK:
adb backup -apk <packagename> -f package_name_backup.ab
ในกรณีที่คุณต้องการสำรองข้อมูลแอปทั้งหมดในครั้งเดียว:
adb backup -f all -all -apk -nosystem
เนื่องจากโมดูลการคืนค่าไม่สามารถดำเนินการกู้คืนเฉพาะแอปแต่ละรายการได้ จึงควรสร้างการสำรองข้อมูลเฉพาะแพ็คเกจจะดีกว่า ตัวอย่างคำสั่งต่อไปนี้ (เข้ากันได้กับ Linux/macOS และ Windows Subsystem สำหรับ Linux) สามารถทำเพื่อคุณได้:
for APP in $(adb shell pm list packages -3)
do
APP=$( echo${APP} | sed "s/^package://")
adb backup -f ${APP}.backup ${APP}
done
คืนค่า
ก่อนอื่นคุณต้องติดตั้ง APK ที่บันทึกไว้
adb install <packagename>.apk
จากนั้นคุณสามารถกู้คืนข้อมูลได้:
adbrestorepackage_name_backup.ab
ขอย้ำอีกครั้งว่าฟังก์ชันการสำรองและกู้คืนข้อมูลของ ADB มีข้อแม้หลายประการ รวมถึงผลลัพธ์ที่แปรผันขึ้นอยู่กับ ROM
แสดงรายการส่วนประกอบของแอป
ส่วนประกอบของแอปคือสิ่งต่างๆ เช่น กิจกรรม ตัวรับการออกอากาศ บริการ และอื่นๆ บางครั้งการทราบชื่อของส่วนประกอบเหล่านี้ในแอปเฉพาะก็มีประโยชน์ โดยเฉพาะอย่างยิ่งหากคุณต้องการเปิดใช้กิจกรรมที่ซ่อนอยู่หรือส่งการออกอากาศพร้อมข้อมูลเฉพาะ
น่าเสียดายที่ ADB ไม่มีวิธีที่สะอาดตาในการแสดงรายการส่วนประกอบของแอป แต่มันเป็นไปได้ รันคำสั่งต่อไปนี้:
adb shell dumpsys package
ข้อความทั้งหมดจะถูกส่งกลับ
- เลื่อนไปจนพบ ตารางตัวแก้ไขกิจกรรม ชื่อเพื่อดูกิจกรรม
- มองข้างใต้ ตารางรีโซลเวอร์ตัวรับ สำหรับผู้รับสัญญาณออกอากาศ
- ตรวจสอบ ตารางตัวแก้ไขบริการ สำหรับการบริการ
- และอื่นๆ
แต่ละส่วนประกอบจะแสดงการดำเนินการที่จำเป็นในการเปิดใช้งาน ชื่อของส่วนประกอบ และอาจมีข้อมูลเพิ่มเติมบางอย่าง
หรือหากคุณต้องการวิธีที่ง่ายกว่าในการดูกิจกรรม บริการ และผู้รับ คุณสามารถใช้แอป Root Activity Launcher จาก XDA Recognized Developer ศาชารี1. โดยจะแสดงส่วนประกอบเหล่านั้นสำหรับแต่ละแอป พร้อมด้วยฟีเจอร์ที่มีประโยชน์อื่นๆ อีกมากมาย
ราคา: 0.99.
เปิดตัวกิจกรรม บริการ และเครื่องรับกระจายเสียง
ADB ยังสามารถใช้เพื่อเปิดกิจกรรม เริ่มบริการ และแจ้งผู้รับการออกอากาศได้ คุณยังสามารถระบุ URI ข้อมูลและ Intent พิเศษได้หากจำเป็น
หากต้องการเปิดใช้ส่วนประกอบ คุณจะต้องมีชื่อส่วนประกอบของสิ่งที่คุณต้องการเปิดใช้ คุณสามารถดูวิธีการได้รับสิ่งนั้นได้จาก แสดงรายการส่วนประกอบของแอป ส่วน.
ไวยากรณ์คำสั่งสำหรับการเริ่มกิจกรรมเป็นดังนี้:
am start -a <action> -n <component>
ไวยากรณ์คำสั่งสำหรับการเริ่มบริการเป็นดังนี้:
am startservice -a <action> -n <component>
ไวยากรณ์คำสั่งสำหรับแจ้ง BroadcastReceiver มีลักษณะดังนี้:
am broadcast -a <action> -n <component>
ในกรณีส่วนใหญ่ สำหรับกิจกรรมและบริการ คุณไม่จำเป็นต้องระบุการดำเนินการอย่างชัดเจน โดยปกติคุณจะต้องใช้เฉพาะเมื่อส่วนประกอบใช้อย่างอื่นที่ไม่ใช่ android.intent.action หลัก.
นอกเหนือจากไวยากรณ์พื้นฐานแล้ว ต่อไปนี้เป็นวิธีระบุข้อมูลเพิ่มเติมที่จะส่งผ่าน โดยทั่วไป ค่าข้อมูลทั้งหมดควรอยู่ในเครื่องหมายคำพูดคู่
- -d ช่วยให้คุณระบุ URI ข้อมูล
- -e หรือ --es ช่วยให้คุณสามารถระบุสตริงพิเศษได้
- --esn อนุญาตให้คุณระบุสตริงว่างเพิ่มเติม
- --ez ใช้เพื่อระบุบูลีนพิเศษ
- --อี๋ ใช้เพื่อระบุจำนวนเต็มพิเศษ
- --เอล มีไว้สำหรับระบุความยาวพิเศษ
- --เอฟ จะผ่านการลอยพิเศษ
- --สหภาพยุโรป ผ่าน URI พิเศษ
- --ecn สามารถใช้เพื่อระบุชื่อส่วนประกอบเพิ่มเติม
-
--เอีย
จะส่งค่าเป็นจำนวนเต็ม[]พิเศษ, ,... -
--eial
จะส่งค่าออกมาเป็น List, ,... . - อาร์กิวเมนต์อาร์เรย์และรายการเดียวกันยังใช้ได้กับ longs, floats และ Strings เพียงแค่แทนที่ ฉัน พร้อมด้วยจดหมายตามสมควร
- -ฉ ช่วยให้คุณสามารถระบุธงได้
มีตัวเลือกลักษณะการทำงานอีกมากมายที่คุณสามารถใช้ได้ ดังนั้น โปรดดูรายละเอียดจากเอกสารประกอบในตัว
ปิดการใช้งานและเปิดใช้งานเกือบทุกแอพ
แอประบบใน Android ไม่สามารถถอนการติดตั้งได้ และน่าเสียดายที่แอปส่วนใหญ่ไม่สามารถปิดใช้งานผ่านการตั้งค่าได้ แม้ว่า ADB จะไม่อนุญาตให้คุณถอนการติดตั้ง แต่ก็อาจช่วยให้คุณปิดการใช้งานได้
ขั้นแรก ตรวจสอบให้แน่ใจว่าได้รับชื่อแพ็คเกจของแอปที่คุณต้องการปิดใช้งาน จากนั้นให้ลองใช้คำสั่งเหล่านี้ หากล้มเหลว ให้ลองใช้ตัวเลือกถัดไป
-
น. ปิดการใช้งาน
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ น.เปิดใช้งาน
-
น. ปิดการใช้งานผู้ใช้ -- ผู้ใช้ 0
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ น.เปิดใช้งาน
-
บ่ายซ่อน
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ pm เลิกซ่อน
-
น.ระงับ
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ pm ยกเลิกการระงับ
-
pm ถอนการติดตั้ง -k --user 0
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ pm ติดตั้งที่มีอยู่แล้ว
- อันนี้ถอนการติดตั้งแอปพลิเคชันจากโปรไฟล์ผู้ใช้ของคุณอย่างมีประสิทธิภาพ ในขณะที่คำสั่งให้เปิดใช้งานอีกครั้ง ควร งานไม่มีการรับประกันว่าจะได้ คุณอาจต้องรีเซ็ตเป็นค่าเริ่มต้นจากโรงงานเพื่อกู้คืนแอป
- หากคุณใช้โปรไฟล์ผู้ใช้หลายโปรไฟล์บนอุปกรณ์ของคุณ ตรวจสอบให้แน่ใจว่าได้แทนที่ 0 ในคำสั่งด้านบนด้วย ID ผู้ใช้จริงที่คุณมี
- หากต้องการเปิดใช้งานอีกครั้ง ให้ใช้ pm ติดตั้งที่มีอยู่แล้ว
หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูบทแนะนำของเราที่ วิธีถอนการติดตั้งผู้ให้บริการและ OEM bloatware โดยไม่ต้องเข้าถึงรูท.
กำลังจับภาพหน้าจอ
ROM ของ Android ส่วนใหญ่มีเชลล์ยูทิลิตี้ที่มีประโยชน์สองตัว ได้แก่ screencap และ screenrecord สำหรับการจับภาพหน้าจอและบันทึกกิจกรรมหน้าจอตามลำดับ คุณสามารถเรียกได้โดยตรงจาก ADB Shell เพื่อจับภาพหน้าจอแบบคงที่หรือตัวอย่างวิดีโอของหน้าจอโทรศัพท์ของคุณ และบันทึกไว้ในที่จัดเก็บข้อมูลภายในของอุปกรณ์โดยตรง
ไวยากรณ์สำหรับการจับภาพหน้าจอค่อนข้างตรงไปตรงมา:
adb shell screencap /sdcard/screenshot.png
ในทำนองเดียวกัน หากคุณต้องการคว้า screengrab แบบไดนามิก ให้ทำดังต่อไปนี้:
adb shell screenrecord /sdcard/recording.mp4
ตามที่คุณอาจคาดหวัง เครื่องมือ screencap ค่อนข้างเรียบง่าย ในขณะที่ยูทิลิตี้ screenrecord มีพารามิเตอร์หลายตัว ตัวเลือกสำหรับหลังมีดังนี้:
-
--ขนาด WIDTHxHEIGHT
- ตั้งค่าความละเอียดของไฟล์วิดีโอ (เช่น "1280x720") ตามค่าเริ่มต้น ระบบจะพยายามใช้ความละเอียดการแสดงผลหลักของอุปกรณ์เป้าหมาย (หากรองรับ) และหากไม่รองรับก็จะกลับไปเป็น 1280x720
-
--อัตราบิตเรต
- ตั้งค่าบิตเรตของวิดีโอเป็นบิตต่อวินาที ค่าอาจระบุเป็นบิตหรือเมกะบิต เช่น '4000000' เทียบเท่ากับ '4M'
-
--รายงานข้อผิดพลาด
- คุณสามารถเพิ่มข้อมูลเพิ่มเติมได้ เช่น การซ้อนทับการประทับเวลา ซึ่งจะเป็นประโยชน์ในการแสดงจุดบกพร่อง
-
--จำกัดเวลา TIME
- ตั้งเวลาบันทึกสูงสุดเป็นวินาที ค่าเริ่มต้น / สูงสุดคือ 180
-
--display-id ID
- ระบุ ID การแสดงผลทางกายภาพที่จะบันทึก ค่าเริ่มต้นถูกตั้งค่าเป็นจอแสดงผลหลัก ดู "dumpsys SurfaceFlinger --display-id" สำหรับรหัสการแสดงผลที่ถูกต้อง
-
--รายละเอียด
- แสดงข้อมูลเชิงลึกเกี่ยวกับเซสชันการบันทึก
คุณสามารถเพิ่มขีดความสามารถของยูทิลิตี้จับภาพหน้าจอในตัวของ Android ได้อีก กระท่อนกระแท่น. เป็นโซลูชันการมิเรอร์หน้าจอแบบโอเพ่นซอร์ส ซึ่งใช้พลังของ ADB
การถ่ายโอนข้อมูลไบนารีระหว่างพีซีและอุปกรณ์ Android
ในกรณีที่คุณไม่ต้องการวางไข่เชลล์ ADB เต็มรูปแบบ แต่ต้องการรวมการส่งผ่านข้อมูลไบนารีที่มีประสิทธิภาพระหว่างพีซีโฮสต์และอุปกรณ์ Android เป้าหมาย คุณสามารถใช้ exec-in
และ exec-out
คำสั่ง
ทั้งๆที่พวกเขา การดำรงอยู่ที่ยาวนานคำสั่ง exec-in และ exec-out ยังคงไม่มีเอกสารประกอบ สิ่งเหล่านี้อาจทำให้ไฟล์เสียหายเนื่องจากวิธีที่เชลล์ต่างกันจัดการอินพุตและเอาต์พุต ใช้ด้วยความระมัดระวัง
อันแรกช่วยให้คุณรันคำสั่งบน Android และป้อนอินพุตคอนโซลที่ไม่มีการกรองเป็นพารามิเตอร์ ในขณะที่ อันที่สองทำสิ่งที่ตรงกันข้ามนั่นคือรันคำสั่งบน Android และจับเอาต์พุตไบนารี่ที่ไม่มีการกรองโดยระบบปฏิบัติการโฮสต์
ตัวอย่าง:
adb exec-out "screencap -p" > "D:\screenshot.png"
สิ่งนี้จะใช้ screencap
คำสั่งของ Android เพื่อจับภาพหน้าจอของจอแสดงผลของโทรศัพท์ แต่บันทึกโดยตรงเป็นภาพหน้าจอ.png ในพาร์ติชัน D: ของโฮสต์พีซี (หากใช้ Windows) ในทางกลับกัน,
adb exec-in"cd /sdcard && tar -xf -" < "D:\backup.tar"
วิธีนี้จะแยกเนื้อหาของไฟล์ backup.tar ที่จัดเก็บไว้ในพาร์ติชัน D: ของโฮสต์พีซี (ที่ใช้ Windows) ที่รากของที่จัดเก็บข้อมูลภายในของอุปกรณ์ Android
ADB เป็นเครื่องมือที่ทรงพลังอย่างเหลือเชื่อ และสามารถทำได้มากกว่าสิ่งที่กล่าวมาข้างต้น คำสั่งในบทความนี้เป็นเพียงจุดเริ่มต้นที่มีประโยชน์เท่านั้น สำหรับการใช้งานขั้นสูง โปรดดูคำสั่งเช่น คำสั่ง -l เพื่อดูบริการต่างๆ ที่คุณอาจโต้ตอบด้วยและ ls -l /system/bin เพื่อดูคำสั่งปฏิบัติการต่างๆ ที่มีอยู่ใน Android ROM ของคุณ
สำหรับการเดินทางและเห็บอื่นๆ บน Android โปรดดูคำแนะนำของเราที่ วิธีการรูทสมาร์ทโฟน Android ของคุณ, วิธีการติดตั้งการกู้คืน TWRP, และ วิธีติดตั้ง ROM แบบกำหนดเองบนอุปกรณ์ Android ของคุณ.