现在的位置: 首页 > 综合 > 正文

android4.0.3 修改启动动画和开机声音

2013年08月25日 ⁄ 综合 ⁄ 共 1517字 ⁄ 字号 评论关闭

本文转载自:http://www.cnblogs.com/jqyp/archive/2012/03/07/2383973.html   并在此基础上添加一些更正

1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片);
2. Android平台启动初始化,出现"A N D R I O D"文字字样画面;
3. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。

第二种方式:

Android 系统启动后,读取 /initlogo.rle(一张565 rle压缩的位图),如果读取成功,测在/dev/graphics/fb0显示Logo图片;如果读取失败,则将/dev/tty0设为TEXT模式, 并打开/dev/tty0,输出文本“A N D R I O D”字样。

相关代码:

/system/core/init/init.c的 console_init_action方法中修改文字即可

if( load_565rle_image(INIT_IMAGE_FILE) ) {
        fd = open("/dev/tty0", O_WRONLY);
        if (fd >= 0) {
            const char *msg;
                msg = "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"  // console is 40 cols x 30 lines
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "\n"
            "             XIUNA BAICHI ";
            write(fd, msg, strlen(msg));
            close(fd);
        }


/system/core/init/init.h
/system/core/init/init.rc
/system/core/init/logo.c

*.rle文件的制作步骤:
a. 使用GIMP或者Advanced Batch Converter软件,将图象转换为RAW格式;
b. 使用android自带的rgb2565工具,将RAW格式文件转换为RLE格式(如:rgb2565 -rle < initlogo.raw > initlogo.rle)。

现在我们说的是第三种方式(基于模拟器):

android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来。

首先,我们先来分析一下源码:

frameworks/base/cmds/bootanimation/BootAnimation.cpp

首先看一下定义的常量:

?
1
2
3
4
#define
USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
 
#define
SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define
SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"

BootAnimation::readyToRun()

进入一个if判断语句

?
1
2
3
4
5
6
7
8
9
10
11
if((encryptedAnimation
&&
            (access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE,
R_OK)
==0)
&&
            (mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE)==

抱歉!评论已关闭.