Upiększamy start Androida - bootanimation

Ostatnio natchnęło mnie do usunięcia simlocka a tym samym po drodze zrootowaniu telefonu to postanowiłem zagłębić się w animacje, które widzimy przy starcie telefonu.

Poszukałem informacji i generalnie jest z tym bałagan w Polskiej przestrzeni i często jest się odsyłanym do miejsc anglojęzycznych a tam - jak zauważyłem nie każdy sobie radzi.

Generalnie operacja ta jest bardzo prosta, potrzebujemy stworzyć plik bootanimation.zip.
Do tej zmiany potrzebny będzie root - inaczej tego nie wykonamy (chyba, że któreś telefony posiadają w oprogramowaniu możliwość wskazania innego pliku).

Poszukujemy lokalizacji pliku z animacją

W moim przypadku (czyli Cyanogenmod) plik ten znajduje się w katalogu /system/media ale w zależności od systemu może być gdzieś indziej, czyli do przeszukania mamy katalogi:


  • /system/media
  • /data/local
  • /system/customize/resource (to dla HTC Sense)

a jeżeli nie znajdziemy to szukamy poprostu tego pliku w telefonie.

Opis pliku bootanimation.zip

Plik bootanimation.zip to zwykły plik zip o zerowej kompresji (opcja zachowaj lub store w zależności od wersji językowej aplikacji do kompresji). W pliku znajdziemy następujące pliki/katalogi (mogą się różnić katalogi):


  • desc.txt
  • part0
  • part1

part0 i part1 (czasami można spotkać tylko part0) to katalogi zawierające pliki z której składana jest animacja, czyli:

part0


  • cm_001.jpg
  • cm_002.jpg
  • cm_003.jpg
  • cm_004.jpg

part1


  • cm_005.jpg
  • cm_006.jpg
  • cm_007.jpg
  • cm_008.jpg
  • cm_009.jpg
  • cm_010.jpg

mniej więcej tak wygląda rozkład katalogów i plików.
To co jest w katalogu part0 musi zaczynać się numerowanie i w katalogu part1 numerowanie powinno być kontynuowane tak jak w part0.
Ważne aby część bez numeracji nazywała się tak samo czyli np cm_ i kolejny numer.

Czas na plik desc.txt, powinien on zawierać:
480 800 25
p 1 0 part0
p 0 0 part1

gdzie:

480 to szerokość klatki (szerokość obrazu)
800 to wysokość klatki (wysokość obrazu)
25 to ilość klatek na sekundę

Rozdzielczość może być oczywiście inna ale trzeba brać pod uwagę możliwości naszego smartfona ponieważ inaczej może animacja się nie uruchomić.

p - określa początek wpisu pierwszej animacji
1 - oznacza ile razy animacja ma się zapętlić (w tym przypadku raz)
0 - oznacza czas pauzy po zakończeniu odtwarzania (maksymalnie 10, 0 jest dla braku pauzy)
part0 - nazwa katalogu gdzie znajdują się obrazki dla pierwszej części animacji

p - określa początek wpisu drugiej animacji
0 - określa w tym przypadku ilość zapętleń animacji - tutaj nieskończoność, czyli do czasu uruchomienia systemu
0 - czas pauzy po każdym przebiegu animacji
part1 - nazwa katalogu gdzie znajdują się obrazki dla drugiej części animacji

Dozwolone typy obrazów

Dozwolone pliki to JPG i PNG (możliwe, że inne ale nie znalazłem na to odpowiedzi).
Dużo animacji zawiera w sobie głównie pliki JPG chociaż gdzieniegdzie piszą aby stosować pliki PNG dla uzyskania najlepszej jakości.

Pliki PNG powinny być o następujących parametrach:
kolory RGB, 24 bit, dpi można ustawić na dowolny w sumie rozmiar bo rozmiar tutaj jest definiowany rozdzielczością w pikselach. Ważne aby nie ustawiać przeźroczystości (transparency) i przeplotu (interlace).

Tworzymy plik ZIP

Możemy użyć dowolnego programu do kompresji byle by tylko pozwalał wybrać stopień kompresji i tworzył wynikowo format zip. Ja korzystam z 7Zip, który to umożliwia.

Nazwa pliku może być inna od bootanimation.zip - zależne od telefonu, ale narazie widziałem głównie standardową nazwę.

Wgrywamy plik do telefonu

Jak już pisałem na początku, telefon musi być zrootowany i przydało by się posiadać menadżer plików, który pozwala na przeglądanie katalogów systemowych. Ja korzystam z ES Explorer.

Trzeba jeszcze ustawić uprawnienia pliku na:

Teraz możemy spokojnie zrestartować telefon i cieszyć się naszą animacją :)