Ενημερώθηκε: Ιανουάριος 2020.
Το Android Studio προσφέρει μια πλούσια παλέτα ενσωματωμένων εργαλείων ανάπτυξης και ένα ακόμη πιο άφθονο οικοσύστημα προσθηκών. Τα τρία πρώτα άρθρα αυτής της σειράς επικεντρώθηκαν στην εγκατάσταση και τη ρύθμιση και την κωδικοποίηση και την εκτέλεση μιας απλής εφαρμογής για κινητά με το Android Studio. Τώρα θα εξοικειωθείτε με μερικά από τα πιο προηγμένα εργαλεία: τρία ενσωματωμένα εργαλεία και τρία πρόσθετα για τον εντοπισμό σφαλμάτων και τη βελτίωση της ποιότητας και της παραγωγικότητας του κώδικα της εφαρμογής σας Android.
Αυτό το άρθρο παρουσιάζει τα ακόλουθα εργαλεία για το Android Studio:
Ενσωματωμένα εργαλεία εντοπισμού σφαλμάτων
- Logcat
- Εντοπισμός σφαλμάτων
- Στουπί
Προσθήκες για παραγωγικότητα προγραμματιστή
- Ιδέα ADB
- Codota
- Πρόσθετο Lombok
Τι νέο υπάρχει στο Android Studio 3.5
Μάθετε τι να ψάξετε στην τελευταία έκδοση του Android Studio, συμπεριλαμβανομένης της υποστήριξης για το Kotlin και βελτιώσεις στη διαχείριση μνήμης και την απόκριση διεπαφής χρήστη.
Καταγραφή και εντοπισμός σφαλμάτων εφαρμογών Android
Μια εφαρμογή με λάθη είναι ένας σίγουρος τρόπος για να απομακρύνετε πιθανούς πελάτες. Το Logcat και το Debug είναι δύο εργαλεία που είναι ενσωματωμένα στο Android Studio, τα οποία μπορείτε να χρησιμοποιήσετε για να εντοπίσετε και να διορθώσετε σφάλματα στον κώδικα Android σας.
Καταγραφή Android: Logcat
Ίσως δεν χρειάζεστε ή θέλετε ένα πλήρες πρόγραμμα εντοπισμού σφαλμάτων για κάθε σενάριο "buggy". Σε ορισμένες περιπτώσεις αρκεί η καταγραφή και η διόρθωση των τιμών ορισμένων μεταβλητών. Το Android Studio's Logcat είναι ιδανικό για αυτήν την εργασία.
Logcat είναι ένα εργαλείο γραμμής εντολών (ενσωματωμένο στο Android Debug Bridge - ADB) που απορρίπτει ένα κούτσουρο μηνυμάτων συστήματος που μπορούν να σας βοηθήσουν να βρείτε και να διορθώσετε προβλήματα στον κώδικά σας. Τα μηνύματα περιλαμβάνουν ίχνη στοίβας για το πότε η συσκευή εμφανίζει σφάλμα και καταγράφει μηνύματα που έχετε ενσωματώσει σκόπιμα με το android.util.Log
τάξη. Το Logcat είναι τόσο χρήσιμο που έχει ενσωματωθεί απευθείας στο Android Studio, όπου μπορείτε να έχετε πρόσβαση σε αυτό από το Θέα μενού ή τη γραμμή παραθύρων εργαλείων.

ο Logcat Το παράθυρο χωρίζεται σε μια οριζόντια σειρά αναπτυσσόμενων λιστών και άλλων στοιχείων ελέγχου που ακολουθούνται από μια περιοχή μηνυμάτων. Από αριστερά προς τα δεξιά, τα στοιχεία ελέγχου είναι:
- Μια αναπτυσσόμενη λίστα που προσδιορίζει συνδεδεμένες συσκευές και εξομοιωτές. (Βλέπε σχήμα 1.)
- Μια αναπτυσσόμενη λίστα που προσδιορίζει εγκατεστημένα πακέτα APK στην επιλεγμένη συσκευή.
- Μια αναπτυσσόμενη λίστα επιπέδων καταγραφής:
- Ρήμα: εμφάνιση όλων των μηνυμάτων.
- Εντοπισμός σφαλμάτων: εμφάνιση μηνυμάτων καταγραφής εντοπισμού σφαλμάτων που είναι χρήσιμα μόνο κατά την ανάπτυξη, καθώς και τα επίπεδα μηνυμάτων χαμηλότερα στην αναπτυσσόμενη λίστα.
- Πληροφορίες: εμφάνιση αναμενόμενων μηνυμάτων καταγραφής για κανονική χρήση, καθώς και χαμηλότερα επίπεδα μηνυμάτων στην αναπτυσσόμενη λίστα.
- Προειδοποίηση: εμφάνιση πιθανών ζητημάτων που δεν είναι ακόμη σφάλματα, καθώς και τα επίπεδα μηνυμάτων χαμηλότερα στην αναπτυσσόμενη λίστα.
- Σφάλμα: εμφάνιση ζητημάτων που έχουν προκαλέσει σφάλματα - εξαιρέσεις που ρίχνονται, καθώς και το επίπεδο μηνύματος Assert.
- Assert: εμφάνιση ζητημάτων που ο προγραμματιστής δεν αναμένεται να συμβεί ποτέ.
- Μια γραμμή αναζήτησης όπου τα μόνα μηνύματα που εμφανίζονται είναι αυτά που περιέχουν το κείμενο που πληκτρολογείτε σε αυτό το στοιχείο ελέγχου.
- Ένα πλαίσιο ελέγχου που σας επιτρέπει να χρησιμοποιείτε κανονικές εκφράσεις στη γραμμή αναζήτησης. Για παράδειγμα, στο πλαίσιο του Σχήματος 1, μπορείτε να καθορίσετε SystemClock | Διαχείριση συναγερμών (δηλαδή, το μήνυμα πρέπει να περιέχει οποιαδήποτε λέξη).
- Μια αναπτυσσόμενη λίστα για φιλτράρισμα μηνυμάτων, συμπεριλαμβανομένων των ακόλουθων επιλογών:
- Χωρίς φίλτρα (η προεπιλογή) προκαλεί την εμφάνιση όλων των μηνυμάτων για την επιλεγμένη συσκευή, ανεξάρτητα από το επιλεγμένο πακέτο APK.
- Εμφάνιση μόνο επιλεγμένης εφαρμογής παρουσιάζει μόνο αυτά τα μηνύματα για το επιλεγμένο πακέτο APK στην επιλεγμένη συσκευή, τα οποία έχουν το κατάλληλο επίπεδο καταγραφής ή χαμηλότερο.
- Επεξεργασία διαμόρφωσης φίλτρου σας επιτρέπει να δημιουργήσετε ένα προσαρμοσμένο φίλτρο.
Στον πηγαίο κώδικα, μπορείτε να εισάγετε κλήσεις σε διάφορα android.util.Log
μεθόδους καταγραφής μηνυμάτων. Για παράδειγμα, μπορείτε να καλέσετε δημόσιο στατικό int i (String tag, String msg)
για να καταγράψετε ένα ΠΛΗΡΟΦΟΡΙΕΣ
- επίπεδο μηνύματος, ή public static int w (String tag, String msg)
για να καταγράψετε ένα ΠΡΟΕΙΔΟΠΟΙΩ
- επίπεδο μηνύματος.
Για οποιαδήποτε από τις δύο μεθόδους, η συμβολοσειρά πέρασε στο ετικέτα
προσδιορίζει την πηγή του μηνύματος (π.χ. τη μέθοδο με την οποία κλήθηκε αυτή η μέθοδος καταγραφής) και τη συμβολοσειρά που πέρασε μήνυμα
αναγνωρίζει το μήνυμα που καταγράφεται.
Εναλλακτικά, μπορείτε να καλέσετε System.out
και System.err
'μικρό Τυπώνω()
και εκτύπωση ()
μεθόδους. Κλήσεις προς το System.out
οι μέθοδοι επιτυγχάνουν το ίδιο πράγμα όπως log.i ()
κλήσεις κλήσεις προς το System.err
οι μέθοδοι επιτυγχάνουν το ίδιο πράγμα όπως log.w ()
κλήσεις.

Στο Σχήμα 2, τα μόνα εμφανιζόμενα μηνύματα είναι για το παράδειγμα της διαδικασίας εφαρμογής που εκτελείται στη μιμημένη συσκευή Nexus 5X. Επιπλέον, αυτά τα μηνύματα πρέπει να περιέχουν onCreate
και να γίνει αποδεκτό από το Εμφάνιση μόνο επιλεγμένης εφαρμογής φίλτρο.
Περισσότερα για το Logcat
Ρίξτε μια ματιά στο "Εγγραφή και προβολή αρχείων καταγραφής με Logcat" της Google για να μάθετε περισσότερα σχετικά με το Logcat. Επίσης, μελετήστε το android.util.Log
τεκμηρίωση της τάξης.
Εντοπισμός σφαλμάτων Android: Εντοπισμός σφαλμάτων
Η χρήση του Logcat για καταγραφή και διόρθωση κώδικα είναι εντάξει για πολύ απλές εφαρμογές. Για πιο περίπλοκες εφαρμογές, αυτή η μορφή εντοπισμού σφαλμάτων μπορεί να είναι κουραστική. Αντ 'αυτού, θέλετε κάτι που σας επιτρέπει να εντοπίσετε τον εκτελέσιμο κώδικα της εφαρμογής. Το ενσωματωμένο εργαλείο εντοπισμού σφαλμάτων του Android Studio προσφέρει πολλές δυνατότητες, συμπεριλαμβανομένων των εξής:
- Επιλέξτε μια συσκευή στην οποία μπορείτε να εντοπίσετε σφάλματα στην εφαρμογή σας.
- Ορίστε σημεία διακοπής στον κωδικό της εφαρμογής σας (Java, Kotlin ή C / C ++).
- Εξετάστε τις μεταβλητές και αξιολογήστε τις εκφράσεις κατά το χρόνο εκτέλεσης.
Υπάρχουν ορισμένες προϋποθέσεις πριν χρησιμοποιήσετε αυτό το εργαλείο εντοπισμού σφαλμάτων:
- Εάν η εφαρμογή σας περιλαμβάνει πηγαίο κώδικα C / C ++, θα πρέπει να εγκαταστήσετε το LLDB από το SDK Manager (βλ. Εικόνα 3). Ευτυχώς, το παράδειγμα εφαρμογής για αυτήν τη σειρά (W2A) δεν περιέχει κώδικα C / C ++, επομένως μπορούμε να αγνοήσουμε αυτήν την προϋπόθεση.
Τζεφ Φρίσεν
- Πρέπει να ενεργοποιήσετε τον εντοπισμό σφαλμάτων σε μια συνδεδεμένη συσκευή. Ωστόσο, εάν χρησιμοποιείτε έναν εξομοιωτή (το οποίο είμαστε για αυτό το παράδειγμα), μπορείτε να αγνοήσετε αυτήν την προϋπόθεση. Ο εντοπισμός σφαλμάτων είναι ενεργοποιημένος από προεπιλογή σε προσομοιωμένες συσκευές.
- Πρέπει να εκτελέσετε μια παραλλαγή με δυνατότητα εντοπισμού σφαλμάτων. Από προεπιλογή, αυτό δημιουργείται για εσάς, οπότε σε πολλές περιπτώσεις (συμπεριλαμβανομένου αυτού του παραδείγματος) δεν χρειάζεται να ανησυχείτε για αυτό.
Ας περάσουμε από μια γρήγορη συνεδρία εντοπισμού σφαλμάτων.
Απλό εντοπισμό σφαλμάτων Android
Υποθέτοντας ότι εκτελείτε το Android Studio με το παράθυρο του προγράμματος επεξεργασίας για την εφαρμογή παραδείγματος (W2A.java) ανοίξτε, το πρώτο σας βήμα είναι να ορίσετε ένα σημείο διακοπής στο public void onCreate (Bundle αποθηκευμένοInstanceState)
γραμμή. Ορίστε το σημείο διακοπής επισημαίνοντας αυτήν τη γραμμή και κάντε ένα από τα ακόλουθα:
- Κάντε κλικ στην περιοχή υδρορροών στα αριστερά της γραμμής. η γραμμή θα πρέπει να γίνει ροζ σε απόκριση.
- Επιλέγω Εναλλαγή σημείου διακοπής γραμμής από το Τρέξιμο μενού.
- Τύπος Ctrl και F8 ΤΑΥΤΟΧΡΟΝΑ.
Τώρα επιλέξτε Εντοπισμός σφαλμάτων "εφαρμογή" από το Τρέξιμο μενού ή κάντε κλικ στο κατάλληλο εικονίδιο στη γραμμή εργαλείων. Εάν ο εξομοιωτής δεν λειτουργεί, θα παρατηρήσετε το Επιλέξτε Στόχος ανάπτυξης κουτί διαλόγου. επέλεξα Nexus 5X API 15 και έκανε κλικ Εντάξει.
Ενώ περιμένετε να συνδεθεί η προσομοιωμένη συσκευή, κάντε κλικ στο Εντοπισμός σφαλμάτων κουμπί στη γραμμή εργαλείων για να εμφανιστεί το Εντοπισμός σφαλμάτων παράθυρο. Τελικά, θα δείτε κάτι παρόμοιο με το Σχήμα 4.

ο Εντοπισμός σφαλμάτων Το παράθυρο παρέχει εικονίδια για να μετακινηθείτε, να εισέλθετε και να βγείτε από μια μέθοδο και πολλά άλλα. Το σχήμα 5 δείχνει τι συμβαίνει όταν εμείς πέρασε μια μέθοδος.

Κάντε κλικ στο κατάλληλο εικονίδιο και επιλέξτε Βήμα από το Τρέξιμο μενού ή πατήστε F8. Αυτό μας επιτρέπει να προχωρήσουμε βαθύτερα στο onCreate ()
μέθοδος ενώ πατάτε πάνω από κάθε κλήση μεθόδου.
Επιλέξτε τη γραμμή με το κλείσιμο }
χαρακτήρας για το onCreate ()
και στη συνέχεια επιλέξτε Τρέξτε στο δρομέα. Θα λάβετε μια ειδοποίηση ότι η εφαρμογή εκτελείται. Αφού ξεκλειδώσετε τη συσκευή, θα πρέπει να δείτε το παράθυρο δραστηριότητας του παραδείγματος.

Περισσότερα για το Debug
Ρίξτε μια ματιά στο Google "Εντοπισμός σφαλμάτων της εφαρμογής σας" για να μάθετε περισσότερα σχετικά με τον εντοπισμό σφαλμάτων στο Android Studio. για παράδειγμα, πώς να χρησιμοποιήσετε διάφορα είδη σημείων διακοπής.
Εντοπισμός σφαλμάτων με το GAPID
Παρόλο που δεν καλύπτεται εδώ, προτείνω να ελέγξετε το GAPID: Graphics API Debugger, μια συλλογή εργαλείων εντοπισμού σφαλμάτων που σας επιτρέπουν να ελέγχετε, να τροποποιείτε και να επαναλαμβάνετε κλήσεις από μια εφαρμογή Android σε πρόγραμμα οδήγησης γραφικών.
Επιθεώρηση κώδικα με την Lint
Ανεξάρτητα από το πόσο προσεκτικά το γράφετε, ο πηγαίος κώδικας σας είναι πιθανό να περιέχει σφάλματα, στυλιστικά ζητήματα και μπορεί να αναφέρεται σε πόρους που είναι ανενεργές για έναν ή τον άλλο λόγο. ΕΝΑ χείλος είναι ένας τύπος εργαλείου που σαρώνει τον πηγαίο κώδικα για αποδεικτικά στοιχεία για αυτά και άλλα κομμάτια άσχημου χνουδιού, το οποίο αναφέρει στον προγραμματιστή.
Στουπί είναι ένας ενσωματωμένος linter για Android SDK. Μπορείτε να το χρησιμοποιήσετε για να εντοπίσετε ζητήματα όπως καταργημένα στοιχεία και κλήσεις API που δεν υποστηρίζονται από το API στόχευσης.
Για να εκτελέσετε το Lint από το Android Studio, επιλέξτε Επιθεώρηση κώδικα ... από το Αναλύει μενού. Με αυτόν τον τρόπο ενεργοποιείται το Καθορίστε το πεδίο ελέγχου κουτί διαλόγου.

Από το πλαίσιο διαλόγου, επιλέξτε το επιθυμητό πεδίο (ολόκληρο το έργο, σε αυτήν την περίπτωση) και, στη συνέχεια, κάντε κλικ στο Εντάξει για να ξεκινήσει η επιθεώρηση. Τα αποτελέσματα θα εμφανιστούν στο Αποτελέσματα επιθεώρησης παράθυρο, όπου είναι οργανωμένα ανά κατηγορία.

Πιστός στη φύση του, η Lint έχει διαλέξει μερικά κομμάτια χνούδι που διαφορετικά θα μπορούσαν να περιβάλλουν τον κωδικό εφαρμογής. Μόλις εντοπιστεί, είναι εύκολο να διορθώσετε τις τρεις προειδοποιήσεις Java που φαίνονται στο Σχήμα 8: απλώς δηλώστε androidAnimation
ιδιωτικός
και αφαιρέστε τα καστ από τα δύο findViewById ()
κλήσεις μεθόδου.
Περισσότερα για τον Lint
Ανατρέξτε στην ενότητα "Βελτιώστε τον κώδικά σας με ελέγχους χνούδι" για να μάθετε περισσότερα σχετικά με τη χρήση του Lint στο Android Studio και για να μάθετε για το αυτόνομο εργαλείο Lint του Android SDK.
Εγκατάσταση και χρήση προσθηκών του Android Studio
Ενώ τα ενσωματωμένα εργαλεία έχουν την αξία τους, πολλά άλλα εργαλεία είναι διαθέσιμα ως πρόσθετα. Σε αυτήν την ενότητα, θα εξετάσουμε τρία πρόσθετα για τη βελτίωση της παραγωγικότητας της κωδικοποίησής σας στο Android Studio:
- Ιδέα ADB
- Codota
- Πρόσθετο Lombok
Διαχείριση προσθηκών του Android Studio
Ο διαχειριστής προσθηκών του Android Studio διευκολύνει την εύρεση και την εγκατάσταση προσθηκών. Ενεργοποιήστε τον διαχειριστή προσθηκών επιλέγοντας Αρχείο >Ρυθμίσεις ακολουθούμενη από Πρόσθετα από το Ρυθμίσεις κουτί διαλόγου:

Στη συνέχεια, κάντε κλικ στο Περιήγηση σε αποθετήρια ... για να ενεργοποιήσετε το Περιήγηση σε αποθετήρια πλαίσιο διαλόγου, το οποίο παρουσιάζει μια πλήρη λίστα των υποστηριζόμενων προσθηκών. Θα χρησιμοποιήσουμε αυτό το διάλογο για να επιλέξουμε το πρώτο μας πρόσθετο, το ADB Idea.

Ενισχύστε την παραγωγικότητά σας Android
Συντομεύσεις κώδικα: ADB Idea
Ιδέα ADB επιταχύνει την καθημερινή ανάπτυξη Android παρέχοντας γρήγορη πρόσβαση σε εντολές ADB που χρησιμοποιούνται συνήθως, όπως η εκκίνηση και η απεγκατάσταση μιας εφαρμογής.
Επιλέγω Ιδέα ADB στη λίστα αποθετηρίων των προσθηκών και, στη συνέχεια, κάντε κλικ στο Εγκαθιστώ κουμπί. Το Android Studio προχωρά στη λήψη και εγκατάσταση της προσθήκης. Στη συνέχεια ξανασυναρμολογείται Εγκαθιστώ προς την Επανεκκινήστε το Android Studio. Για κάθε προσθήκη, έπρεπε να επανεπιλέξω το πρόσθετο αφού έκανα κλικ Επανεκκινήστε το Android Studioκαι, στη συνέχεια, κάντε κλικ σε αυτό το κουμπί για δεύτερη φορά για να επανεκκινήσετε το Android Studio.

Μόλις εγκατασταθεί, το Android Studio σάς επιτρέπει να έχετε πρόσβαση στο ADB Idea από αυτό Εργαλεία μενού. Επιλέγω Εργαλεία> Ιδέα ADB και επιλέξτε την κατάλληλη εντολή από το αναδυόμενο μενού που προκύπτει.

Αφού επέλεξα Εφαρμογή επανεκκίνησης ADB, Παρατήρησα τα ακόλουθα μηνύματα στο Αρχείο καταγραφής συμβάντων παράθυρο, καθώς και την επανεκκίνηση της εφαρμογής στο Amazon Kindle συσκευή μου.

Βρείτε χρησιμοποιήσιμο κωδικό: Codota
Μπορείτε να χρησιμοποιήσετε το Codota προσθήκη για πρόσβαση στη μηχανή αναζήτησης Codota, η οποία σας επιτρέπει να αναζητήσετε εκατομμύρια διαθέσιμα στο κοινό αποσπάσματα πηγαίου κώδικα Java για λύσεις σε προβλήματα κωδικοποίησης Android.

Επιλέγω Codota στη λίστα αποθετηρίων των προσθηκών και, στη συνέχεια, κάντε κλικ στο Εγκαθιστώ κουμπί. Αφού το Android Studio κατεβάσει και εγκαταστήσει την προσθήκη, θα επανασημάνσει το Εγκαθιστώ κουμπί προς Επανεκκινήστε το Android Studio. Η επανεκκίνηση ενεργοποιεί το Codota.
Με την επανεκκίνηση, θα συναντήσετε το Έλεγχος ταυτότητας Codota κουτί διαλόγου. Κάντε κλικ στον σύνδεσμο και ακολουθήστε τις οδηγίες για να λάβετε το διακριτικό. Στη συνέχεια, επικολλήστε το διακριτικό στο προαναφερθέν παράθυρο διαλόγου και κάντε κλικ στο Πηγαίνω.

Το Android Studio σάς επιτρέπει να έχετε πρόσβαση στο Codota κάνοντας δεξί κλικ στον κώδικα Java στο παράθυρο του προγράμματος επεξεργασίας και επιλέγοντας το Λάβετε σχετικά παραδείγματα στοιχείο μενού, όπως φαίνεται στο σχήμα 16.

Κάνοντας κλικ σε αυτό το στοιχείο μενού, το πρόγραμμα περιήγησης παρουσιάζει μια σελίδα με σχετικά παραδείγματα κώδικα. Για παράδειγμα, η ακόλουθη σελίδα παρουσιάζει παραδείγματα που σχετίζονται με findViewById
:

Αυτόματη δημιουργία κώδικα Java: Lombok
Έργο Lombok προσφέρει ένα σύνολο σχολιασμών που μπορείτε να χρησιμοποιήσετε στη θέση του boilerplate κώδικα, εξοικονομώντας έτσι χρόνο γράφοντας αυτόν τον κωδικό με το χέρι.

Επιλέγω Πρόσθετο Lombok στη λίστα αποθετηρίων των προσθηκών και, στη συνέχεια, κάντε κλικ στο Εγκαθιστώ. Αφού το Android Studio κατεβάσει και εγκαταστήσει την προσθήκη, θα σας ζητήσει Επανεκκινήστε το Android Studio. Η επανεκκίνηση ενεργοποιεί το Lombok Plugin.