doc:appunti:android:logo_bootanimation
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:android:logo_bootanimation [2019/10/07 16:09] – [bootanimation.zip] niccolo | doc:appunti:android:logo_bootanimation [2019/10/07 16:33] (current) – [Contents of bootanimation.zip] niccolo | ||
---|---|---|---|
Line 77: | Line 77: | ||
The logo contained into the **logo.bin** partition is displayed in the early stage of the boot process. Once the system partition is available, an animation is played for some seconds. That animation is contained into a zip file. In our case it turned out that the file is stored in **/ | The logo contained into the **logo.bin** partition is displayed in the early stage of the boot process. Once the system partition is available, an animation is played for some seconds. That animation is contained into a zip file. In our case it turned out that the file is stored in **/ | ||
- | There should be an executable responsible to actually run the animation, it should be **/ | + | There should be an executable responsible to actually run the animation, it should be **/ |
* **/ | * **/ | ||
Line 83: | Line 83: | ||
* **/ | * **/ | ||
* **/ | * **/ | ||
+ | |||
+ | If bootanimation.zip file is **not found**, the **framework-res.apk** package is searched into directories **/ | ||
+ | |||
+ | * assets/ | ||
+ | * assets/ | ||
+ | |||
+ | ==== Contents of bootanimation.zip ==== | ||
Generally the animation is composed of **two parts**: the first is played just **once**, the second part is played in **loop** until the system is ready. This is controlled by the contents of the **desc.txt** file contained into the zip, here it is an example: | Generally the animation is composed of **two parts**: the first is played just **once**, the second part is played in **loop** until the system is ready. This is controlled by the contents of the **desc.txt** file contained into the zip, here it is an example: | ||
Line 88: | Line 95: | ||
< | < | ||
720 1280 15 | 720 1280 15 | ||
- | p 1 5 part0 | + | p 1 0 part0 |
p 0 0 part1 | p 0 0 part1 | ||
</ | </ | ||
Line 94: | Line 101: | ||
The first line tell us that the animation is **720x1280 pixels**, at **15 frames per second**. | The first line tell us that the animation is **720x1280 pixels**, at **15 frames per second**. | ||
- | The second line tell us that there is a part **p** to be executed **1** time, followed by a pause of **5** (FIXME Not working? Unit of measure?). The actual frames are contained into the **part0** subdirectory. | + | The second line tell us that there is a part of **type p** to be executed **1** time. The following number (**0** in the example above) someone says that it is a pause to wait after the animation, in my case it is instead ununsed at all. The actual frames are contained into the **part0** subdirectory. |
+ | |||
+ | The last line defines another part **type p** to be executed in an endless (**0**) loop until the system is ready, with a zero **0** pause. The frames are into the **part1** subdirectory. | ||
+ | |||
+ | A **type p** means that the animation can be interrupted when the boot process is completed. If you want instead a part to be played as the final part of the animation (e.g. if you want a fade-out effect), you have to use a **tpye c**, which means //play at least once//. | ||
+ | |||
+ | < | ||
+ | 720 1280 15 | ||
+ | p 1 0 part0 | ||
+ | c 0 0 part1 | ||
+ | c 0 0 part2 | ||
+ | </ | ||
- | The last line defines another part **p** to be executed in an endless (**0**) loop until the system | + | In the above example, once the boot process is completed, the **part1** is interrupted, |
Frames are actually **PNG images**, of the proper size (720x1280 in our case). | Frames are actually **PNG images**, of the proper size (720x1280 in our case). |
doc/appunti/android/logo_bootanimation.1570457349.txt.gz · Last modified: 2019/10/07 16:09 by niccolo