2016/10/28

bootanimation.zip は圧縮してはいけない

Android 起動時のアニメーションは /data/local/bootanimation.zip1/system/media/bootanimation.zip で決まります。

この bootanimation.zip ファイル、PNG ファイルを連番で用意し、構成ファイル desc.txt をトップに格納するというシンプルな構成なので簡単に作成できます。

参考

Deciphering Android's bootanimation.zip desc.txt

しかし、普通に zip ファイルを作るとうまく表示されません2。 この zip ファイル、無圧縮でなければいけないのです。

それに気づかず、数時間使ってしまったー3

無圧縮zip の作り方

Linux 系だと以下のように zip コマンドで作成します。

$ zip -0 bootanimation.zip desc.txt part0/* part1/*

実際にアニメーションを表示しているソースコード

バージョンによって微妙に挙動が変わっているので注意が必要です。

https://android.googlesource.com/platform/frameworks/base/+/master/cmds/bootanimation/

ブートアニメーションをいじろうという人は AOSP 等から自分でビルドする人かと思うので4、 コードは手元にあるという前提なのでしょう。

いろいろなブートアニメーション

蛇足ですが、様々なデバイスのブートアニメーションを集めたサイトがあったのでリンクしておきます。

Boot Animations « Droidboots

  1. Android 5.0 Lollipop 以降は /oem/media/bootanimation.zip に変更になった様子 
  2. 場合によっては起動すらしなくなっちゃうことも 
  3. 実は参考リンク先にも圧縮してはいけないと書いてありました 
  4. エミュレーターでも出来ますが、それやっても、あまり面白くないからなぁ 
?

0 件のコメント: