เคล็ดลับและคำแนะนำของ ADB: คำสั่งที่ผู้ใช้ระดับสูงทุกคนควรรู้

click fraud protection

Android Debug Bridge มีอะไรอีกมากมายที่คุณอาจไม่รู้ คลิกที่นี่เพื่อดูคำแนะนำและเคล็ดลับที่เป็นประโยชน์ในการใช้ ADB!

ลิงค์ด่วน

  • การเข้าถึงเชลล์
  • การเชื่อมต่อกับอุปกรณ์หลายเครื่อง
  • การโอนไฟล์
  • การบันทึก
  • แสดงรายการแอพที่ติดตั้งผ่าน ADB
  • การติดตั้งและถอนการติดตั้งแอพผ่าน ADB
  • แยก APK ด้วย ADB
  • การสำรองและกู้คืนข้อมูลแอปพลิเคชัน
  • แสดงรายการส่วนประกอบของแอป
  • เปิดตัวกิจกรรม บริการ และเครื่องรับกระจายเสียง
  • ปิดการใช้งานและเปิดใช้งานเกือบทุกแอพ
  • กำลังจับภาพหน้าจอ
  • การถ่ายโอนข้อมูลไบนารีระหว่างพีซีและอุปกรณ์ Android

หากคุณเป็นผู้ชื่นชอบ Android ที่ซุ่มซ่อนอยู่ในฉากการดัดแปลงหรือเป็นนักพัฒนาแอปมาระยะหนึ่งแล้ว ไม่ช้าก็เร็วคุณจะพบกับเครื่องมือที่เรียกว่า Android Debug Bridge หรือ ADB สำหรับ สั้น. มีการใช้กันอย่างแพร่หลายใน Android Studio เป็นยูทิลิตี้สหายบรรทัดคำสั่ง นักพัฒนา Android ยังใช้เป็นโซลูชันแบบสแตนด์อโลนในการติดตั้งและทดสอบแอปด้วยตนเอง สมาร์ทโฟนระบบ Android เช่นเดียวกับอุปกรณ์ Android ที่จำลอง

แต่ ADB สามารถทำได้หลายอย่าง และส่วนใหญ่ไม่ได้มีประโยชน์เฉพาะกับนักพัฒนาเท่านั้น แม้ว่าคุณจะไม่ใช่นักพัฒนาซอฟต์แวร์และกำลังอ่านบทความนี้ แต่ก็มีโอกาสที่ดีที่คุณอาจเคยใช้ ADB ครั้งหรือสองครั้งเพื่อ

ไซด์โหลดแอป หรือปรับแต่งการอนุญาต แต่นั่นไม่ใช่ทั้งหมดที่ 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

  1. อันแรกคือ lolcat ซึ่งพยักหน้าให้ ฮ่าๆ มีมแมว. มันให้เอาต์พุตเดียวกันกับคำสั่ง logcat ปกติ
    adb lolcat
  2. อันที่สองคือ 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 ผู้ใช้จริงที่คุณมี

หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูบทแนะนำของเราที่ วิธีถอนการติดตั้งผู้ให้บริการและ 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 ของคุณ.