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

frameworks/base/cmds/bootanimation/BootAnimation.cpp

首先看一下定义的常量:

BootAnimation::readyToRun()

进入一个if判断语句

BootAnimation::threadLoop()

==> BootAnimation::Android()会加载"images/android-logo-mask.png"和"images/android-logo-shine.png"

==> BootAnimation::movie()会加载bootanimation.zip中的内容

我们下载的源码里默认是没有那些个.zip动画的,所以总会跳到android字体闪动的画面

所以如果你系那个用.zip的动画那么把你做好的动画拷贝到编译好对应的目录下即可,然后执行make snod整合进img包就可以看到效果了

如果你想修改android闪动的那两张图片的话,最简单的方法是直接替换图片,如果你懂openGL的话也可以自己做酷炫的动画

那两张图片放在./frameworks/base/core/res/assets/images  目录下,一张镂空的android图,一张发光效果,动画效果就是下面那张发光的效果图不断左右移动。

方法1:

直接修改~/mx0831-0525/frameworks/base/core/res/assets/images目录下的图片即可(这个动画是由android-logo-mask.png和android-logo-shine.png合成的)。





方法2:(转载于:http://blog.csdn.net/mlbcday/article/details/7410509)

Android开机动画有两种修改方法,android 2.0及之后,使用bootanimation程序显示开机画面,如需修改开机画面,不用修改代码,只需按格式要求做bootanimation.zip包,放在系统的/system/media目录中,或/data/local目录中即可,两个目录下都存在时,优先使用/data/local下的。android 2.0之前,则需要修改源码。



 开机画面主要是由一个zip格式的压缩包bootanimation.zip组成,压缩包里面包含数张png格式的图片,还有一个desc.txt的文本文档,开机时按desc.txt里面的指令,屏幕上会按文件名称顺序连续的播放一张张的图片,就像播放原始的胶带影片一样,形成动画。

(1)动画图片制作。由于缺少横屏动画的源文件,本例采取的是使用屏幕录像软件录制android模拟器中的横屏开机动画(如屏幕录像专家V2011),然后在媒体播放器中捕获每一帧(如KMPlayer),保存为PNG格式的图片。这两个软件的使用方法比较简单,可参考网上的使用说明。  根据个人喜好,如果替换成别的动画方法也类似,如用flash制作好自己想要的动画,按帧导出,然后按数字顺序给文件编号就可以了。           

图片按照数字编号后统一放在一个文件夹下,本例中为part0。如下图:

android平台默认竖屏扫描图片,所以在这里需要把图片顺时针旋转一次。

(2)动画属性描述文件。desc.txt是一个保存形式为ANSI格式的文件,用于设置这个动画像素(大小),帧数,闪烁次数,文件夹名称等。内容如下:

480 427 30

p 1 0 part0

p 0 0 part1

480 427 30  ---这里的480代表图片的像素(大小)宽度,427代表图片的像素(大小)高度,30代表帧数;

 p 1 0 part0 ---这里的p代表标志符,1代表循环次数为1次,0代表阶段间隔时间为0,part0代表对应的文件夹名,为第一阶段动画图片目录;

 p 0 0 part1---这里的p代表标志符,0代表本阶段无限循环,0代表阶段间隔时间为0,part1代表对应的文件夹名,为第二阶段动画图片目录;

阶段切换间隔时间:单位是一个帧的持续时间,比如帧数是30,那么帧的持续时间就是1秒/30 = 33.3毫秒。阶段切换间隔时间期间开机动画进程进入休眠,把CPU时间让给初始化系统使用。也就是间隔长启动会快,但会影响动画效果。

    part0和part1文件夹内包含的是两个动画的系列图片,图片为PNG格式。系列图片文件的加载刷新按文件名的名称排序。必须注意的是,在属性描述完成后要有换行符(回车跳入下一行),已确保指令都已完成。

(3)图片和desc.txt文档都准备好后,开始打包为bootanimation.zip。选中图片文件夹part0和desc.txt(提醒一下:打包前将图片文件夹中的Thumbs.db删除),然后右键选择WINRAR的"添加到压缩文件"进入自定义压缩文件设置:压缩文件格式选择:ZIP,压缩方式选择:存储,然后点击确定即可。

注意:/system/media是在/out/target/product/TBDG1073/system/media/下

==================================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

==================================================================================================

Android系统移植与调试之------->如何修改开机动画的两种方式剖析的更多相关文章

  1. Android系统移植与调试之------->如何修改Android手机显示的4G信号强度的格子数

    在修改显示的信号强度之前,先了解一下什么是dB,什么是dBm? 1.dB dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时, 按 ...

  2. Android系统移植与调试之------->如何修改Android自带的apk出现一圈圈类似鸡蛋的花纹

    最近被一个问题烦恼到了,就是android4.1系统自带的Email.文件管理器.信息等apk都出现同一个问题,就是现实在平板上的时候会出现一圈圈类似鸡蛋的花纹. 我想了两种方法来解决,第一种方法没有 ...

  3. Android系统移植与调试之------->如何修改Android系统默认显示【开发者选项】并默认打开【USB调试】和【未知来源】开关

    今天有个用户对[设置]有个特殊的要求,即: 1.开机的时候默认显示[开发者选项]并打开[USB调试]开关    ([Developer options]-->[USB debugging]) 2 ...

  4. Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)

    今天要说的是为Android设备添加重启.飞行模式.静音模式按钮,客户需求中需要添加这项功能,在长按电源键弹出的菜单中没有这些选项,谨以此文记录自己添加这个功能的过程. 首先找到长按电源键弹出的对话框 ...

  5. [置顶] Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏的时候的切换与显示

    这两天由于一个客户的要求,将MID竖屏时候的状态条上的音量键去掉.所以尝试修改了一下,成功了,分享一下经验. 先看一下修改后的效果图,如下所示 . 横屏的时候:有音量加减键 竖屏的时候:音量加减键被去 ...

  6. Android系统移植与调试之------->如何修改Android手机NFC模块,使黑屏时候能够使用NFC

    我们都知道在不修改源代码的情况下,只能是解锁之后才能使用NFC功能.而在锁屏和黑屏2个状态下是没办法用NFC的,但是最近有个客户要求手机在黑屏状态下能够使用NFC,因此我们需要去修改Android源代 ...

  7. Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏

    这两天由于一个客户的要求,将MID竖屏时候的状态条上的音量键去掉.所以尝试修改了一下,成功了,分享一下经验. 先看一下修改后的效果图,如下所示 . 横屏的时候:有音量加减键 竖屏的时候:音量加减键被去 ...

  8. Android系统移植与调试之------->如何修改Android设备存储盘符名称与Android设备的型号

    一.修改Android设备存储盘符名称 (注:TBDG1073为我的项目名称) 1.修改device/other/TBDG1073/system.prop 文件 2.修改ro.media.patiti ...

  9. Android系统移植与调试之------->如何修改Android默认字体大小和设置里面字体大小比例

    因为我修改 ro.sf.lcd_density的值,将它从160修改 为120,所以导致整个系统的字体都变得很小.因此需要将整个字体变大,并且在设置-->显示-->字体大小的4个选项的值都 ...

随机推荐

  1. stm32时钟设置函数

    这里涉及到一个很重要的寄存器,时钟配置寄存器:RCC_CFGR #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defin ...

  2. DSP6455的cmd文件

    DSP6455的cmd文件 CMD 的专业名称叫链接器配置文件,存放链接器的配置信息,DSP编译器的编译结果是未定位的,DSP也没有操作系统来定位执行代码,DSP系统的配置需求也不尽相同,因此需要定义 ...

  3. 计算 24 点是一种扑克牌益智游戏,随机抽出 4 张扑克牌,通过加 (+) ,减 (-) ,乘 ( * ), 除 (/) 四种运算法则计算得到整数 24 ,本问题中,扑克牌通过如下字符或者字符串表示,其中,小写 joker 表示小王,大写 JOKER 表示大王:

    include "stdafx.h" #include <iostream> #include <fstream> #include <string& ...

  4. MapReduce源码分析之JobSubmitter(一)

    JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInter ...

  5. Win从环境变量开启MySQL之旅

    Win通过环境变量开启MySQL之旅 这篇文章主要介绍了Windows7下如何在命令行使用MySQL的相关资料,需要的朋友可以参考下 我在Win7下安装的MySQL版本是mysql-5.0.22-wi ...

  6. python笔记2 生成器 文件读写

    生成器 一边循环一边计算的机制,称为生成器(Generator). 把一个列表生成式的[]改成(),就创建了一个generator: 创建了一个generator后,通过for循环来迭代它. 著名的斐 ...

  7. [搬家]新域名 akagi201.org

    现在感觉自己做了好多年的垃圾信息制造者 以后只在网络上发布有用的东西, 垃圾或者对别人没用的东西就放到自己的硬盘上把 http://akagi201.org

  8. [转]Java中怎样把数组转换为ArrayList

    方法汇总: Element[] array = {new Element(1),new Element(2),new Element(3)}; ArrayList<Element> arr ...

  9. 【动态规划】skiing

    [动态规划]skiing 时间限制: 1 Sec  内存限制: 128 MB提交: 34  解决: 15[提交][状态][讨论版] 题目描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激. ...

  10. hdu4266(三维凸包模板题)

    /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在凸包内,则可以跳过 2> ...