Η δημιουργία μιας βασικής εφαρμογής Android είναι εύκολη. Από την άλλη πλευρά, μπορεί να γίνει μια αξιόπιστη, επεκτάσιμη και ισχυρή εφαρμογή Android αρκετά προκλητικό .
Με χιλιάδες διαθέσιμων συσκευών που αντλούνται από τόνους διαφορετικών κατασκευαστών, υποθέτοντας ότι ένα μόνο κομμάτι κώδικα θα λειτουργεί αξιόπιστα σε όλα τα τηλέφωνα είναι αφελές στην καλύτερη περίπτωση.
Η τμηματοποίηση είναι η μεγαλύτερη αντιστάθμιση για την ύπαρξη ανοιχτής πλατφόρμας και πληρώνουμε την τιμή στο νόμισμα της συντήρησης κώδικα, το οποίο συνεχίζεται πολύ αφότου μια εφαρμογή έχει περάσει από το στάδιο παραγωγής.
Λοιπόν, τι συμβαίνει όταν μια εφαρμογή Android διακόπτεται ή γίνεται μη ανταποκρίνεται ; Λοιπόν, εμφανίζεται το παράθυρο διαλόγου 'Force Close', ενημερώνοντας τον χρήστη ότι κάτι πήγε στραβά. Εάν πραγματοποιήθηκε λήψη της εφαρμογής μέσω του Google Play, θα ζητηθεί από τον χρήστη να αναφέρει το σφάλμα, αποστέλλοντας μια λεπτομερή αναφορά σφαλμάτων Android (συμπεριλαμβανομένου του χρόνου, του μοντέλου τηλεφώνου, της έκδοσης Android, της παρακολούθησης στοίβας κ.λπ.) στην οποία μπορείτε να δείτε (ο προγραμματιστής) την Κονσόλα προγραμματιστή, επιτρέποντάς σας να αντιμετωπίσετε το σφάλμα του ένοχου.
Όλα αυτά ακούγονται πολύ ωραία - αλλά υπάρχει ένα μεγάλο πρόβλημα με τη χρήση της προεπιλεγμένης αναφοράς σφαλμάτων του Android: οι χρήστες τείνουν δεν να αναλάβουν δράση όταν οι εφαρμογές τους καταρρεύσουν. στην πραγματικότητα, η πλειοψηφία επιλέγει να μην στείλει στις αναφορές σφαλμάτων Android. Πώς λοιπόν, μπορείτε, ως συνειδητός προγραμματιστής , αποκτήστε αξιόπιστες πληροφορίες σχετικά με τα σφάλματα και τις αποτυχίες της εφαρμογής σας;
ΑΚΡΑ σημαίνει 'Automated Crash Reporting for Android'. Πρόκειται για μια δωρεάν βιβλιοθήκη που σας επιτρέπει να επιλύσετε το πρόβλημα της 'μη αυτόματης αναφοράς σφαλμάτων' με μερικές γραμμές κώδικα. Αφού εφαρμόσετε τη βιβλιοθήκη και όλα έχουν αρχικοποιηθεί σωστά, θα μπορείτε να εξαγάγετε τα ίδια αρχεία καταγραφής σφαλμάτων Android με την προεπιλογή της Google (συν μια δέσμη πρόσθετων επιλογών προσαρμογής) αυτόματα και χωρίς να απαιτείται από τον χρήστη να προβεί σε ενέργειες.
Πέρα από αυτό, το ACRA σάς επιτρέπει να επιλέξετε πώς θα θέλατε να ενημερώσετε το χρήστη για σφάλμα Android, με την προεπιλογή να είναι σιωπηλή αναφορά στο παρασκήνιο και εναλλακτικές λύσεις, συμπεριλαμβανομένων προσαρμοσμένων διαλόγων.
Μέχρι πρόσφατα, το ACRA υποστηρίχθηκε από το Google Spreadsheet, το οποίο σήμαινε ότι μπορούσατε να λαμβάνετε όλες τις αναφορές σας σε ένα αρχείο, που φιλοξενείται δωρεάν στο λογαριασμό σας στο Google Drive. Δυστυχώς, το Google ζήτησα να μην χρησιμοποιήσουμε αυτήν την επιλογή στο μέλλον, οπότε μας απομένουν μερικές εναλλακτικές λύσεις για την αποστολή δεδομένων αναφοράς σφαλμάτων, μερικές από τις οποίες θα καλύψουμε σε αυτό το σεμινάριο:
Σε αυτό το άρθρο, θα αναλύσουμε μία από αυτές τις λύσεις: τη φιλοξενία των αναφορών ACRA σε ένα Συννεφιά back-end και οπτικοποίηση των δεδομένων με ακραλιζέρ .
Το πρώτο πράγμα που πρέπει να κάνουμε είναι κανω ΕΓΓΡΑΦΗ έναν λογαριασμό Cloudant. Φυσικά, υπάρχει ένα πλεονέκτημα: Οι υπηρεσίες του Cloudant δεν είναι εντελώς δωρεάν, αλλά σύμφωνα με τις υπηρεσίες τους σελίδα τιμολόγησης είναι πολύ απίθανο να ξεπεράσετε το μηνιαίο όριο των 5 $ (εκτός εάν έχετε τεράστια βάση χρηστών και έναν τόνο σφαλμάτων στον κώδικά σας).
Μόλις εγγραφείτε, πρέπει να καταλάβουμε πώς λειτουργούν τα πράγματα. Σε υψηλό επίπεδο, το back-end θα αποτελείται από δύο στοιχεία:
Για να λειτουργήσει σωστά το back-end, θα χρειαστεί να ρυθμίσουμε αυτά τα δύο στοιχεία. Θεωρητικά, θα μπορούσαμε να δημιουργήσουμε τη βάση δεδομένων και την εφαρμογή από την πηγή και, στη συνέχεια, χρησιμοποιήστε ένα εργαλείο για να τα αναπτύξετε στο πίσω μέρος μας - αλλά οι καλοί λαοί στο ACRA το έχουν ήδη κάνει για εμάς. Έτσι, η ευκολότερη προσέγγιση είναι να αναπαραγάγετε μια απομακρυσμένη βάση δεδομένων και μια απομακρυσμένη εφαρμογή.
Ας προχωρήσουμε και επαναλάβουμε ένα κενό ACRA CouchDB:
Έτσι, έχουμε αναπαραγάγει με επιτυχία τη βάση δεδομένων για αποθήκευση αναφορών. Στη συνέχεια, πρέπει να αναπαράγουμε το acralyzer CouchApp ώστε να μπορούμε να απεικονίσουμε τα δεδομένα:
Σημείωση : η αναπαραγωγή της εφαρμογής acralyzer είναι προαιρετική. Δεν θα το χρειαστείτε εάν ενδιαφέρεστε μόνο να αποθηκεύσετε την αναφορά σφαλμάτων Android, αντί να οπτικοποιήσετε τα δεδομένα (θα ρίξουμε μια πιο προσεκτική ματιά στο acralyzer στην επόμενη ενότητα αυτού του οδηγού Android). Εάν αισθάνεστε αρκετά σίγουροι με τις δεξιότητές σας στο JavaScript, θα μπορούσατε ακόμη και να γράψετε τη δική σας εφαρμογή ανάλυσης! Αλλά αυτό δεν εμπίπτει στο πεδίο αυτής της ανάρτησης ιστολογίου.
Το τελευταίο βήμα της αρχικής διαδικασίας ρύθμισης είναι να προσθέσετε δικαιώματα ασφαλείας. Το Cloudant παρέχει το δικό του επίπεδο ασφαλείας στο CouchDB με καλύτερο έλεγχο στα ατομικά δικαιώματα, επομένως για να γράψουμε μια αναφορά στη βάση δεδομένων μας πρέπει να δημιουργήσουμε έναν λογαριασμό χρήστη με δικαιώματα εγγραφής:
Αριθμοί πιστωτικών καρτών εργασίας 2017 με χρήματα
Μόλις αντιγραφεί, ο πίνακας ελέγχου acralyzer είναι εύκολα προσβάσιμος ακολουθώντας το https://{myapp}.cloudant.com/acralyzer/_design/acralyzer/index.html#/dashboard
. Θα παραδεχτώ: δεν είναι το πιο όμορφο εργαλείο ανάλυσης εκεί έξω, αλλά εξυπηρετεί το σκοπό του.
Από το επάνω μενού, μπορείτε να επιλέξετε ποια βάση δεδομένων θέλετε να οπτικοποιήσετε (είναι δυνατή η φιλοξενία πολλών βάσεων δεδομένων για διαφορετικές εφαρμογές σε ένα μεμονωμένο έργο · αυτό θα επηρεάσει το όριο χρήσης σας) και προεπισκόπηση των δεδομένων στον κύριο πίνακα ελέγχου. Για παράδειγμα, μπορείτε:
Λάβετε υπόψη ότι οι διαθέσιμες μετρήσεις σφαλμάτων Android για οπτικοποίηση θα εξαρτηθούν από τις αναφορές που επιλέγουμε να στείλουμε από την εφαρμογή μας. Η ACRA προσφέρει μια ποικιλία από πεδία αναφοράς , μερικά από τα οποία μπορεί να είναι αρκετά μεγάλα σε μέγεθος ή να μην είναι απολύτως σχετικά με τη διόρθωση σφαλμάτων. Για τα περισσότερα έργα, τα απαιτούμενα πεδία αναφοράς θα είναι επαρκή. Αυτά περιλαμβάνουν:
Όπως αναφέρθηκε προηγουμένως σε αυτό το σεμινάριο, η εφαρμογή του ACRA είναι πολύ εύκολη και απαιτεί μόνο μερικά γρήγορα βήματα.
Πρώτον, πρέπει να συμπεριλάβουμε τη βιβλιοθήκη ως εξάρτηση με έναν από τους ακόλουθους τρόπους:
Ως εξαρτημένη maven:
ch.acra acra X.Y.Z
Ως βαθμιαία εξάρτηση:
compile 'ch.acra:acra:X.Y.Z'
Στη συνέχεια, πρέπει να προσθέσουμε μια κλάση εφαρμογών Android στο έργο μας (ή να ενημερώσουμε μια υπάρχουσα τάξη, καθώς μπορεί να υπάρχει μόνο μία παρουσία) και να την δηλώσουμε στο AndroidManifest.xml:
...
Και ρυθμίστε το ACRA εκεί:
@ReportsCrashes( formUri = 'https://{myusername}.cloudant.com/acra-{myapp}/_design/acra-storage/_update/report', reportType = HttpSender.Type.JSON, httpMethod = HttpSender.Method.POST, formUriBasicAuthLogin = 'GENERATED_USERNAME_WITH_WRITE_PERMISSIONS', formUriBasicAuthPassword = 'GENERATED_PASSWORD', formKey = '', // This is required for backward compatibility but not used customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PACKAGE_NAME, ReportField.REPORT_ID, ReportField.BUILD, ReportField.STACK_TRACE }, mode = ReportingInteractionMode.TOAST, resToastText = R.string.toast_crash ) public class MainApp extends Application { @Override public void onCreate() { super.onCreate(); // The following line triggers the initialization of ACRA ACRA.init(this); } }
Αυτό είναι! Φυσικά, θα πρέπει να αντικαταστήσετε όλα τα σύμβολα κράτησης θέσης {myapp} με πραγματικές τιμές, καθώς και τιμές για formUriBasicAuthLogin
και formUriBasicAuthPassword
.
Όπως μπορείτε να δείτε από το παραπάνω απόσπασμα κώδικα, χρησιμοποιούμε μόνο τα απαιτούμενα πεδία αναφοράς. Μη διστάσετε να προσθέσετε άλλα πεδία που μπορεί να σχετίζονται με την αίτησή σας.
Μπορείτε επίσης να επιλέξετε να χρησιμοποιήσετε PUT αντί για POST. Σε αυτήν την περίπτωση, το REPORT_ID
θα προσαρτηθεί στο τέλος του former
ως παράμετρος.
Τέλος, μπορείτε επίσης να επιλέξετε πώς ενημερώνεται ο χρήστης για το σφάλμα της εφαρμογής Android, ενώ η προεπιλογή είναι μια σιωπηλή αναφορά στο παρασκήνιο. Στην περίπτωσή μας, επιλέγουμε να εμφανίσουμε ένα μήνυμα Toast που θα ενημερώνει τον χρήστη ότι έχει αναφερθεί το σφάλμα και ότι μια διόρθωση σφαλμάτων θα είναι σύντομα διαθέσιμη.
Για να δείτε το ACRA σε δράση, έχω ρυθμίσει το acra_example repo στο GitHub. Διαθέτει μια απλή εφαρμογή που προετοιμάζει το ACRA κατά την εκκίνηση και ας το συντρίψει πατώντας ένα κουμπί (το οποίο στη συνέχεια ενεργοποιεί μια εξαίρεση μηδενικού δείκτη). Τα δεδομένα σφαλμάτων αποστέλλονται σε ένα παράδειγμα βάσης δεδομένων Cloudant που μπορεί να απεικονιστεί εδώ .
Για να δείτε τα δεδομένα, συνδεθείτε με τα ακόλουθα διαπιστευτήρια:
Η ACRA δεν είναι η μόνη επιλογή για αυτόματη αναφορά σφαλμάτων Android. Εφόσον πρόκειται να συμβούν σφάλματα, υπάρχει μια μεγάλη αγορά από επιχείρηση σε προγραμματιστή (B2D) που προσπαθεί να δημιουργήσει έσοδα από την ανάλυσή τους.
Κριτική , για παράδειγμα, είναι μια πολύ ώριμη πλατφόρμα για αναφορές σφαλμάτων. Φαίνεται υπέροχο, προσφέρει πολλές επιλογές για ανάλυση δεδομένων και είναι πολύ εύκολο να ενσωματωθεί. Το μόνο μειονέκτημα: τιμή και η δωρεάν δοκιμή είναι αρκετά περιορισμένη όσον αφορά τον αριθμό των ενεργών χρηστών, τις ημέρες διατήρησης δεδομένων και την υποστήριξη). BugSense είναι μια παρόμοια υπηρεσία.
c++ μηχανή φυσικής
Κατά τη γνώμη μου, ωστόσο, Crashlytics είναι μια ανώτερη λύση. Μέχρι πρόσφατα, το Crashlytics είχε ένα μοντέλο freemium (με ένα επίπεδο premium επί πληρωμή). αλλά τώρα (μετά από αυτά απόκτηση από το Twitter ), όλες οι λειτουργίες πρώην premium είναι διαθέσιμες για Ελεύθερος . Δεν υπάρχουν κόστη χρήσης, τέλη ή όρια. Αυτό είναι το προτιμώμενο μέσο αναφοράς σφαλμάτων για πολλές εταιρείες και προγραμματιστές υψηλού προφίλ και υψηλού επιπέδου, καθώς είναι πολύ εύκολο στη χρήση και προσφέρει ισχυρά εργαλεία ανάλυσης και οπτικοποίησης. Ενσωματώνεται ακόμη και με τα πιο δημοφιλή IDE ως προσθήκη (π.χ. Eclipse, Android Studio), οπότε η προσθήκη του Crashlytics στην εφαρμογή σας είναι τόσο απλή όσο η επιλογή ενός έργου και το πάτημα ενός κουμπιού. Αυτές οι προσθήκες σας δίνουν επίσης τη δυνατότητα να παρακολουθείτε αναφορές σφαλμάτων από το IDE σας χωρίς να χρειάζεται να ανοίξετε ένα πρόγραμμα περιήγησης.
Λοιπόν, γιατί να χρησιμοποιήσετε το ACRA τότε όταν υπάρχουν άλλες εναλλακτικές λύσεις που φαίνονται πολύ καλύτερες και προσφέρουν περισσότερες δυνατότητες για την ίδια προσπάθεια υλοποίησης; Θα σας δώσω δύο λόγους.
Όλες αυτές οι άλλες επιλογές είναι κλειστή πηγή, ιδιόκτητο λογισμικό . Ακόμα και με ένα καλάθι γεμάτο EULA, δεν μπορείτε να είστε σίγουροι ακριβώς πως τα δεδομένα σας συλλέγονται και διαχειρίζονται. Από την άλλη πλευρά, το ACRA και το acralyzer είναι έργα ανοιχτού κώδικα που φιλοξενούνται στο GitHub, τα οποία μπορείτε εύκολα να διασκεδάσετε και να προσαρμόσετε στις ανάγκες σας.
Κινητικότητα δεδομένων . Ας υποθέσουμε ότι δεν είστε ικανοποιημένοι με το Cloudant. Είναι πολύ εύκολο να αντιγράψετε και να μετεγκαταστήσετε τα δεδομένα σας σε ένα άλλο back-end. Είστε εγγυημένοι ότι τα δεδομένα μένει δικό σου .
Όπως με πολλές επιλογές, αυτό οφείλεται στις προσωπικές προτιμήσεις και οικειότητα. Δείτε αυτό το Google+ Νήμα για περισσότερες συζητήσεις σχετικά με τις διάφορες διαθέσιμες εναλλακτικές λύσεις για να καταστήσετε την εφαρμογή σας πιο αξιόπιστη.
Το ACRA είναι εξαιρετικά ανθεκτικό και εξαιρετικά προσαρμόσιμο βιβλιοθήκη που μπορεί να χρησιμοποιηθεί παράλληλα με το Cloudant και το acralyzer για την επίτευξη δωρεάν, αυτοματοποιημένων αναφορών σφαλμάτων και βασικών αναλυτικών στοιχείων για την εφαρμογή σας, όλα για ελάχιστη προσπάθεια υλοποίησης.
Η σύνταξη αξιόπιστου κώδικα Android απαιτεί πολλή εμπειρία και προνοητικότητα, αλλά κανένας από εμάς δεν είναι πραγματικά παντογνώστης. Να είστε προετοιμασμένοι για τα απροσδόκητα σφάλματα και σφάλματα και να είστε έτοιμοι διορθώσετε το απροσδόκητο το συντομότερο δυνατό. Αυτό είναι το είδος της εργασίας που πηγαίνει σε υπέροχα προϊόντα και εξαιρετικές εμπειρίες χρηστών.
Σχετίζεται με: Κάντε την εφαρμογή σας κερδοφόρα — Αξιοποιήστε το Analytics για κινητά