源码中修改Android的开机画面和动画

article/2025/9/24 10:27:41

参照文章:http://blog.csdn.net/a345017062/article/details/6222962、http://bbs.gfan.com/android-146253-1-1.html。


Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。

第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别简要记录一下怎么样在源码中修改这两个地方。


1、修改开机画面

找到源码kernel\drivers\video\logo\目录,在这个目录下你会发现logo_linux_clut224.ppm文件,这个就是开机画面的图片,如要替换成自己的Logo,则把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译烧录即可。

注:将png图片改成.ppm格式。首先你要有个 和自己屏幕分辨率一样 或者 小于屏幕分辨率的图片,如logo_linux_clut224.png

    ①将png图片转成pnm

     pngtopnm logo_linux_clut224.png >logo_linux_clut224.pnm

    ②将pnm图片的颜色数限制在224色

    pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224_backup.pnm(此处生成后的名字不可与前者相同,否则会报错)

    ③将pnm图片转换成我们需要的ppm

    pnmtoplainpnm logo_linux_clut224_backup.pnm >logo_linux_clut224.ppm


2、修改开机动画

在源码跟目录中,执行  find . -name "bootanimation.zip"   找到文件所在路径,可以查看其中的Android.mk了解具体的编译过程,下面先介绍一下如何制作开机动画:


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


QQ截图未命名.jpg 
就像播放原始的胶带影片一样,形成动画。

具体这一部分图片怎么来,看个人喜好了,我是比较喜欢用flash制作好自己想要的动画然后按帧导出,然后按数字顺序给文件编号就可以了。

如果你不会flash制作也没关系,推荐一个软件:SWF2Video Pro ,链接我就不提供了,自己可以google搜索到,
这个软件可以把flash按帧导出成png格式图片。也就是说,只要有你喜欢的flash动画,你都可以用这个软件把画面截取出来用来做你小石头的开机动画。其他格式导出png格式的软件我就不一一说明了,大家有机会去搜索一下。
保存下来的png图片记得要按顺序编号命名。

下面重点讲的是desc.txt这个文件里面的命令。
desc.txt里面的命令格式如下:

480 427 30
p 1 0 part0
p 0 0 part1

我逐一解释一下:

480 427意思是说你开机动画在屏幕先以多少的分辨率显示,注意不要超过milestone屏幕480x854的分辨率,否则你的画面就显示不全了。

30 这个数字是代表着每秒播放的帧数,拿我这个开机画面打个比方说,part0文件夹里面共76个图片,播放时间就是76/30=2.533333秒播放完毕,当然在手机里面会有一定的延时,尤其是你的图片文件比较大的情况下,手机想播快也快不起来,卡啊
以下部分是实现画面重复位置的
p 1(代表着播放一次) 0(空指令)part0  */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p 0(重复播放)(空指令)part1 */这一句指令代表着part1文件夹内的图片会循环反复播放

还有一种是指令不常用,我也来解释一下吧

p 0 10 part1  这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,再停顿少许,再播放,再停顿稍许·········重复下去
p 1 10 part1  同理,这句代表着播放完part1文件夹内的图片之后稍作停顿然后继续执行吓一条命令。

如果想作出一些特殊的效果,可以活用这些命令,然后分配不同的图片在各个文件夹里来实现各种重复与循环。

图片准备好了,desc.txt里面的命令准备好了,就可以把他们一起打包压缩成zip格式了。
记住,是zip格式,而不是rar格式。另外压缩的时候注意一点,压缩的时候压缩方式要选择存储,否则开机时手机会不认的。当然不至于变砖,只是开机的时候会黑着没动画一直到进入桌面为止。看图:

QQ截图未命名2.jpg 
压缩文件重命名为
bootanimation.zip之后,放进源码相应的目录下重新编译,查看out\target\product\la0910\system\media\路径下的文件,即可发现已经修改成功,再烧录程序进行验证。
如果之前已经使用了其他的红眼之类的非默认开机动画,这里会已经存在这个文件,只需覆盖就好。


接下来介绍一下相关的代码:


主要的控制代码在/framework/base/cmds/bootanimation/BootAnimation.cpp中。这个文件定义了对动画显示规则的解析,所以,我们可以通过在bootanimation.zip中包含的描述文件来很简单地定义动画显示。只要把开机动画按一定规则做成bootanimation.zip压缩包存放在系统的/oem/media/或/system/media/这两个目录下。开机时,系统检测到这两个目录任意一个下面有名字为bootanimation.zip的压缩包的话,都会解压并播放里面定制的动画。检测顺序是先检测/oem/media/再检测/system/media/。

另外,我们还可以用另外一种方式修改动画,在/frameworks/base/core/res/assets/images/这个目录中,默认情况下,BootAnimation.cpp中的动画控制代码会使用变量mAndroid里面包含的两张图片来做为显示动画。我们要做的就是直接做好图片替换掉/frameworks/base/core/res/assets/images/中的两个文件,最主要的还是要把握好图片的分辨率。


如果只是要修改分辨率,那么可以通过将其中的图片修改分辨率后重新生成一个新的bootanimation.zip的方法,达到适配的效果。


http://chatgpt.dhexx.cn/article/1gbhfRGN.shtml

相关文章

android开机logo和动画修改

Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。 第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别简要记录一下怎么样在源码中修改这两个地方…

修改Windows7启动画面与登录画面

Windows7进入桌面前,要经过两次画面切换,首先是启动画面,其次是登录画面。这两个画面可以通过特殊处理修改。 一、修改启动画面 方式1: 如果只需要变成全黑,不显示任何动画与文字,可以禁用启动画面&…

修改电脑开机徽标教程

Windows10/11修改电脑开机徽标 目录:修改电脑开机徽标条件修改教程修改成功之后 目录: 修改电脑开机徽标条件 Windows10 32位系统及以上(否则改不成功!) 修改教程 1.Windows10/Windows11系统按下WinR 打开运行框 2.在…

修改开机logo

如何修改电脑开机logo 主要步骤第零步第一步第二步第三步第四步第五步第六步第七步 开机logo是每一台笔记本电脑开机时展现出来的画面,通常情况下是电脑的品牌,例如,联想、神舟、戴尔等。接下来,我将分享一下更换开机logo的经验。…

Android修改开机动画

1.首先找到framework/base/data/sounds/bootanimation.zip 4.0 是在vendor/thirdapp/zh_CN/bootanim/system/media/bootanimation.zip 看一下结构: desc.txt part0 part1 三部分 part0,part1包含相关动画图片(PNG格式,分辨率与手机分辨率相同) desc.txt为配置文件内…

更改安卓系统开机画面

1;进入as的Device 找到文件夹system,再找到文件夹media。(在设备的ES工具中也能看到,在电脑上看不到) 2; 进去之后找到bootanimaton.zip 文件,将其导出(save as),然后删…

BIOS全屏开机画面LOGO的修改

对于在自己主板上添加全屏开机LOGO的过程,好多文章都已经介绍了,本网站以前的文章中也有介绍,但是很多网友还是无法自己修改成功。但很多原因都是没有掌握好修改的方法,本网站将制作修改过程重新制作了一下,希望对不明…

Android——修改开机画面

Android——修改开机画面 开机第三屏(android动画) 编译成功后在android源码根目录生成out目录, 修改android\out\target\product\sdkDemo\system\framework目录下的framework-res.apk 用winrar格式打开,替换assets\images里的2张…

win10如何更改计算机开机界面,win10怎么修改开机画面_win10开机画面怎么换

win10系统想必大家都非常熟悉吧,有的win10纯净版32位系统用户不想让自己的开机画面一直是一个样式,想要修改自己电脑的开机画面,可是又不知道应该怎么修改,接下来小编就给大家讲解一下关于win10系统更改启动画面的详细操作步骤。 …

最新手机号段归属地数据库 高性能dat解析

最新 手机号段数据库 2020-08-15 458461条记录 号码归属地数据库 全面 准确 规范 字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析、号码归属地查询等非常有帮助 名称:手机号码归属地查询 dat高效率查询 内存优化版 压缩:原…

手机号码归属地数据库下载

一份手机号归属地数据,共有174495条数据,包括中国移动,中国联通,中国电信的(包含152、186、188、189开头的手机号)。其中cardtype字段基本上没有什么用。因为可以通过办理某些业务就可以把如全球通卡转成神…

手机号段归属地数据库

最新手机号段 归属地数据库 每月更新一次 1、提供三大运营商及虚拟运营商的号段数据库,共340054条数据,最后更新时间:2016-04-20 2、字段:号段前缀、号段、邮编、区号、省、市、运营商、卡类型 3、号段包括 1)移…

调用手机在线API获取手机号码归属地信息

手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确、号段容量最大的手机号码归属地数据库系统, 目前号段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度、淘宝、…

最新手机号码归属地数据库(2017年4月1日)

2017年4月1日版 近36万条记录 celldb.cc最新 号码归属地数据库 手机号段数据库 移动 联通 电信 移动号段 联通号段 电信号段 虚拟170号段 171号段号码字段包括 省市 运营商 邮编 区号 等信息 移动号码: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 …

PHP——最新号码归属地数据库

前言 最近在忙的一个项目,为了数据安全,不能够使用任何第三方的接口~ 号码库 | https://github.com/wangyang0210/Phone-Number-Range 代码 其实就是一个很简单的封装方法,没什么好说的~ /*** 根据号码返回归属地* * param string $phone 手机…

APISpace 手机号码归属地和运营商查询API

APISpace 的 中国手机号码归属地和运营商查询API,为您提供最新的中国移动、中国电信、中国联通所有手机号码归属地等功能, 输入手机号码至少前7位,可查该手机号码归属地、所属号段、手机卡类型。 手机号码归属地有三大作用: 代表…

APISpace 手机号码归属地API

今天就和大家讲一讲 APISpace 的 手机号码归属地API,可根据手机号码查询其省市区、运营商区号行政区划代码等信息。 上亿条数据囊括最新的170、166、147等号段,更新及时、准确度高。 接口优势 准确性高: 动态数据库,囊括最新的1…

2023最新手机归属地数据库mysql,近49w条数据

最新手机号段归属地数据库 最新 手机号段数据库 号码归属地数据库 移动号段 联通号段 电信号段 广电号段 虚拟运营商 字段有 省份 城市 运营商 区号 邮编,对于数据分析、号码归属地查询等非常有帮助 各号段最新数据量 SELECT * FROM mobile WHERE phone1518888 查询…

mysql手机号段地区库_最新全国手机号段归属地数据库下载(mysql+xlsx+txt格式)46万条...

在做网站程序时,经常用到校验用户输入的手机号归属地或所属移动,电信,联通等服务商,本手机号码段归属地数据库包括支持可查省份 城市 运营商 邮编 区号。而且提供.mysql,excel,txt三种数据格式数据库,2020年11月份最新的包括46万条记录集,可方便为实现手机号码段归属地查…

手机号归属地数据库;根据手机号查找对应的归属地;

我在网上找到了一份手机号对应归属地的数据库文档。 链接: https://pan.baidu.com/s/1MQtDkw3sowNmdSeoVJUbEA 密码: tp1o 链接: https://pan.baidu.com/s/1pzh_FqXOP_6Ta103K5Cmyw 密码: 9j5r 如有需要,先点赞、关注,再下载。