ADB (Android Debug Bridge) — είναι ένα πολυλειτουργικό βοηθητικό πρόγραμμα κονσόλας που αποτελεί μέρος του Android SDK. Επιτρέπει στον υπολογιστή να αλληλεπιδρά απευθείας με μια συσκευή Android μέσω καλωδίου USB ή μέσω Wi-Fi. Με το ADB μπορείτε να εγκαταστήσετε και να απεγκαταστήσετε εφαρμογές, να αντιγράψετε αρχεία, να εκτελέσετε εντολές κελύφους, να προβάλετε αρχεία καταγραφής συστήματος, να τραβήξετε στιγμιότυπα οθόνης και να καταγράψετε την οθόνη, να διαχειριστείτε ρυθμίσεις και ακόμη και να εκτελέσετε αυτοματοποιημένες δοκιμές. Το εργαλείο είναι απαραίτητο για προγραμματιστές, δοκιμαστές και λάτρεις που επιθυμούν να αποκτήσουν πλήρη έλεγχο της συσκευής.
Κύρια σημεία
Android Debug Bridge (ADB) — είναι μια εφαρμογή πελάτη-εξυπηρετητή που αποτελείται από τρία στοιχεία: πελάτη (εκτελείται στον υπολογιστή), εξυπηρετητή (διεργασία παρασκηνίου στον υπολογιστή) και τον δαίμονα adbd (εκτελείται στην ίδια τη συσκευή Android). Όταν ένας προγραμματιστής ή μηχανικός συνδέει ένα smartphone στον υπολογιστή, το ADB δημιουργεί ένα αξιόπιστο κανάλι επικοινωνίας μέσω του οποίου μπορούν να μεταδοθούν εντολές, αρχεία και δεδομένα.
Τα κύρια σενάρια χρήσης του ADB περιλαμβάνουν τον εντοπισμό σφαλμάτων εφαρμογών σε πραγματική συσκευή χωρίς να χρειάζεται δημοσίευση του APK στο κατάστημα, εξαγωγή αρχείων καταγραφής για ανάλυση σφαλμάτων, αυτοματοποίηση δοκιμών, δημιουργία αντιγράφων ασφαλείας δεδομένων, φλασάρισμα εικόνων ανάκτησης και απόκτηση πρόσβασης root. Ακόμα κι αν δεν γράφετε κώδικα, το 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/
Διαδραστικό κέλυφος — η εντολή 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). Ο συνδυασμός ετικέτας και επιπέδου επιτρέπει την εξαγωγή μόνο των απαραίτητων μηνυμάτων.
Για εκκαθάριση του συσσωρευμένου buffer πριν από τη δοκιμή:
adb logcat -c
Και για αποθήκευση των αρχείων καταγραφής σε ένα αρχείο:
adb logcat -d > app_logs.txt
Η σημαία -d (dump) εμφανίζει το τρέχον buffer και τερματίζει χωρίς να μπλοκάρει το τερματικό. Αυτό είναι βολικό για σενάρια αυτοματοποίησης.
Στιγμιότυπο οθόνης γίνεται με την εντολή adb shell screencap. Το αποτέλεσμα αποθηκεύεται σε ένα αρχείο, το οποίο στη συνέχεια εξάγεται μέσω adb pull:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Μπορείτε να συνδυάσετε και τις δύο λειτουργίες σε μία γραμμή χρησιμοποιώντας αντικατάσταση και σωλήνωση. Στην πράξη, αυτό επιταχύνει τη δημιουργία τεκμηρίωσης και αναφορών δοκιμών.
Εγγραφή οθόνης είναι διαθέσιμη σε Android 4.4+ (API 19). Η προεπιλεγμένη διάρκεια εγγραφής είναι 180 δευτερόλεπτα, bitrate — 4 Mbit/s. Η κύρια εντολή:
adb shell screenrecord /sdcard/demo.mp4
Για διακοπή της εγγραφής πατήστε Ctrl+C. Η ανάλυση βίντεο αντιστοιχεί στην ανάλυση οθόνης της συσκευής, αλλά δεν υπερβαίνει τα 1080p. Για αλλαγή του bitrate, καθορίστε το --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 πριν αποσυνδέσετε το καλώδιο.
Αντίγραφο ασφαλείας δεδομένων εφαρμογής ή ολόκληρου του συστήματος γίνεται χωρίς root:
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 # κανονική επανεκκίνηση
adb reboot recovery # λειτουργία ανάκτησης
adb reboot bootloader # φορτωτής εκκίνησης (fastboot)
Η λειτουργία fastboot παρέχει πρόσβαση στο φλασάρισμα εικόνων, ξεκλείδωμα του bootloader και εγκατάσταση προσαρμοσμένης ανάκτησης.
Όταν είναι συνδεδεμένες πολλές συσκευές ή εξομοιωτές ταυτόχρονα, το 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 <πακέτο>/<δραστηριότητα>. Εάν ο εντοπισμός σφαλμάτων δεν ήταν ενεργοποιημένος εκ των προτέρων, η επαναφορά πρόσβασης χωρίς οθόνη είναι σημαντικά πιο δύσκολη — θα απαιτηθεί προσαρμοσμένη ανάκτηση.
Το ADB εγκαθιστά το APK απευθείας, παρακάμπτοντας τους ελέγχους Google Play Protect κατά την εγκατάσταση, επιτρέποντας τη δοκιμή εφαρμογών πριν από τη δημοσίευση. Ωστόσο, ο τελικός έλεγχος για κακόβουλο κώδικα εκτελείται και πάλι μετά την εγκατάσταση. Το ADB δεν απαιτεί λογαριασμό Google, κάτι που είναι σημαντικό για εταιρικά περίπτερα και συσκευές χωρίς υπηρεσίες Google.
Ναι, η συντριπτική πλειοψηφία των εντολών ADB λειτουργεί χωρίς root. Εξαιρέσεις αποτελούν εντολές που απαιτούν πρόσβαση σε προστατευμένα διαμερίσματα συστήματος (για παράδειγμα, απευθείας dump του διαμερίσματος boot ή τροποποίηση αρχείων συστήματος). Για καθημερινές εργασίες — εγκατάσταση εφαρμογών, καταγραφή, στιγμιότυπα οθόνης, αντίγραφα ασφαλείας, προσομοίωση εισόδου — το root δεν απαιτείται.
ADB (Android Debug Bridge) — είναι ένα θεμελιώδες εργαλείο για όλους όσους εργάζονται με Android σε επαγγελματικό επίπεδο. Από τη βασική εγκατάσταση εφαρμογών έως την πολύπλοκη αυτοματοποίηση δοκιμών και την επαναφορά συσκευών — το ADB καλύπτει σχεδόν κάθε σενάριο αλληλεπίδρασης υπολογιστή με smartphone ή tablet.
Κατακτώντας τις εντολές που περιγράφονται σε αυτό το άρθρο, θα μπορείτε να διαχειρίζεστε με σιγουριά μια συσκευή Android μέσω τερματικού, να αναλύετε αρχεία καταγραφής, να τραβάτε στιγμιότυπα οθόνης για τεκμηρίωση, να δημιουργείτε αντίγραφα ασφαλείας και να επιταχύνετε τη διαδικασία ανάπτυξης. Η τακτική εξάσκηση και η μελέτη της εξόδου του adb help θα σας κάνουν έμπειρο χρήστη αυτού του ισχυρού εργαλείου.
Περίληψη
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης