Εάν είστε ένας ανεμιστήρας σκληρού Android, οι πιθανότητες είναιισχυρή ότι θα δοκιμάσετε ανυπόμονα νέα θέματα, προσαρμοσμένες ROM και όλα αυτά τα mods για τη συσκευή σας. Ένα από τα κύρια σημεία σύγχυσης είναι η ορολογία που συνδέεται με αυτά τα mods - κάτι πολύ οικείο για τους προγραμματιστές, αλλά όχι πολύ για τον αρχάριο χρήστη. Δύο από τις συνηθέστερες λέξεις σε προσαρμοσμένες ROM και θέματα είναι «deodexed» και «zipalign». Λίγα μέρες πριν, καλύψαμε λεπτομερώς το "deodexed". Σε αυτό το άρθρο, θα διερευνήσουμε τι σημαίνει zipalign και πώς μπορούν να προσαρμοστούν τα APKs.

ΤΙ ΕΙΝΑΙ ΤΟ ΖΑΧΑΡΙ;
Το zipalign είναι ένα εργαλείο ευθυγράμμισης αρχειοθετημένουπρώτη φορά με 1.6 Android SDK (κιτ ανάπτυξης λογισμικού). Βελτιστοποιεί τον τρόπο συσκευασίας ενός πακέτου εφαρμογής Android (APK). Με αυτόν τον τρόπο, το λειτουργικό σύστημα Android μπορεί να αλληλεπιδράσει αποτελεσματικότερα με την εφαρμογή και ως εκ τούτου έχει τη δυνατότητα να κάνει την εφαρμογή και συνολικά όλο το σύστημα πολύ πιο γρήγορα. Ο χρόνος εκτέλεσης ελαχιστοποιείται για τις εφαρμογές με ζελιδοποίηση, με αποτέλεσμα τη μικρότερη κατανάλωση RAM κατά την εκτέλεση του APK.
ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ ΑΚΡΙΒΩΣ;
Σε ένα λειτουργικό περιβάλλον Android, αρχεία δεδομένωναποθηκεύονται σε κάθε πακέτο εφαρμογών προσπελάζονται από πολλαπλές διεργασίες, για παράδειγμα, το πρόγραμμα εγκατάστασης θα διαβάσει το δηλωτικό δεδομένων για να καθορίσει τα σχετικά δικαιώματα. ο διακομιστής συστήματος μπορεί να διαβάσει αυτούς τους πόρους για πολλούς λόγους, όπως την εμφάνιση ειδοποιήσεων. η εφαρμογή Home, για παράδειγμα, θα διαβάσει τους πόρους για να πάρει το όνομα και το εικονίδιο της εφαρμογής. Δεδομένου ότι το Android βασίζεται σε μια πραγματικά λειτουργική υποδομή πολλαπλών λειτουργιών, αυτά τα αρχεία προσπελάζονται συνεχώς και επανειλημμένα. Τέλος, αλλά εξίσου σημαντικό, η ίδια η εφαρμογή διαβάζει τα δηλωμένα δεδομένα.
Δεδομένου ότι το Android βασίζεται στο Linux, η χαρτογράφηση μνήμης παίζει αβασικό ρόλο στην αποτελεσματική διαχείριση των διαδικασιών. Ουσιαστικά, η βέλτιστη ευθυγράμμιση για τον κώδικα χειρισμού πόρων του Android OS είναι 4-byte όρια. Αυτό σημαίνει ότι εάν τα APK χαρτογραφήσουν σε όρια 4 byte και ευθυγραμμιστούν ανάλογα, το λειτουργικό σύστημα δεν θα χρειαστεί να «διαβάσει» ολόκληρο το πακέτο εφαρμογών για να φτάσει στο επιθυμητό δελτίο δεδομένων. Κάθε διαδικασία συστήματος θα γνωρίζει εκ των προτέρων πού να ψάξει για τους επιθυμητούς πόρους και ως εκ τούτου θα εκτελέσει πολύ πιο ομαλή και ταχύτερη.
Συμπληρώνοντας το, ο συνδυασμός ενός APK σε όλαμη συμπιεσμένα δεδομένα εντός της συσκευασίας που ευθυγραμμίζονται σε όρια 4 byte, επιτρέποντας σε όλα τα τμήματα να έχουν πρόσβαση απευθείας στον χάρτη μνήμης. Η κατανάλωση μνήμης RAM μειώνεται κατά την εκτέλεση, επειδή ο κωδικός ερωτήματος δεν χρειάζεται να διαβάσει ολόκληρο το πακέτο εφαρμογής.
ΑΝΕΠΙΘΥΜΗΤΕΣ ΑΠΑΓΟΡΕΥΜΕΝΩΝ APK
Πολύ κατανοητό, η κατάσταση θα διατηρηθείγια πακέτα εφαρμογών χωρίς ευθυγράμμιση. Η ανάγνωση πόρων θα ήταν αργή και η χρήση μνήμης θα ήταν στο υψηλότερο άκρο του φάσματος. Θα εξαρτηθεί επίσης από τον αριθμό των εφαρμογών που δεν έχουν ευθυγραμμιστεί. Για παράδειγμα, αν υπάρχει λιγότερος αριθμός εφαρμογών με μια μη ευθυγραμμισμένη εφαρμογή στο σπίτι, θα παρατηρήσατε βραδύτερους χρόνους έναρξης της εφαρμογής. Αυτό είναι το καλύτερο σενάριο. Για ένα σενάριο χειρότερης περίπτωσης, ο αριθμός των εφαρμογών που δεν έχουν ευθυγραμμιστεί, θα έχει ως αποτέλεσμα το σύστημα να αρχίζει και να καταστρέφει επανειλημμένα τις διαδικασίες, αντιμετωπίζοντας προβλήματα υγρασίας και τεράστια αποστράγγιση της μπαταρίας.
ΠΩΣ ΜΠΟΡΕΙΤΕ ΝΑ ΚΑΝΕΤΕ;
Όπως προαναφέρθηκε, το εργαλείο zipalign έγινε μέρος του Android SDK από το 1.6 και μετά. Μπορεί να βρεθεί στο φάκελο "εργαλεία" του SDK. Για να το χρησιμοποιήσετε, απλώς εκτελέστε την εντολή:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
που infile.apk είναι το αρχείο προέλευσης και outfile.apk είναι το αρχείο εξόδου.
Επιπλέον, μπορείτε επίσης να επαληθεύσετε την ευθυγράμμιση ενός αρχείου APK χρησιμοποιώντας την ακόλουθη εντολή:
zipalign -c -v <alignment> existing.apk
που existing.apk μπορεί να είναι οποιοδήποτε πακέτο εφαρμογής που πρέπει να επαληθεύσετε. Επίσης το <ευθυγράμμιση> η ετικέτα και στις δύο εντολές πρέπει να είναι ενσωματωμένη(διαφορετικά η εντολή θα επιστρέψει μη έγκυρη). Αυτή η τιμή, αν και μπορεί να είναι οποιοσδήποτε ακέραιος, ΠΡΕΠΕΙ πάντα να είναι 4, η οποία θα παρέχει ευθυγράμμιση 32-bit. Οποιαδήποτε άλλη αξία και πραγματικά δεν θα κάνει τίποτα.
Τέλος, για τις σημαίες που χρησιμοποιούνται σε αυτές τις εντολές,
- -φά : αντικαθιστά το υπάρχον outfile.zip
- -v : θα παράσχει λεπτομερή απόδοση
- -ντο : θα επιβεβαιώσει την ευθυγράμμιση ενός συγκεκριμένου αρχείου
ΛΟΓΟΣ ΠΡΟΣΟΧΗΣ: η λειτουργία zipalign πρέπει να εκτελείται μόνο μετά έχετε υπογράψει το αρχείο APK με το ιδιωτικό σαςκλειδί. Αν είναι ευθυγραμμισμένο πριν από την υπογραφή, η διαδικασία υπογραφής θα διαταράξει την ευθυγράμμιση. Το ίδιο ισχύει και για οποιαδήποτε άλλη τροποποίηση, προσθήκη ή αφαίρεση στο αρχείο APK. Οποιαδήποτε αλλαγή μετά την εκτέλεση του zipalign θα ακυρώσει την ευθυγράμμιση.
Αποποίηση ευθυνών: Αυτός ο οδηγός προορίζεται μόνο για εκπαιδευτικούς σκοπούς. Αυτό σε καμία περίπτωση δεν αντικαθιστά το κιτ εργαλείων για προγραμματιστές Android, ούτε προορίζεται να χρησιμοποιηθεί για αναπτυξιακούς σκοπούς. Το AddictiveTips δεν παρέχει καμία υποστήριξη σχετικά με το υλικό που παρουσιάζεται εδώ.
Σχόλια