Παρασκευή, 14 Σεπτεμβρίου 2012

Δημιουργούμε .odex αρχεία και κάνουμε τη συσκευή μας ταχύτερη


Ένα από τα πλεονεκτήματα των επίσημων ROM και ειδικά αυτών της HTC είναι τα αρχεία .odex τα οποία συνοδεύουν τις εφαρμογές συστήματος. Είναι ένα είδος προσωρινής μνήμης της κάθε εφαρμογής η οποία της επιτρέπει να ανοίγει γρηγορότερα και έτσι να καταναλώνει λιγότερους πόρους, άρα και μπαταρία. Οι περισσότερες custom ROM δε διαθέτουν τέτοιου είδους αρχεία (είναι deodexed δηλαδή), υπάρχουν όμως διάφοροι τρόποι για να τα δημιουργήσουμε σε οποιαδήποτε ROM δεν τα περιέχει και σήμερα θα δούμε τον ευκολότερο.

Λίγα λόγια για τα .odex αρχεία
Στα .odex λοιπόν αποθηκεύεται ένα μέρος δεδομένων που έχουν να κάνουν με τη δομή της αντίστοιχης εφαρμογής (.apk) με την οποία είναι "δεμένα". Αυτά τα δεδομένα βοηθούν τη Dalvik VM στην οποία τρέχουν οι εφαρμογές, να μην ψάχνει κάθε φορά μέσα στο .apk για πληροφορίες. Για να δώσω ένα παράδειγμα είναι σα να εγκαθιστούμε μία εφαρμογή στον υπολογιστή μας και να τοποθετούμε για αυτή μια συντόμευση στην επιφάνεια εργασίας. Έτσι μπορούμε να την ανοίγουμε γρηγορότερα ενώ θα έπρεπε κανονικά να πάμε "Έναρξη > Όλα τα προγράμματα > Φάκελος εφαρμογής > Εκτελέσιμο εφαρμογής" (δεν είναι ακριβώς αυτό αλλά το περιγράφει πολύ καλά).

Έτσι η συσκευή μας, όταν πατάμε να ανοίξουμε μια εφαρμογή, ψάχνει πρώτα στο .odex και βρίσκει άμεσα τη δομή της εφαρμογής, ενώ μετά ψάχνει στο .apk για να ενεργοποιήσει τις υπόλοιπες υπηρεσίες που μπορεί να μας παρέχει. Έτσι εκκινούν γρηγορότερα οι εφαρμογές μας και καταναλώνεται λιγότερη μπαταρία.

Ερχόμαστε λοιπόν στο μεγάλο ερώτημα: "Γιατί όλες οι ROM είναι deodexed;". Για δύο λόγους:
  1. Γιατί όταν κάποιος κατασκευάζει μία ROM, δε θέλει απλά να προσθέσει και να αφαιρέσει εφαρμογές αλλά να αλλάξει τη δομή της για να μπορέσει να προσθέσει τα χρώματα που θέλει στο μενού, τα quick toggles στη statusbar και άλλα πολλά. Επειδή λοιπόν τα .odex περιέχουν δεδομένα δομής των εφαρμογών συστήματος, είναι δυσκολότερο να κάνουμε theming σε μια ROM για αυτό και τα διαγράφουμε.
  2. Για εξοικονόμηση χώρου και απόδοση της ROM σε μικρότερο μέγεθος.

Ασχέτως αν είμαστε ROM developer, θα θέλαμε αυτή που έχουμε στη συσκευή μας να περιέχει .odex αρχεία. Ο τρόπος είναι πολύ απλός και προϋποθέτει να έχουμε απλά μία rooted Android συσκευή και την εφαρμογή Odex Me, ενώ εναλλακτικά μπορούμε να χρησιμοποιήσουμε και το SytemCleanUp που είδαμε παλαιότερα.

Η διαδικασία
Ακολουθείτε τη διαδικασία με δική σας ευθύνη.



  1. Κατεβάζουμε την εφαρμογή από το νήμα της στο XDA καθώς δεν υπάρχει ακόμα στο Google Play.
  2. Την εγκαθιστούμε κανονικά στη συσκευή μας αφού ενεργοποιήσουμε τις "Άγνωστε Πηγές" στις ρυθμίσεις.
  3. Αφού την ανοίξουμε θα μας ζητήσει δικαιώματα superuser και θα μας εμφανίσει ένα παράθυρο στο οποίο μας λέει αν θέλουμε να δημιουργήσουμε τα .odex αρχεία και απαντάμε με το "Yes".
  4. Η συσκευή θα επανεκκινήσει και θα μας εμφανίσει την πληροφορία "Το Android αναβαθμίζεται" (ή κάτι παρόμοιο), το οποίο σημαίνει οτι ανακατασκευάζει τη Dalvik cache.
  5. Μόλις δούμε τη lockscreen, η διαδικασία έχει τελειώσει.


Θα δείτε πως οι εφαρμογές συστήματος όπως οι "Κλήσεις" και τα "Μηνύματα" ανοίγουν πλέον γρηγορότερα. Μπορούμε να επιβεβαιώσουμε οτι η διαδικασία λειτούργησε, πηγαίνοντας με τον File Explorer μας στη διαδρομή "/system/app" στην οποία θα δούμε οτι για κάθε αρχείο .apk υπάρχει πλέον και ένα ομώνυμο αρχείο .odex.

Δοκιμάστε το και πείτε μας τη γνώμη σας ανάλογα με τη συσκευή που διαθέτετε.

22 στο: "Δημιουργούμε .odex αρχεία και κάνουμε τη συσκευή μας ταχύτερη"
  1. υπεροχα αρθρα...! οσο το δυνατον πιο απλα και κατανοητα...! πολυ καλη δουλεια μπραβο σου....! στο συγκεκριμενο ας αναφερουμε πως ενα namdroid backup πριν θεωρειται δεδομενο....!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Να 'σαι καλά Δημήτρη για το feedback.

      Είναι δεδομένο οτι κάνουμε nandroid backup πριν πειράξουμε με οποιοδήποτε τρόπο το σύστημα, αλλά καλά κάνεις και το τονίζεις.

      Διαγραφή
  2. 2.Για εξοικονόμηση χώρου και απόδοση της ROM σε μικρότερο μέγεθος, μας επηρεάζει καθόλου??
    Σε περίπτωση που θέλουμε να το απεγκαταστήσουμε μόνο με recovery backup?

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Μπορείς να εκμεταλλευτείς το χώρο που εξοικονομείται μεταφέροντας εφαρμογές εκεί πέρα.

      Σε περίπτωση που θέλεις να το ακυρώσεις, κανείς είτε restore από ένα backup είτε κάνεις deodex με διαφορά σκριπτάκια που κυκλοφορούν στο Internet.

      Διαγραφή
    2. Ξέχασα να πω ότι μπορείς να σβήσεις τα odex με το χέρι φυσικά.

      Διαγραφή
  3. να σαι καλα..!
    εχω το arc s στο οποιο εχω φορεσει ενα καρο εφαρμογες απο το xperia S,αν
    ακολουθησω τον οδηγο θα εχω καμποιο μελλοντικο προβλημα στην εγκατασταση και αλλων modded εφαρμογων στο μελλον...; θα ηθελα να ρωτησω αν υσχιει και το ιδιο για το sumpercharged v6. θα εχω καποιο προβλημα λογο ασυμβατοτητας...;

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Με το odex δεν θα έχεις πρόβλημα. Το supercharger είναι πιο μπελαλίδικο.

      Διαγραφή
    2. Πάντως σε εμένα το supercharger κάνει καλή δουλειά!μια φορά έφαγα μόνο ένα crash στον launcer!

      Υ.Γ. Thnx για τις απαντήσεις dr!στο πάνω post!

      Διαγραφή
    3. Να είσαι καλά Κώστα.

      (Διέγραψα ένα σχόλιό σου κατά λάθος, αν θέλεις ξαναγράψτο)

      Διαγραφή
  4. ακολουθησα τα βηματα ολοσωστα..αλλα τιποτα εκανε ενα κανονικο rebooτ χωρις να αλλαξει καατι... ¨/

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Όπως βλέπεις στις εικόνες, στην δική μου stock ROM λειτούργησε κανονικά.

      Διαγραφή
  5. Και εγω ακολουθησα τον οδηγο , εκανε την επανεκκίνηση αλλα δεν ειδα καμια διαφορά..και το επιβεβαίωσα πηγαίνοντας στο /system/app , όπoυ δεν υπήρχαν αρχεία με καταληξη odex.
    Πριν απο μερες ειχα βαλει το supercharger να κανει δουλιτσα (και τα πηγε μια χαρα)! Εχουν καμια ασυμβατοτητα αυτα τα δυο μήπως?
    xperia ray

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Φίλε αν και δεν είμαι μεγάλος γνώστης!Για ασυμβατότητα δεν νομίζω να υπάρχει κάποιο θέμα καθώς τα έχω και τα 2 στην συσκευή μου (Nexus s 4.1.1. με την rom το Dr.android.) Τώρα για κάτι άλλο δεν είμαι σίγουρος, φαντάζομαι πως θα έχεις deodex Rom,αλλά μήπως έχεις custom που είναι odex!Δεν μπορώ να σε βοηθήσω σε κάτι άλλο!

      Φιλικά πάντα!

      Διαγραφή
  6. Και σε εμένα απλό reboot έκανε και με τον file explorer δεν δείχνει κάτι .

    Xperia Neo-V rooted με Ιce Bean 4.2

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δοκίμασε αν θέλεις το SystemCleanUp:

      http://www.doctorandroid.gr/2012/06/systemcleanup-rom-android.html

      Διαγραφή
  7. Αρχειο .odex σε μια εφαρμογη .apk πως δημιουργείται; Η rom που εχω, εχει αρχεια .odex!Θελω να περασω μεσα στην rom αρχεια .apk και θελω να δημιουργισω αρχεια .odex. Με την πιο πανω εφαρμογη το κινητο ειχε κολλησει στο logo και ξαναπερασα την rom!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δοκίμασε αυτό:

      http://forum.xda-developers.com/showthread.php?t=1476617

      Διαγραφή
    2. Ευχαριστω! Δυστηχως ουτε αυτο δουλεψε!Οταν παω να το φλασαρω μου το ακυρωνει!

      Διαγραφή
  8. εχω το arc s με cm 10.2 και κατεβασα την εφαρμογη το εκανα και μολις ανοιγει κολλαει εκει και δεν ανοιγει καποια βοηθεια;

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δεν είναι ιδιαίτερα σταθερή να λέμε την αλήθεια. Δοκίμασες μήπως το SytemCleanUp που αναφέρεται σε ένα από τα link;

      Διαγραφή
  9. με το systemcleanup κανω χειροκινιτα της εφαρμογες που θελω odex ετσι;

    ΑπάντησηΔιαγραφή