Android Debug Bridge (ADB) เชื่อมต่อกับอุปกรณ์ผ่าน USB, WiFi

⚡ สรุปอย่างชาญฉลาด

Android Debug Bridge เชื่อมต่อเวิร์กสเตชันกับอีมูเลเตอร์หรืออุปกรณ์จริง โดยจะเปิดเชลล์ ติดตั้งโปรแกรม และเปิดเผยอุปกรณ์ให้กับเครื่องมืออัตโนมัติผ่านทางสาย USB หรือการเชื่อมต่อไร้สาย

  • ???? สามส่วน: ADB เป็นทั้งไคลเอ็นต์ เซิร์ฟเวอร์เบื้องหลังบนพอร์ต TCP 5037 และเดมอนที่ทำงานอยู่บนอุปกรณ์
  • ☑️ ข้อกำหนดแรก: ต้องเปิดใช้งานการดีบัก USB ในตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ก่อนที่อุปกรณ์ใดๆ จะปรากฏขึ้น
  • ตรวจสอบลิงก์: คำสั่ง adb devices จะแสดงรายการอีมูเลเตอร์และโทรศัพท์มือถือที่เชื่อมต่อทั้งหมด พร้อมหมายเลขประจำเครื่อง
  • 🧪 Target อุปกรณ์หนึ่ง: adb -s ส่งคำสั่งไปยังอุปกรณ์เพียงเครื่องเดียวเมื่อมีการเชื่อมต่ออุปกรณ์หลายเครื่อง
  • 🛠️ ตัวเลือกแบบไร้สาย: คำสั่ง `adb tcpip 5555` ตามด้วย `adb connect` จะย้ายเซสชันที่มีอยู่ไปยัง Wi-Fi
  • 📊 อุปกรณ์สมัยใหม่: Android เวอร์ชัน 11 ขึ้นไปจับคู่ผ่าน Wi-Fi โดยใช้คำสั่ง adb pair ดังนั้นจึงไม่จำเป็นต้องใช้สายเคเบิลเลย

Android Debug Bridge คืออุปกรณ์ที่เชื่อมต่ออุปกรณ์ผ่าน USB และ Wi-Fi

ความหมายของ Android สะพานดีบัก (ADB)?

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

การใช้อุปกรณ์จริงเพื่อการทำงานอัตโนมัติบนมือถือ การทดสอบ นับเป็นความท้าทายมาโดยตลอด Android นำเสนอวิธีการเชื่อมต่อผ่าน USB (Universal Serial Bus) — กล่าวคือ Android ดีบักบริดจ์

การดีบัก USB และการกำหนดค่า ADB

Appium สามารถทำการทดสอบบนอุปกรณ์จริงได้ แต่ต้องตั้งค่าสิ่งต่อไปนี้ก่อน

  • ควรเปิดใช้งานการแก้ไขข้อบกพร่อง USB
  • การกำหนดค่า ADB
  • การตั้งค่าความสามารถที่ต้องการตามการเปลี่ยนแปลงฮาร์ดแวร์

เราจะกล่าวถึงทั้งการใช้งานโปรแกรมจำลองและอุปกรณ์จริง โดยจะเริ่มจากขั้นตอนการใช้งานโปรแกรมจำลองก่อน

วิธีเชื่อมต่อกับโปรแกรมจำลอง

ข้อกำหนดเบื้องต้น: ต้องติดตั้ง SDK (Software Development Kit) บนเครื่องแล้ว และต้องติดตั้ง ADB ด้วย Android บรรจุด้วย Google's Android SDK

ขั้นตอนในการเปิดใช้งาน ADB จาก SDK Manager

ขั้นตอน 1) จุดเปิด Android โฟลเดอร์ SDK

ขั้นตอน 2) Double คลิกที่ตัวจัดการ SDK

ขั้นตอน 3) จากรายการแพ็คเกจทั้งหมด เลือกเครื่องมือและทำเครื่องหมายที่ช่องกาเครื่องหมายสำหรับ

  • Android เครื่องมือ SDK และ
  • Android เครื่องมือแพลตฟอร์ม SDK

รายการแพ็กเกจ SDK Manager ที่เลือกทั้งสองรายการไว้จะแสดงอยู่ด้านล่าง

Android รายการแพ็กเกจ SDK Manager พร้อมด้วย Android เลือกใช้ SDK Tools และ Platform-tools

⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ตัวจัดการ SDK แบบสแตนด์อโลนด้านบนถูกยกเลิกการใช้งานใน SDK Tools เวอร์ชัน 25.2.3 และตัวเรียกใช้งานถูกลบออกในเวอร์ชัน 25.3.0 เปิดรายการแพ็กเกจเดียวกันจาก Android Studio (เครื่องมือ > ตัวจัดการ SDK) หรือ sdkmanager CLI. แพ็กเกจยังคงอยู่ Android เครื่องมือแพลตฟอร์ม SDK, ซึ่งประกอบด้วย adb.

วิธีเชื่อมต่อ Android อุปกรณ์ที่มี ADB (Android สะพานดีบัก)

ขั้นตอน 1) เปิดใช้งานการดีบัก USB บนอุปกรณ์ของคุณ

เปิดใช้งานตัวเลือกการดีบัก USB จาก 'ตัวเลือกสำหรับนักพัฒนา' บน Android จากนั้นเสียบโทรศัพท์เข้ากับคอมพิวเตอร์โดยใช้สาย USB ดังแสดงในภาพ

เปิดใช้งานสวิตช์การดีบัก USB ในตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์บนอุปกรณ์ Android โทรศัพท์

ขั้นตอน 2) ไปที่ Android โฟลเดอร์ SDK

เปิดโฟลเดอร์ที่... Android ไฟล์ SDK ถูกบันทึกไว้แล้ว 'Android SDK >> เครื่องมือแพลตฟอร์ม — ตัวอย่างเช่น C:\android-sdk\platform-tools, แสดงด้านล่าง.

Windows Explorer จะเปิดโฟลเดอร์ platform-tools ภายใน Android SDK

ขั้นตอน 3) เปิดหน้าต่างคำสั่ง

ภายในโฟลเดอร์ ให้ถือไว้ Shift และใช้เมนูคลิกขวา >> เลือก 'เปิดหน้าต่างคำสั่งที่นี่' ดังแสดงในภาพด้านล่าง คุณยังสามารถเข้าถึงพาธของโฟลเดอร์ได้จากคำสั่ง Run เช่นกัน

Shift รวมถึงเมนูบริบทคลิกขวาที่แสดงตัวเลือก "เปิดหน้าต่างคำสั่งที่นี่"

จากนั้นหน้าต่าง Command Prompt จะเปิดขึ้น โดยชี้ไปยังโฟลเดอร์ platform-tools เรียบร้อยแล้ว

หน้าต่าง Command Prompt เปิดขึ้นโดยตรงในไดเร็กทอรี platform-tools

ขั้นตอน 4) เชื่อมต่อภายนอก Android เครื่อง

เชื่อมต่อภายนอก Android เชื่อมต่ออุปกรณ์ (โทรศัพท์มือถือ) กับสาย USB จากนั้น พิมพ์คำสั่งต่อไปนี้ในหน้าต่างคำสั่งด้านบน:

'adb devices' & press Enter

โปรแกรมจะแสดงรายการอุปกรณ์ที่เชื่อมต่อทั้งหมด ดังที่แสดงด้านล่าง

ผลลัพธ์จากคำสั่ง adb devices ที่แสดงรายการอุปกรณ์ที่เชื่อมต่อ (หมายเลขซีเรียล)

ขั้นแรก ตรวจสอบว่าเซิร์ฟเวอร์ ADB กำลังทำงานเป็นกระบวนการพื้นหลังหรือไม่ โดยพิมพ์ 'adb' ในหน้าต่างคำสั่งเดียวกัน แล้วกด Enter ควรจะแสดงรายการกระบวนการ adb ที่กำลังทำงานอยู่

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

โปรแกรม ADB จะทำงานบนพอร์ตเลขคี่ และคอนโซลจำลองที่ตรงกันจะใช้พอร์ตเลขคู่ที่อยู่ติดกัน Android's เอกสารประกอบ ADB กำหนดช่วงการสแกนไว้ที่พอร์ตคี่ 5555 ถึง 5585 ซึ่งครอบคลุมอีมูเลเตอร์ 16 ตัวแรก

หากเชื่อมต่ออุปกรณ์เพียงเครื่องเดียว เซิร์ฟเวอร์จะค้นหาและเชื่อมต่อกับอุปกรณ์นั้นโดยอัตโนมัติ แต่หากมีอุปกรณ์หรือโปรแกรมจำลองหลายเครื่องทำงานอยู่ คุณต้องระบุเป้าหมายในบรรทัดคำสั่ง ตัวอย่างเช่น อินสแตนซ์บนพอร์ตคี่ 5557 จะมีคอนโซลอยู่บนพอร์ตคู่ 5556 โดยมีพอร์ตคี่หนึ่งพอร์ตและพอร์ตคู่หนึ่งพอร์ต

emulator 1: console 5556
emulator 1: adb 5557
emulator 2: console 5554
emulator 2: adb 5555

คำสั่งตรวจหาอุปกรณ์ที่เชื่อมต่อทั้งหมด:

<$ adb devices>
emulator-5554 device
emulator-5556 device
emulator-5558 device

คำสั่งตรวจจับอุปกรณ์เดียวจากอุปกรณ์ที่เชื่อมต่อหลายเครื่อง:

<$ adb -s emulator-5554 install Guru99.apk>

คำสั่งนี้จะกำหนดเป้าหมายการเชื่อมต่อ adb สำหรับอุปกรณ์ 5554 และติดตั้งแอปพลิเคชัน ซึ่งเป็นวิธีการเข้าถึงอินสแตนซ์ ADB เดียวจากบรรทัดคำสั่ง

Syntax used to access ADB instances from the command line:
adb -d — An adb command when a single USB device is connected
adb -e — An adb command when only a single emulator is running
adb devices — This will print the list of emulators / devices attached.
adb version — List the adb version number.
adb help — Print the list of supported commands.

วิธีตั้งค่า ADB เพื่อรองรับ Wi-Fi

ADB สามารถตั้งค่าผ่าน Wi-Fi ได้เช่นกัน ซึ่งจะช่วยให้โทรศัพท์ไม่ต้องเสียบสายระหว่างการใช้งานเป็นเวลานาน Appium การทำงาน

ข้อกำหนดเบื้องต้น

  • ทั้ง Android อุปกรณ์และคอมพิวเตอร์หลักควรเชื่อมต่อกับเครือข่ายไร้สายเดียวกัน และ
  • ควรปิดใช้งานตัวเลือกบลูทูธของอุปกรณ์

ขั้นตอนการเชื่อมต่อ:

  1. เชื่อมต่ออุปกรณ์เข้ากับคอมพิวเตอร์โดยใช้สาย USB ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการดีบัก USB บนอุปกรณ์แล้ว
  2. ตั้งค่าอุปกรณ์เป้าหมายให้รับฟังการเชื่อมต่อ TCP/IP บนพอร์ต 5555
    $ adb tcpip 5555

หน้าต่างคำสั่งจะยืนยันการเปลี่ยนไปใช้โหมด TCP/IP ดังแสดงด้านล่าง

หน้าต่าง Command Prompt แสดงคำสั่ง adb tcpip 5555 เพื่อรีสตาร์ท daemon ในโหมด TCP

  1. ตอนนี้ให้ถอดสาย USB ออกจากอุปกรณ์
  2. บนอุปกรณ์ ให้ค้นหาที่อยู่ IP ในเมนู การตั้งค่า >> การตั้งค่า Wi-Fi >> ขั้นสูง >> ที่อยู่ IP เชื่อมต่อ แล้วยืนยันการเชื่อมต่อ
    $ adb connect 148.100.1.17:5555
    $ adb devices
    List of devices attached
    148.100.1.17:5555 device

การตั้งค่าเสร็จสมบูรณ์แล้ว และคำสั่ง 'adb' สามารถใช้งานผ่านเครือข่ายไร้สายได้แล้ว

⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ลำดับการวางสายเคเบิลก่อนที่กล่าวมาข้างต้นยังคงเป็นเส้นทางเดียวบน Android 10 และต่ำกว่า Android เวอร์ชัน 11 (API 30) ขึ้นไป เพิ่มการดีบักแบบไร้สาย: เปิดใช้งานในตัวเลือกสำหรับนักพัฒนา เลือก จับคู่โดยใช้รหัสจับคู่จากนั้นเรียกใช้ adb pair ipaddr:port แล้วป้อนรหัส ไม่ต้องใช้สายเคเบิล

หมายเหตุ: หากเกิดข้อผิดพลาดในการเชื่อมต่อ ให้ยกเลิกการเชื่อมต่อโฮสต์ adb ด้านล่าง จากนั้นเชื่อมต่อใหม่ตั้งแต่ขั้นตอนแรก

$ adb kill-server

หากคุณกำลังมองหาโปรแกรมจำลอง โปรดดูที่นี่ รายการที่ดีที่สุด Android อีมูเลเตอร์สำหรับ Windows.

คำถามที่พบบ่อย

ข้อความแจ้งให้ป้อนรหัส RSA บนโทรศัพท์ไม่ได้รับการยอมรับ ปลดล็อกหน้าจอ เสียบสายเคเบิลอีกครั้ง แล้วแตะ อนุญาตการดีบัก USB หากไม่มีข้อความแจ้งปรากฏขึ้น ให้ยกเลิกการอนุญาตการดีบัก USB ในตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ แล้วลองอีกครั้ง

กลุ่มการเรียนรู้ของเครื่องมีสแต็กที่เกือบเหมือนกัน tracฟังก์ชัน es จาก logcat จะจัดอันดับข้อผิดพลาดตามเซสชันที่ได้รับผลกระทบ และระบุ commit แรกที่น่าจะเป็นสาเหตุของการถดถอย ดังนั้นผู้ทดสอบจึงอ่านคลัสเตอร์เพียงไม่กี่คลัสเตอร์แทนที่จะอ่านหลายพันบรรทัด

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

ใช้คำสั่ง `adb install` พร้อมระบุพาธไปยังไฟล์ APK เพิ่มแฟล็ก `-r` เพื่อติดตั้งทับเวอร์ชันที่มีอยู่แล้ว และใช้คำสั่ง `adb uninstall` พร้อมระบุชื่อแพ็กเกจเพื่อลบออก เพิ่มแฟล็ก `-s` เพื่อกำหนดเป้าหมายไปยังอุปกรณ์เพียงเครื่องเดียว

ตรวจสอบให้แน่ใจว่าเปิดใช้งานการดีบัก USB แล้ว ลองใช้สายเคเบิลที่รองรับการรับส่งข้อมูลแทนสายเคเบิลสำหรับชาร์จอย่างเดียว และติดตั้งไดรเวอร์ USB ของผู้ผลิต Windowsจากนั้นรันคำสั่ง adb kill-server ตามด้วย adb devices เพื่อรีสตาร์ท daemon

คำสั่ง `adb tcpip` จะสลับเซสชัน USB ที่มีอยู่ไปยังพอร์ตเครือข่าย และใช้งานได้กับทุกเวอร์ชัน ส่วนคำสั่ง `adb pair` จะใช้หน้าจอการดีบักไร้สายที่เพิ่มเข้ามา Android 11 และไม่จำเป็นต้องใช้สายเคเบิลใดๆ เลย

ไม่ครับ ไฟล์ไบนารี adb นั้นมีอยู่ภายในตัวอยู่แล้ว Android แพ็คเกจ SDK Platform-tools สามารถดาวน์โหลดได้แยกต่างหาก เพิ่มโฟลเดอร์นั้นลงใน PATH ของคุณ แล้วคำสั่งจะทำงานได้จากทุกไดเร็กทอรี

เรียกใช้คำสั่ง `adb logcat` เพื่อดูบันทึกระบบแบบเรียลไทม์ และ `adb logcat > log.txt` เพื่อบันทึกเป็นไฟล์ `log.txt` หากต้องการแนบหลักฐานประกอบข้อบกพร่อง ให้เพิ่มคำสั่ง `adb bugreport` เพื่อดาวน์โหลดไฟล์บันทึกการวินิจฉัยแบบเต็ม

สรุปโพสต์นี้ด้วย: