Androidカスタマイズ:起動画面の修正


引用する
Androidシステムは、起動キーを押すと起動プロセスに入ります.このプロセス自体には時間がかかりますが、ユーザー向けはメーカーがカスタマイズした宣伝用の絢爛たる起動画面が多いです.私达は自分のシステムをカスタマイズする时、往々にしてこれらの画面を私达の自分のに変える必要があって、一方で自分のLOGOを追加してブランドの露出度を増加することができて、またいくつかの特効を追加してユーザーに新鮮さを味わうことができます.
ソース:非公式Android 5.1ソース
説明
要約すると、現在androidの起動画面は3つの部分(段階)で構成されており、第1の部分はbootloaderの起動時に表示(静的)、第2の部分はkernelの起動時に表示(静的)、第3の部分はシステムの起動時に表示(アニメーション)されている.
1、最初の起動画面:BootloaderがLinuxカーネルを起動する時の起動画面(Linuxペンギンの画面).デフォルトでは、この画面は表示されません(Android 1.5以降のバージョンでは画像のロードがキャンセルされています).カーネルをコンパイルするときに、次の2つのコンパイルオプションを有効にしない限り、CONFIG_FRAMEBUFFER_CONSOLE、CONFIG_LOGOの最初のコンパイルオプションは、カーネルがフレームバッファコンソールをサポートしていることを示します.これに対応する構成メニュー項目は、デバイスドライバ->Graphics support->Console display driver support->Framebuffer Console supportです.2番目のコンパイルオプションは、カーネルが起動中にLOGOを表示する必要があることを示します.これに対応する構成メニュー項目は、DeviceDrivers->Graphics support->Bootup logoです.
ご興味があれば、カーネルソースを確認してください:/kernel/goldfish/drivers/video/ /kernel/goldfish/drivers/video/logo/ ...2、第2の起動画面:Androidシステムinitプロセスの起動中の画面.2番目の起動画面の内容はファイルinitlogoである.ファイルの場合はrleが指定します.rleファイルが存在しないか、表示中に異常が発生した場合、Androidは2番目の起動画面をテキストで表示し、0番のコンソール(/dev/tty 0)に「ANDROID」という7文字を出力します.
興味があれば、システムのソースコードを参照してください:/system/core/init/ /system/core/init/init.c /system/core/init/logo.c ...3、3番目の起動画面:アプリケーションbootanimationが表示するアニメーション.bootanimationプログラムでは、システム作成ディレクトリの下にアニメーションファイル(.zipファイル)が存在するかどうかをチェックします.存在しない場合、表示される3番目の起動画面はAndroidシステムのデフォルトの起動アニメーション(シェーディングが点滅するAndroid Logo)です.そうしないと、3番目の起動画面はユーザーがカスタマイズした起動アニメーションになります.
興味があれば、システムのソースコードを参照してください:/frameworks/base/cmds/bootanimation/方法
カスタマイズの過程で実際の必要に応じて修正し、起動画面については3番目の画面(アニメーション)を主に修正します.
1、デフォルトの起動画面Androidシステムのデフォルトの起動アニメーションを修正するのは、2枚の画像android-logo-mask.pngandroid-logo-shine.pngがプログラム呼び出しによって実現したアニメーション効果(明暗変化)である.この2枚の画像は/frameworks/base/core/res/assets/imagesに保存されています.
簡単に置き換える方法はpngピクチャをカスタマイズしandroid-logo-maskを置き換えることである.pngファイル、再コンパイル:
$ mmm -B frameworks/base/core/res/

新しい/out/target/product/xxx/system/framework/framework-res.apkファイルが生成され、置き換えられた画像が表示されます.
2、カスタムのスタートアップアニメーションシステムのソースコードのスタートアップアニメーションに関するファイルを使用して、2つのマクロを定義した.
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip" 
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"

そのため、bootanimation.zipという名前のアニメーションファイルを作成し、上のいずれかのディレクトリの下に置けばいいのです.具体的な操作は以下の通りである:(1)bootanimationを作成する.zipアニメーションパッケージ1>pngピクチャの準備(大量ピクチャの輪番がアニメーション効果となる)2>アニメーション記述ファイルdesc.txtの作成、コンテンツフォーマットは以下の通りである:最初の行の3つの数字は、画面内の起動アニメーションの表示幅、高さ、フレームレート(fps)をそれぞれ表す.残りの各行は、アニメーションセグメントを記述するために使用されます.これらの行は、文字「p」で始まり、2つの数字とファイルディレクトリパス名が続く必要があります.最初の数字は、1つのセグメントのループ表示回数を表し、値が0に等しい場合は、アニメーションセグメントを無限にループ表示することを表します.2番目の数字は、各セグメントが2回のループ表示の間の時間間隔を表し、この時間間隔は1フレームの時間単位である.ファイルディレクトリの下に保存されているpngファイルは、画面に順次表示されます.
例:
600 480 24          //         600   480,        24   。
p   1   0   part1   // part1   png      ,     0   。
p   0   10  part2   // part2   png      ,     10   。

(2)作成したアニメーションパッケージを指定ディレクトリに入れる
$ cp bootanimation.zip /out/target/product/xxx/system/media/

(3)システムを再生成する.imgミラー
後記
メーカーによって提供されるソースコードが異なる場合がありますが、修正するときは実際の状況に応じて修正します.
さらに理解する必要がある場合は、以下のいくつかのブログを参考にしてください.Androidシステムの起動画面表示過程分析:http://blog.csdn.net/luoshengyang/article/details/7691321/ 2. android logo:カーネル、android起動アニメーションhttp://blog.csdn.net/xubin341719/article/details/8267282