.

Τι είναι το boot animation και πώς φτιάχνουμε το δικό μας;


 

Μετά από λαϊκή απαίτηση σήμερα θα πούμε μερικά πράγματα για το boot animation και τον τρόπο για να κατασκευάσουμε το δικό μας για τη ROM μας!

Τι είναι το boot animation;
Το λέει και η λέξη. Είναι η κινούμενη εικόνα (animation) που βλέπουμε κατά την εκκίνηση (boot) της συσκευής μας. Κάθε ROM και κάθε κατασκευαστής έχει τη δική του καθώς πρόκειται κυρίως για θέμα πρεστίζ αλλά και για να μας διασκεδάσει με κάτι ευχάριστο όσο περιμένουμε να εκκινήσει το κινητό μας.

Όλοι έχουμε δει .gif αρχεία κάποια στιγμή στη ζωή μας, σωστά; Η διαφορά του .gif με το boot animation είναι ότι το πρώτο μας παρουσιάζει επαναλαμβανόμενα (σε loop) όλες τις εικόνες με τη σειρά. Το boot animation από την άλλη έχει την ιδιότητα να μας δείχνει ένα μέρος μόνο μια φορά και ένα άλλο μέρος σε loop. Στην πραγματικότητα δε συγκρίνονται μεταξύ τους καθώς είναι δύο εντελώς διαφορετικά πράγματα (το gif είναι αρχείο εικόνας ενώ το boot animation μία διαδικασία), αλλά δε γίνεται να το πούμε πιο απλά.

Ας πάρουμε για παράδειγμα αυτό της CyanogenMod 10:


Στο βίντεο βλέπουμε τον κύκλο που περιστρέφεται να εμφανίζεται σιγά σιγά, ακολουθεί το logo της CM10 με τον ίδιο τρόπο και όλο μαζί επαναλαμβάνεται μέχρι το τέλος. Ένα μέρος δηλαδή της εικόνας εμφανίζεται μόνο μια φορά και ένα άλλο επαναλαμβάνεται μέχρι να εκκινήσει το Android. Το μυστικό κρύβεται στο "bootanimation.zip" το οποίο θα βρούμε στη διαδρομή "system/media". Αν το ανοίξουμε θα δούμε μέσα δύο φακέλους. Στον πρώτο ("part0") περιέχονται οι εικόνες που εμφανίζονται μόνο μια φορά, ενώ στον δεύτερο ("part1") οι εικόνες που επαναλαμβάνονται. Ιδιαίτερη σημασία έχει και το αρχείο "desc.txt" το οποίο δίνει οδηγίες στο σύστημα για να παρουσιάσει με σωστή σειρά τα περιεχόμενα των φακέλων.


Πώς φτιάχνουμε το δικό μας;
Πρώτα από όλα πρέπει να αποφασίσουμε αν θέλουμε κάτι σαν του Cyanogen ή ένα σκέτο loop. Σε όποιο από τα δύο και να καταλήξουμε, το επόμενο βήμα είναι να φτιάξουμε τις εικόνες μας οι οποίες πρέπει να έχουν οπωσδήποτε ίδια ή μικρότερη ανάλυση με αυτή της οθόνης της συσκευής μας, ο τύπος τους να είναι .png ή .jpg και η ονομασία τους με αριθμητική ακολουθία (π.χ. 101.png, 102.png, 103.png κ.ο.κ.).

Αν φτιάχνουμε ένα σύνθετο boot animation, όπως αυτό του Cyanogen, δημιουργούμε το φάκελο "part0" και τοποθετούμε εκεί το πρώτο μέρος των εικόνων μας, δηλαδή αυτό που θέλουμε να εμφανιστεί μόνο μια φορά. Το δεύτερο μέρος το οποίο θέλουμε να επαναλαμβάνεται, το τοποθετούμε στο φάκελο "part1" με τον ίδιο τρόπο.


Σειρά έχει τώρα το αρχείο εντολών που είπαμε προηγουμένως, το "desc.txt". Αν το ανοίξετε, θα δείτε ότι έχει την εξής μορφή:

480 800 30
p 1 0 part0
p 0 0 part1

  • Στην πρώτη γραμμή: Το 480 και το 800 είναι οι διαστάσεις των εικόνων και κατ' επέκταση της ανάλυσης οθόνης της συσκευής (480x800p), ενώ το 30 είναι η ταχύτητα εμφάνισής τους (30 fps).
  • Στη δεύτερη γραμμή: Το part0 σημαίνει ότι αναφερόμαστε στο φάκελο "part0", Το 1 σημαίνει ότι οι εικόνες που περιέχονται σε αυτόν θα εμφανιστούν μία φορά, ενώ το 0 σημαίνει ότι οι εικόνες του επόμενου φακέλου θέλουμε να εμφανιστούν άμεσα, χωρίς καθυστέρηση.
  • Στην τρίτη γραμμή: Αναφερόμαστε φυσικά στο φάκελο "part1" και το πρώτο 0 σημαίνει ότι οι εικόνες του φακέλου θα προβάλλονται συνεχώς (0 = άπειρο), ενώ το δεύτερο 0 σημαίνει ότι όταν τελειώνει η προβολή των εικόνων, να ξαναρχίζει άμεσα, χωρίς καθυστέρηση.

Προσοχή: Σιγουρευτείτε ότι έχετε αφήσει μία κενή γραμμή κάτω από τη τελευταία στο "desc.txt"! Δυστυχώς δε γνωρίζω το λόγο.

Το μόνο που μένει είναι να συμπιέσουμε τους φακέλους και το αρχείο στο "bootanimation.zip". Κατά τη συμπίεση επιλέξτε το "Επίπεδο συμπίεσης: Αποθήκευση", αλλιώς δε θα δουλέψει, ενώ αν επιχειρείτε τη διαδικασία σε Windows υπολογιστή, ανοίξτε το zip και σβήστε από μέσα τα αρχεία "Thumb.db" που δημιουργήθηκαν.

Αυτό ήταν!

Αποθηκεύστε το "bootanimation.zip" στη διαδρομή "/system/media" της ROM σας και είσαστε έτοιμοι να το απολαύσετε στην επόμενη εκκίνηση!

 
© 2012-2015 Dr. Android | Original theme design by Main-Blogger - Blogger Template and Blogging Stuff | Material design by Chris K.