- Προηγμένη διαχείριση παραλλαγών προϊόντων και τύπων κατασκευής χρησιμοποιώντας το Gradle για βελτιστοποίηση της ανάπτυξης.
- Λεπτομερής έλεγχος του SDK, των ονομάτων και των αναγνωριστικών εφαρμογών για τη διασφάλιση της συμβατότητας και της μοναδικότητας στο Google Play.
- Βελτιστοποίηση της απόδοσης του IDE και του συστήματος δημιουργίας για περιβάλλοντα με περιορισμούς πόρων.
- Ενσωμάτωση εγγενών βιβλιοθηκών C++ και χρήση της κλάσης BuildConfig για δυναμικά περιβάλλοντα.
Αν ασχολείστε με την ανάπτυξη εφαρμογών για κινητά, πιθανότατα έχετε συνειδητοποιήσει ότι η ρύθμιση μιας έκδοσης δεν είναι απλώς θέμα πατήματος του κουμπιού εκτέλεσης. Το σύστημα έκδοσης Android είναι η μηχανή που λαμβάνει όλο τον κώδικα και τους πόρους σας και τους μετατρέπει σε ένα αρχείο APK ή ένα Android App Bundle (AAB), τα οποία είναι τα πακέτα που τελικά φτάνουν στις συσκευές των χρηστών.
Για να λειτουργήσουν όλα αυτά ομαλά, το Android Studio βασίζεται στο Gradle και το ειδικό πρόσθετο του , επιτρέποντάς μας να προσαρμόσουμε τα πάντα, από την υπογραφή της εφαρμογής έως τις εκδόσεις του λειτουργικού συστήματος που θα υποστηρίξουμε. Δεν είναι εύκολο στην αρχή, αλλά μόλις μάθετε πώς να οργανώνετε τις παραλλαγές και τις εξαρτήσεις σας, μπορείτε να κυκλοφορήσετε δωρεάν, επί πληρωμή ή δοκιμαστικές εκδόσεις χωρίς να χρειάζεται να αντιγράψετε το έργο σας.
Η καρδιά της κατασκευής: Το Gradle και τα αρχεία του
Για να διαχειριστούμε τη διαδικασία δημιουργίας, πρέπει να αλληλεπιδράσουμε με διάφορα αρχεία κειμένου που χρησιμοποιούν γλώσσες προγραμματισμού όπως Kotlin DSL ή Groovy. Πρώτον, έχουμε το Gradle Wrapper (gradlew) , το οποίο είναι φανταστικό επειδή διασφαλίζει ότι ολόκληρη η ομάδα χρησιμοποιεί την ίδια έκδοση του Gradle, αποτρέποντας το τυπικό σενάριο "λειτουργεί στο μηχάνημά μου".
Στη ρίζα του έργου, βρίσκουμε το αρχείο settings.gradle.kts , όπου λέμε στο Gradle ποιες ενότητες αποτελούν μέρος της εφαρμογής και ρυθμίζουμε τα αποθετήρια. Στη συνέχεια, υπάρχει το αρχείο build.gradle ανώτατου επιπέδου , το οποίο ορίζει τις εκδόσεις πρόσθετων που θα κοινοποιούνται σε όλες τις ενότητες. Αλλά το πραγματικό κόσμημα είναι το αρχείο build.gradle σε επίπεδο ενότητας , όπου ρυθμίζουμε τις λεπτομέρειες που αφορούν συγκεκριμένα την εφαρμογή, όπως το SDK και τις εξαρτήσεις.
Κατανόηση του Android SDK
Η διαμόρφωση του SDK είναι ζωτικής σημασίας για να αποτρέψετε την εμφάνιση σφάλματος στην εφαρμογή σας σε παλαιότερες συσκευές ή την απαρχαίωσή της. Το compileSdk καθορίζει ποια API Android είναι διαθέσιμα κατά τη σύνταξη κώδικα. Ιδανικά, θα πρέπει πάντα να χρησιμοποιείτε την πιο πρόσφατη έκδοση για να αξιοποιήσετε τις νεότερες δυνατότητες. Από την άλλη πλευρά, το minSdk είναι η κόκκινη γραμμή: οποιαδήποτε συσκευή με έκδοση παλαιότερη από αυτήν δεν θα μπορεί να εγκαταστήσει την εφαρμογή.
Δεν μπορούμε να ξεχνάμε το targetSdk , το οποίο ουσιαστικά λέει στο λειτουργικό σύστημα ότι έχουμε ήδη δοκιμάσει την εφαρμογή σε αυτήν τη συγκεκριμένη έκδοση. Εάν η συσκευή διαθέτει νεότερη έκδοση Android από την έκδοση-στόχο μας, το σύστημα θα ενεργοποιήσει μια λειτουργία συμβατότητας για να αποτρέψει την ακανόνιστη συμπεριφορά της εφαρμογής.
Παραλλαγές προϊόντος και τύποι κατασκευής
Εδώ είναι που τα πράγματα γίνονται ενδιαφέροντα. Τύποι κατασκευής Χρησιμεύουν για τη διαφοροποίηση των σταδίων ανάπτυξης. Από προεπιλογή έχουμε debugτο οποίο επιτρέπει τον εντοπισμό σφαλμάτων και χρησιμοποιεί ένα γενικό κλειδί, και release, η οποία είναι η βελτιστοποιημένη, κρυμμένη και υπογεγραμμένη έκδοση για το κοινό.
Αν θέλετε να ξεκινήσετε μια έκδοση "Lite" και μια έκδοση "Pro", πρέπει να χρησιμοποιήσετε το Γεύσεις προϊόντωνΑυτά επιτρέπουν την επαναχρησιμοποίηση κοινού κώδικα αλλά την αλλαγή πόρων ή λειτουργιών ανάλογα με την έκδοση. Όταν συνδυάζουμε έναν τύπο κατασκευής με μια παραλλαγή προϊόντος, λαμβάνουμε ένα παραλλαγή συλλογής (για παράδειγμα, demoDebugΓια να το διαχειριστούμε αυτό, χρησιμοποιούμε διαστάσεις παραλλαγώνπου σας επιτρέπουν να ομαδοποιείτε διαφορετικές γεύσεις από την εφαρμογή και να τις συνδυάζετε.
Διαχείριση αναγνωριστικών και χώρου ονομάτων
El εφαρμογήId Αυτό είναι το αναγνωριστικό της εφαρμογής σας στο Google Play. Εάν το αλλάξετε μετά τη δημοσίευση, το κατάστημα θα θεωρήσει ότι είναι μια εντελώς νέα εφαρμογή. Είναι δυνατό να το χρησιμοποιήσετε applicationIdSuffix έτσι ώστε η έκδοση εντοπισμού σφαλμάτων να έχει διαφορετικό αναγνωριστικό και να μπορεί να εγκατασταθεί και οι δύο εκδόσεις στο ίδιο κινητό τηλέφωνο χωρίς να συγκρουστούν.
Ο χώρος ονομάτων , από την άλλη πλευρά, ορίζει το πακέτο όπου δημιουργούνται οι κλάσεις R και BuildConfig. Παρόλο που συνιστάται ο χώρος ονομάτων και το applicationId να είναι τα ίδια για να αποφευχθούν επιπλοκές, είναι δυνατό να τα διαχωρίσετε εάν χρειάζεται να αναδιοργανώσετε τον πηγαίο κώδικα χωρίς να αλλάξετε την ταυτότητα της εφαρμογής στο κατάστημα.
Υπογραφή και διαμόρφωση ασφαλείας
Μια εφαρμογή έκδοσης δεν μπορεί να διανεμηθεί εάν δεν είναι υπογεγραμμένη. Για αυτό, χρειαζόμαστε ένα χώρο αποθήκευσης κλειδιών και ένα ιδιωτικό κλειδί. Είναι σημαντικό να μην γράφετε τους κωδικούς πρόσβασης απευθείας στο αρχείο Gradle. Η καλύτερη πρακτική είναι να τους φορτώνετε από μεταβλητές περιβάλλοντος ή από ένα τοπικό αρχείο ιδιοτήτων που δεν έχει μεταφορτωθεί στον έλεγχο έκδοσης.
Βελτιστοποίηση απόδοσης IDE
Το Android Studio μπορεί να καταναλώνει πολύ RAM. Για να το αποτρέψετε αυτό, μπορείτε να επεξεργαστείτε το αρχείο studio.vmoptions και να αυξήσετε το μέγιστο μέγεθος σωρού (Xmx). Εάν ο υπολογιστής σας λειτουργεί με χαμηλούς πόρους, είναι καλύτερο να ενεργοποιήσετε τη Λειτουργία εξοικονόμησης ενέργειας , να απενεργοποιήσετε τους περιττούς ελέγχους lint και, πάνω απ 'όλα, να κάνετε εντοπισμό σφαλμάτων σε μια φυσική συσκευή αντί να χρησιμοποιήσετε τον εξομοιωτή.
Στα Windows, το λογισμικό προστασίας από ιούς μπορεί να επιβραδύνει τη διαδικασία δημιουργίας σαρώνοντας κάθε αρχείο που δημιουργεί το Gradle. Η λύση είναι να εξαιρεθούν οι φάκελοι Gradle , το Android SDK και τα έργα από τη σάρωση σε πραγματικό χρόνο για να επιτευχθεί σημαντική αύξηση της ταχύτητας.
Χρήση του BuildConfig και των εγγενών βιβλιοθηκών
Τάξη BuildConfig Είναι ένα απαραίτητο εργαλείο που δημιουργεί αυτόματα το Gradle. Μας ενημερώνει εάν βρισκόμαστε σε λειτουργία DEBUG o RELEASE μέσω κώδικα, κάτι που είναι ιδανικό για απόκρυψη αρχείων καταγραφής στην παραγωγή ή αλλάξτε τη διεύθυνση URL του διακομιστή μεταξύ του περιβάλλοντος ανάπτυξης και του ζωντανού περιβάλλοντος.
Για όσους χρειάζονται ακατέργαστη ισχύ, το Android Studio επιτρέπει την ενσωμάτωση C++ χρησιμοποιώντας CMake ή ndk-buildΜπορούμε να συνδέσουμε εξωτερικά έργα και να ελέγξουμε τι. ABI (δυαδικές διεπαφές)Θέλουμε να συσκευάσουμε χρησιμοποιώντας abiFiltersαποτρέποντας το υπερβολικά μεγάλο μέγεθος του τελικού αρχείου συμπεριλαμβάνοντας αρχιτεκτονικές που δεν χρειαζόμαστε.
Οργάνωση συνόλων πηγαίου κώδικα
Το Gradle οργανώνει τον κώδικα σε σύνολα προέλευσηςΟ κατάλογος src/main/ Περιέχει ό,τι είναι κοινόχρηστο από όλους, αλλά μπορούμε να δημιουργήσουμε φακέλους όπως src/debug/ o src/full/ για να εισαγάγετε κώδικα που υπάρχει μόνο σε αυτήν την έκδοση. Υπάρχει ένα ιεραρχία προτεραιοτήτων: τα αρχεία στην παραλλαγή δημιουργίας έχουν προτεραιότητα έναντι εκείνων του τύπου δημιουργίας και αυτά έναντι εκείνων της παραλλαγής προϊόντος και του κύριου κώδικα.
Μέσω ολόκληρου αυτού του οικοσυστήματος αρχείων διαμόρφωσης, διαχείρισης μνήμης και τεμαχισμού εκδόσεων, είναι δυνατό να μετατραπεί ένα απλό έργο σε μια επαγγελματική υποδομή ικανή να κλιμακωθεί και να προσαρμοστεί σε οποιαδήποτε συσκευή Android, διασφαλίζοντας ότι η διαδικασία συσκευασίας είναι αποτελεσματική και η διανομή στο κατάστημα ασφαλής.




