bootanimation code analysis

本文将指导您如何创建并自定义Android设备的开机动画,包括添加音乐、修改Android.mk文件以及打包动画文件的步骤。

frameworks/base/cmds/bootanimation$ ls -l

-rw-r--r-- 1 android android   703 2011-09-15 16:53 Android.mk

-rw-r--r-- 1 android android 17768 2011-09-15 16:53 BootAnimation.cpp

-rw-r--r-- 1 android android  2704 2011-09-15 16:53 BootAnimation.h

-rw-r--r-- 1 android android  1730 2011-09-15 16:53 bootanimation_main.cpp

 

frameworks/base/core/res/assets/images$ ls -l

-rw-r--r-- 1 android android 5306 2011-09-15 16:53 android-logo-mask.png

-rw-r--r-- 1 android android  641 2011-09-15 16:53 android-logo-shine.png

android开机后出现两个画面:一. Android平台启动初始化,出现"A N D R I O D"文字字样画面;
相关代码: 
system/core/init/init.c 
system/core/init/init.h
system/core/rootdir/init.rc
system/core/init/logo.c 

二. Android平台图形系统启动,出现含闪动的ANDROID字样的动画图片

1. 开机后文件system/core/init/init.c开始解析 system/core/rootdir/init.rc :

          init_parse_config_file("/init.rc"); 

2. 文件system/core/rootdir/init.rc 定义服务bootanim:

    service bootanim /system/bin/bootanimation

    user graphics

    group graphics

    disabled

    oneshot

3. 代码部分:

BootAnimation::readyToRun()  判断程序流程,从下面两个函数中选择一个。

BootAnimation::android() 控制背景图片android-logo-shine.png连续滚动,从而实现动画效果。

BootAnimation::movie()   执行bootanimation.zip中提供的动画图片

 

bootanimation.zip以及其中包括的desc.txt文件格式网上有很多介绍


以下这段话来自网上,我还没验证过:

---------
在frameworks\base\data\sounds文件夹里面添加你的bootanimation.zip和你的开机音乐bootanimation.MP3,重要的操作在于修改Android.mk,需要在里面添加$(LOCAL_PATH)/bootanimation.mp3:system/media/bootanimation.mp3 \
$(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip
就会把你的bootanimation.zip,bootanimation.MP3放到system/media/下面了。
如果这样子还不行,那么就需要看你打包的时候是否有问题,因为打包的时候不能带文件夹打包,必须在文件夹里面打包。
-----------






How To Change, Customize & Create Android Boot Animation [Guide]
http://www.addictivetips.com/mobile/how-to-change-customize-create-android-boot-animation-guide/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值