Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

Android Debug Bridge (ADB) คู่มือการใช้งานโหมดดีบั๊ก

บทนำ

Android Debug Bridge (adb) เป็นเครื่องมือบรรทัดคำสั่งที่หลากหลาย ใช้สื่อสารกับอุปกรณ์ Android เช่น โทรศัพท์ แท็บเล็ต นาฬิกาอัจฉริยะ セットท็อปบ็อกซ์ ฯลฯ ADB ช่วยให้ทำสิ่งที่ไม่เหมาะสำหรับการใช้งานทั่วไปได้ เช่น ติดตั้งแอปนอก Play Store, ดีบั๊กแอป, เข้าฟีเจอร์ซ่อน, เปิด UNIX Shell ฯลฯ

เพื่อความปลอดภัย ต้องเปิด Developer Options และเปิด USB Debugging รวมถึงต้องอนุญาตการเข้าถึง USB Debugging จากคอมพิวเตอร์เฉพาะเครื่องที่เชื่อมต่อ

สถาปัตยกรรม ADB (Client-Server)

ADB เป็นโปรแกรมแบบ Client-Server ประกอบด้วย 3 ส่วนหลัก:

  • Client: ส่งคำสั่ง รันบนเครื่องพัฒนา เรียกใช้ผ่านเทอร์มินัลด้วยคำสั่ง adb
  • Daemon (adbd): รันคำสั่งบนอุปกรณ์ ทำงานเป็นกระบวนการพื้นหลัง
  • Server: จัดการการสื่อสารระหว่าง Client และ Daemon รันเป็นกระบวนการพื้นหลังบนเครื่องพัฒนา

หลักการทำงาน

เมื่อเริ่ม ADB Client ในเทอร์มินัล Kali Linux จะตรวจสอบว่า ADB Server ทำงานอยู่หรือไม่ หากไม่ได้ จะเริ่ม Server Process Server ผูกกับพอร์ต TCP 5037 ในเครื่องท้องถิ่น และรอคำสั่งจาก ADB Clients (ทุก Client ใช้พอร์ต 5037) Server ต่อต่อกับอุปกรณ์ที่ทำงานอยู่ ระบุ Emulator โดยสแกนพอร์ตคี่ 5555-5585 (ช่วงสำหรับ Emulator 16 ตัวแรก) เมื่อพบ ADB Daemon จะตั้งค่าการเชื่อมต่อที่พอร์ตนั้น

การเปิดใช้งาน USB Debugging

  1. ไปที่ Settings > About phone
  2. แตะ Build number 7 ครั้ง
  3. กลับหน้าก่อนหน้า จะ thấy Developer options ล่างสุด
  4. เปิด USB debugging

การเชื่อมต่อ

แบบ USB

เชื่อมอุปกรณ์กับคอมพิวเตอร์ด้วยสาย USB

แบบ Wi-Fi

  1. เปิดเทอร์มินัล Kali Linux
  2. หา IP Address ของอุปกรณ์: Settings > About tablet/phone > Status > IP address
  3. รันคำสั่ง: adb connect 'ip address'
  4. ตรวจสอบการเชื่อมต่อ: adb devices (จะแสดง Serial Number)

คำสั่ง ADB ที่ใช้บ่อย

คำสั่งคำอธิบาย
adb devicesแสดงอุปกรณ์ที่เชื่อมต่ออยู่
adb kill-serverหยุด ADB Server
adb rootขอสิทธิ์ Root
adb wait-for-deviceรอจนกว่าอุปกรณ์จะพร้อม
adb shell stop thermal-engineหยุดบริการ thermal-engine
adb install <file.apk>ติดตั้งแอปพลิเคชัน
adb shellเปิด Shell บนอุปกรณ์
adb shell dumpsysแสดงรายละเอียดหน่วยความจำ
adb pull <remote> <local>คัดลอกไฟล์จากอุปกรณ์
adb push <local> <remote>คัดลอกไฟล์ไปอุปกรณ์
adb forward tcp:6100 tcp:7100Port Forwarding

เคล็ดลับ: ใช้ adb shell เข้า Linux Shell ของ Android ได้โดยตรง สามารถรันคำสั่ง Linux พื้นฐานส่วนใหญ่ได้