bootanimation中のランダム画像再生

JCROMのframeworkに一手間加えて
bootanimation中にランダムな画像を再生できるようにしました。

サンプル動画はこちら

ソースはこのへん。
https://bitbucket.org/iqm/android_gnexus_frameworks_base/changeset/1b78cd4cdd6f

なにやってん

bootanimation.zipのdesc.txtを読み込みロジックに、ランダム用の命令を追加しました。
つまりこの方法ではframeworkの書き換えと共に、ランダム命令が追加されたbootanimation.zipが必要となります。

追加した命令
r count pause path ...

r: ランダム命令用の識別子
count(int): loop数(従来のp命令と同様)
pause(int): Wait時間(従来のp命令と同様)
path(string): ランダムに再生させたいリソースの入ったディレクトリ名をスペース区切りで

例: desc.txt
720 1280 48
p 1 0 start
r 1 0 rock paper scissors
p 1 0 end

この書き方では、
まず"start"の中身が再生され、
次に"rock","paper","sissors"の中のどれか一つが再生され
最後に"end"が再生されることになります。

言い訳

bootanimation自体を複数用意する手もあるのですが、
容量食うし、そもそも差し替えたいのは一部だけだった、
あと中身みたらこっちのほうが簡単そうだったのでこんな感じの実装に。

その他

スムーズにアニメーションをさせるノウハウとか、
再生終わるまで起動させない方法*1とかご存知の方がいたら俺得なので教えてください( ・`д・´)

追記[2012/04/11]

結局、bootanimationを複数用意してランダムに再生する機能も追加しました
http://d.hatena.ne.jp/iqm/20120410#p1

追記[2012/07/18]

JB(android 4.1.1)においてdesc.txtの仕様が一部変更されたため、それへ対応しました
http://d.hatena.ne.jp/iqm/20120718#p1

*1:JBで対応されました