ADB (Android Debug Bridge) เป็นยูทิลิตี้บรรทัดคำสั่งอเนกประสงค์ที่เป็นส่วนหนึ่งของ Android SDK มันช่วยให้คอมพิวเตอร์สามารถโต้ตอบกับอุปกรณ์ Android ได้โดยตรงผ่านสาย USB หรือ Wi-Fi ด้วย ADB คุณสามารถติดตั้งและถอนการติดตั้งแอปพลิเคชัน คัดลอกไฟล์ รันคำสั่ง shell ดูบันทึกของระบบ ถ่ายภาพหน้าจอและบันทึกหน้าจอ จัดการการตั้งค่า และแม้กระทั่งทำการทดสอบอัตโนมัติ เครื่องมือนี้จำเป็นสำหรับนักพัฒนา ผู้ทดสอบ และผู้ที่ต้องการควบคุมอุปกรณ์อย่างเต็มที่
ประเด็นสำคัญ
Android Debug Bridge (ADB) เป็นแอปพลิเคชันไคลเอนต์-เซิร์ฟเวอร์ที่ประกอบด้วยสามองค์ประกอบ: ไคลเอนต์ (ทำงานบนคอมพิวเตอร์), เซิร์ฟเวอร์ (กระบวนการพื้นหลังบนคอมพิวเตอร์) และดีมอน adbd (ทำงานบนอุปกรณ์ Android เอง) เมื่อนักพัฒนาหรือวิศวกรเชื่อมต่อสมาร์ทโฟนเข้ากับพีซี ADB จะสร้างช่องทางการสื่อสารที่เชื่อถือได้ซึ่งสามารถส่งคำสั่ง ไฟล์ และข้อมูลได้
กรณีการใช้งานหลักของ ADB รวมถึงการดีบักแอปพลิเคชันบนอุปกรณ์จริงโดยไม่ต้องเผยแพร่ APK ในร้านค้า การดึงบันทึกเพื่อวิเคราะห์ข้อผิดพลาด การทดสอบอัตโนมัติ การสำรองข้อมูล การแฟลชอิมเมจ recovery และการเข้าถึงรูท แม้ว่าคุณจะไม่ได้เขียนโค้ด ADB ก็มีประโยชน์สำหรับการดึงภาพหน้าจอจากแอปพลิเคชัน การบันทึกวิดีโอแนะนำจากหน้าจอโทรศัพท์ หรือการกู้คืนอุปกรณ์หลังจากอัปเดตเฟิร์มแวร์ที่ล้มเหลว
การสนับสนุน ADB ถูกสร้างไว้ในบิลด์ Android อย่างเป็นทางการทั้งหมดตั้งแต่เวอร์ชัน 2.1 (API 7) โดยต้องเปิดตัวเลือกการดีบัก USB ในการตั้งค่าสำหรับนักพัฒนา ตั้งแต่ Android 4.2 เป็นต้นไป การเชื่อมต่อครั้งแรกอุปกรณ์จะขอการยืนยัน: คุณต้องอนุญาตการดีบักสำหรับคอมพิวเตอร์เฉพาะผ่านคีย์ RSA ของมัน
สำหรับ Windows — ดาวน์โหลด Platform Tools จากเว็บไซต์ทางการของ Google Developers แตกไฟล์ไปยังโฟลเดอร์ C:\adb และเพิ่มพาธนี้ไปยังตัวแปรสภาพแวดล้อม PATH หลังจากรีสตาร์ทเทอร์มินัล คำสั่ง adb จะพร้อมใช้งานทั่วโลก
สำหรับ macOS — วิธีที่ง่ายที่สุดคือติดตั้ง ADB ผ่านตัวจัดการแพ็กเกจ Homebrew: รัน brew install android-platform-tools การพึ่งพาทั้งหมดจะได้รับการแก้ไขโดยอัตโนมัติ
สำหรับ Linux — ในดิสทริบิวชันที่ใช้ Debian / Ubuntu: sudo apt install adb หลังการติดตั้ง ให้เพิ่มผู้ใช้ไปยังกลุ่ม plugdev: sudo usermod -aG plugdev $USER และเข้าสู่ระบบอีกครั้งเพื่อให้ ADB สามารถเข้าถึงอุปกรณ์ USB
ตรวจสอบการติดตั้งด้วยคำสั่ง adb version หากเอาต์พุตแสดงหมายเลขเวอร์ชันของ Android Debug Bridge แสดงว่าเครื่องมือพร้อมใช้งาน
การเชื่อมต่อครั้งแรก เริ่มต้นด้วยคำสั่ง adb devices เสมอ มันแสดงรายการอุปกรณ์ที่เชื่อมต่อและสถานะของพวกเขา หากอุปกรณ์แสดงเป็น unauthorized ให้ปลดล็อกหน้าจอและยืนยันการดีบักบนโทรศัพท์
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
การติดตั้งแอป — หนึ่งในการดำเนินการที่พบบ่อยที่สุด เพียงระบุพาธไปยังไฟล์ APK:
adb install C:\apps\myapp.apk
หากติดตั้งแอปไว้แล้วแต่ต้องการแทนที่ด้วยเวอร์ชันที่อัปเดต ให้เพิ่มแฟล็ก -r (replace):
adb install -r C:\apps\myapp-v2.apk
การถอนการติดตั้งแอป ทำได้โดยใช้ชื่อแพ็กเกจ:
adb uninstall com.example.myapp
การคัดลอกไฟล์ — adb pull ดึงไฟล์จากอุปกรณ์มายังคอมพิวเตอร์ adb push อัปโหลดไฟล์ไปยังอุปกรณ์:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
Shell โต้ตอบ — คำสั่ง adb shell เปิดเชลล์คำสั่งของอุปกรณ์ ภายในนั้นคุณสามารถรันคำสั่ง Linux มาตรฐาน: ls, ps, top, dumpsys, pm, am และอื่น ๆ
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
การเริ่มกิจกรรม ผ่าน ADB ช่วยให้คุณเปิดแอปหรือหน้าจอใดก็ได้โดยไม่ต้องค้นหาไอคอนด้วยตนเอง:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat คือระบบบันทึกของ Android ที่รวบรวมข้อความจากแอปพลิเคชัน บริการระบบ และเคอร์เนล เครื่องมือนี้จำเป็นสำหรับการดีบัก: บันทึกช่วยให้คุณเข้าใจว่าเหตุใดแอปจึงขัดข้อง เมธอดใดทำให้เกิดข้อยกเว้น หรือการดำเนินการเฉพาะใช้เวลานานเท่าใด
การเริ่มต้นง่าย ๆ โดยไม่มีตัวกรอง — adb logcat สตรีมบันทึกไม่มีที่สิ้นสุด; กด Ctrl+C เพื่อหยุด หากต้องการกรองข้อความตามแท็ก ให้ใช้พารามิเตอร์ -s:
adb logcat -s MainActivity:V
ระดับความสำคัญของบันทึก (จากละเอียดที่สุดถึงวิกฤต): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal) การรวมแท็กและระดับช่วยให้คุณเน้นเฉพาะข้อความที่ต้องการ
เพื่อล้างบัฟเฟอร์ที่สะสมก่อนการทดสอบ:
adb logcat -c
และเพื่อบันทึกบันทึกลงในไฟล์:
adb logcat -d > app_logs.txt
แฟล็ก -d (dump) จะส่งออกบัฟเฟอร์ปัจจุบันและสิ้นสุดโดยไม่บล็อกเทอร์มินัล สะดวกสำหรับสคริปต์อัตโนมัติ
ภาพหน้าจอ ถ่ายด้วยคำสั่ง adb shell screencap ผลลัพธ์จะถูกบันทึกในไฟล์ซึ่งจากนั้นจะถูกดึงผ่าน adb pull:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
คุณสามารถรวมการดำเนินการทั้งสองเป็นบรรทัดเดียวโดยใช้การแทนที่และไปป์ ในทางปฏิบัติสิ่งนี้ช่วยเร่งการสร้างเอกสารและรายงานการทดสอบ
การบันทึกหน้าจอ พร้อมใช้งานบน Android 4.4+ (API 19) ระยะเวลาการบันทึกเริ่มต้นคือ 180 วินาที บิตเรตคือ 4 Mbps คำสั่งหลัก:
adb shell screenrecord /sdcard/demo.mp4
กด Ctrl+C เพื่อหยุดบันทึก ความละเอียดวิดีโอตรงกับความละเอียดหน้าจอของอุปกรณ์แต่ไม่เกิน 1080p หากต้องการเปลี่ยนบิตเรต ให้ระบุ --bit-rate:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
คำสั่งวินิจฉัย: adb shell dumpsys แสดงสถานะของบริการระบบทั้งหมด หากต้องการข้อมูลแบตเตอรี่เท่านั้น:
adb shell dumpsys battery
รายการแพ็กเกจที่ติดตั้งสามารถรับได้ผ่าน Package Manager:
adb shell pm list packages
การรีเซ็ตการตั้งค่าแอป (เทียบเท่ากับการล้างข้อมูลในการตั้งค่า):
adb shell pm clear com.example.myapp
การดีบักผ่าน Wi-Fi ช่วยลดความจำเป็นในการเชื่อมต่ออุปกรณ์ผ่าน USB ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์และอุปกรณ์อยู่ในเครือข่ายเดียวกัน ก่อนอื่นรัน adb tcpip 5555 ถอด USB ออก จากนั้นเชื่อมต่อผ่าน IP:
adb tcpip 5555
adb connect 192.168.1.100:5555
หากไม่ทราบที่อยู่ IP ของอุปกรณ์ ให้ค้นหาผ่าน adb shell ip addr show wlan0 ก่อนถอดสาย
การสำรองข้อมูล ของแอปพลิเคชันหรือทั้งระบบสามารถทำได้โดยไม่ต้องรูท:
adb backup -apk -shared -all -system -f mybackup.ab
การกู้คืนจากข้อมูลสำรอง:
adb restore mybackup.ab
การจำลองอินพุต — คำสั่ง adb shell input ช่วยให้จำลองการแตะ การปัด การกดแป้น และการป้อนข้อความ นี่คือพื้นฐานสำหรับการทดสอบ UI อัตโนมัติโดยไม่ต้องใช้เฟรมเวิร์กเพิ่มเติม:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
การรีบูตในโหมดต่าง ๆ:
adb reboot # normal reboot
adb reboot recovery # recovery mode
adb reboot bootloader # bootloader (fastboot)
โหมด fastboot ให้สิทธิ์เข้าถึงการแฟลชอิมเมจ การปลดล็อกบูตโหลดเดอร์ และการติดตั้ง recovery ที่กำหนดเอง
เมื่อมีหลายอุปกรณ์ หรืออีมูเลเตอร์เชื่อมต่อพร้อมกัน ADB ต้องใช้หมายเลขซีเรียลเฉพาะ คำสั่ง adb devices แสดงรายการอุปกรณ์ที่เชื่อมต่อทั้งหมดพร้อมหมายเลขซีเรียล
เพื่อส่งคำสั่งไปยังอุปกรณ์เฉพาะ ให้ใช้แฟล็ก -s:
adb -s 0123456789ABCD install myapp.apk
หากมีอุปกรณ์เพียงเครื่องเดียว สามารถละเว้นแฟล็กได้ อย่างไรก็ตามในสภาพแวดล้อม CI ที่มีอีมูเลเตอร์หลายตัวทำงานพร้อมกัน การระบุหมายเลขซีเรียลเป็นสิ่งจำเป็น
การฆ่าเซิร์ฟเวอร์ ADB — หากอุปกรณ์หยุดตรวจจับหรือแสดงข้อผิดพลาด การรีสตาร์ทเซิร์ฟเวอร์จะช่วย:
adb kill-server
adb start-server
จากนั้นรัน adb devices — เซิร์ฟเวอร์จะรีสตาร์ทและเปลี่ยนเส้นทางคำขอไปยังดีมอนของอุปกรณ์
| คำสั่ง | คำอธิบาย |
|---|---|
| adb devices | แสดงรายการอุปกรณ์ที่เชื่อมต่อ |
| adb install |
ติดตั้ง ไฟล์ APK บนอุปกรณ์ |
| adb uninstall |
ถอนการติดตั้งแอปตามชื่อแพ็กเกจ |
| adb shell | เปิดเชลล์คำสั่งแบบโต้ตอบ |
| adb push |
คัดลอก ไฟล์จากคอมพิวเตอร์ไปยังอุปกรณ์ |
| adb pull |
คัดลอกไฟล์จากอุปกรณ์ไปยังคอมพิวเตอร์ |
| adb logcat | ดูบันทึกของระบบและแอปพลิเคชัน |
| adb shell screencap | ถ่ายภาพหน้าจอ |
| adb shell screenrecord | บันทึกวิดีโอหน้าจอ |
| adb reboot | รีบูต อุปกรณ์ |
| adb tcpip 5555 | สลับ ADB เป็นโหมด TCP/IP สำหรับ Wi-Fi |
| adb connect |
เชื่อมต่อกับอุปกรณ์ผ่าน Wi-Fi |
คำถามที่พบบ่อย
เปิดการตั้งค่า → เกี่ยวกับโทรศัพท์ และแตะหมายเลขบิลด์ 7 ครั้ง กลับไปที่เมนูการตั้งค่าหลัก — ส่วนตัวเลือกนักพัฒนาจะปรากฏขึ้น ภายในให้เปิดการดีบัก USB ตั้งแต่ Android 4.2 เป็นต้นไป เมื่อเชื่อมต่อกับคอมพิวเตอร์ครั้งแรก คุณต้องยืนยันคีย์ RSA การดีบักบนหน้าจออุปกรณ์
อุปกรณ์ไม่เชื่อถือคอมพิวเตอร์ ปลดล็อกหน้าจอโทรศัพท์ เมื่อกล่องโต้ตอบอนุญาตการดีบัก USB ปรากฏขึ้น ให้ทำเครื่องหมายอนุญาตเสมอสำหรับคอมพิวเตอร์เครื่องนี้และแตะตกลง หากกล่องโต้ตอบไม่ปรากฏ ให้ถอดและเสียบสาย USB ใหม่ หรือรัน adb kill-server && adb start-server
ADB ไม่ต้องการการโต้ตอบกับหน้าจอ เชื่อมต่ออุปกรณ์ผ่าน USB รอให้ปรากฏใน adb devices (หากเปิดดีบักไว้แล้ว) และรัน adb install <พาธ_apk> หากต้องการเปิดแอปให้ใช้ adb shell am start -n <แพ็กเกจ>/<กิจกรรม> หากไม่ได้เปิดดีบักไว้ล่วงหน้า การกู้คืนการเข้าถึงโดยไม่มีหน้าจอทำได้ยากกว่ามาก — จะต้องใช้ recovery ที่กำหนดเอง
ADB ติดตั้ง APK โดยตรง โดยข้ามการตรวจสอบของ Google Play Protect ระหว่างการติดตั้ง ทำให้คุณสามารถทดสอบแอปก่อนเผยแพร่ได้ อย่างไรก็ตามการตรวจสอบมัลแวร์ครั้งสุดท้ายยังคงทำงานหลังการติดตั้ง ADB ไม่ต้องใช้บัญชี Google ซึ่งสำคัญสำหรับตู้คีออสค์ขององค์กรและอุปกรณ์ที่ไม่มีบริการของ Google
ได้ คำสั่ง ADB ส่วนใหญ่ทำงานโดยไม่ต้องรูท ข้อยกเว้นคือคำสั่งที่ต้องการเข้าถึงพาร์ติชันระบบที่ได้รับการป้องกัน (เช่น ดัมพ์พาร์ติชันบูตโดยตรงหรือแก้ไขไฟล์ระบบ) สำหรับงานประจำวัน — การติดตั้งแอป การบันทึก ภาพหน้าจอ การสำรองข้อมูล การจำลองอินพุต — ไม่จำเป็นต้องใช้รูท
ADB (Android Debug Bridge) เป็นเครื่องมือพื้นฐานสำหรับทุกคนที่ทำงานกับ Android ในระดับมืออาชีพ ตั้งแต่การติดตั้งแอปพื้นฐานไปจนถึงการทดสอบอัตโนมัติที่ซับซ้อนและการกู้คืนอุปกรณ์ — ADB ครอบคลุมสถานการณ์การโต้ตอบระหว่างคอมพิวเตอร์กับสมาร์ทโฟนหรือแท็บเล็ตเกือบทุกแบบ
เมื่อเชี่ยวชาญคำสั่งที่อธิบายในบทความนี้ คุณจะสามารถจัดการอุปกรณ์ Android ผ่านเทอร์มินัลได้อย่างมั่นใจ วิเคราะห์บันทึก ถ่ายภาพหน้าจอสำหรับเอกสาร ทำการสำรองข้อมูล และเร่งกระบวนการพัฒนา การฝึกฝนเป็นประจำและการศึกษาเอาต์พุตของ adb help จะทำให้คุณเป็นผู้ใช้ที่มีประสบการณ์ของเครื่องมืออันทรงพลังนี้
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม