Android开机画面由三部分组成,第一部分在bootloader启动时显示(在Android1.5版本以前是显示一个小企鹅,1.5版本及之后取消了);第二部分是在Kernel启动初始化时,出现“A N D R I O D”文字字样画面;第三部分是在平台图形系统启动后,出现含闪烁的ANDROID字样的动画。

在bootloader阶段,aboot_init函数中,调用了display_init完成显示的初始化动作后,接着调用display_image_on_screen,在该函数中涉及开机画面的显示。原理比较简单,开机画面已被转换为可以直接用于显示的RGB数据,存放在一个常量数组中,需要显示时,定义显示的区域,直接将这些数据拷贝到Buffer中。

这里说一下如何将一般的图片(jpg、png、bmp等)转换得到bootloader开机画面所需的显示数据,其中有些细节需要注意的。

一、得到png文件

大多数格式的图片,都可以通过photoshop转换成png格式。注意的是,bootloader需要的png必须是256色且不带alpha(透明度)通道的。首先,打开需要转换的文件,比如android.jpg,然后选择“文件”菜单下的“存储为Web和设备所用格式”,如下图:

注意设置页面右上角红色框内的选项,必须选择PNG-8格式,颜色为256,不勾选透明度。设置完毕,保存为png文件,如android.png。

二、转换成raw文件

这里要用到一个开源工具ImageMagick,可以到网上下载,有windows版本和Linux版本,其官方网站是www.imagemagick.org。但是,无论是windows还是Linux版本,格式转换的操作都只支持命令行操作方式。使用下面的命令,得到可进一步利用的raw文件:

convert  *.png  –depth  8  rgb:*raw

比如上面的android.png,执行:

convert  android.png  –depth  8  rgb:android.raw

三、使用rgb2565

Android自带了一个可将raw转换成直接用于显示的RGB数据的工具,在out/host/linux-x86/bin/目录下。其使用格式为:

./rgb2565    *.raw565

比如需要转换android.raw,将android.raw拷贝到out/host/linux-x86/bin/,执行:

./rgb2565    android.raw565

所生成文件(如android.raw565)的后缀无关紧要,可以命名为任何文字。得到的这个文件中的数据,已是可以直接在bootloader中使用的了。这个文件的字节数,应该是原始图片像素的2倍,比如原始图片大小是300 * 200的,那么这里得到的文件大小应该是120000字节。

四、转换成数组

上面已提到,bootloader是将开机画面存放在一个常量数组里面的。第三步已得到可用于显示的RGB数据了;Android还提供一个工具,方便的将这些数据转换成char型数组,它就是xxd。比如,将上述的android.raw565转换成数组格式存放到一个名为android_logo.h的头文件中,执行:

xxd  -i  android.raw565  >  android_logo.h

至此,就可以在bootloader中使用这个logo的数组了。

linux开机动画制作教程,Android开机画面制作(Bootloader阶段)相关推荐

  1. android开机动画视频教程,【Android开机动画制作教程】开机动画文件组成及其详解释疑!...

    [开机动画位置] 安卓原版系统开机动画位置: system/media/bootanimation.zip或者data/local/bootanimation.zip 这两处的区别在于动画放在syst ...

  2. 玩转手机高级篇——最详细的安卓手机开机动画制作教程

    先说开机动画实现原理: Android的动画是由一系列的连续PNG图片作为帧组成的动画形式. 不是合成为一张GIF图片,而是一个文件包,将各帧PNG图片以压缩方式保存. 这个保存的文件名就是boota ...

  3. linux开机动画制作教程,【转载】开机动画的制作过程(bootanimation.zip)

    Android bootanimation 制作过程 这个东西一直想研究,今天无意发现转过来看看 Android bootanimation制作过程: android启动动画需要一个bootanima ...

  4. android开机logo制作工具,Android 开机Logo制作

    1.UBoot logo和kernel logo 找美工制作好指定格式的bmp图片替换到相应的目录就可以了.注意bmp的位深和分辨率 2.android logo 文件desc.txt的内容格式如下面 ...

  5. 安卓手机开机动画制作原理教程

    先说开机动画实现原理: Android的动画是由一系列的连续PNG图片作为帧组成的动画形式. 不是合成为一张GIF图片,而是一个文件包,将各帧PNG图片以压缩方式保存. 这个保存的文件名就是boota ...

  6. Android 之 开机动画制作

    下面介绍下开机动画制作zip包规则 开机动画图片既可以是 jpg 文件,也可以是 png 文件,只是一定要按顺序命名. 文件名命名的国际惯例是五位数,即:dao00000.00001. 00002-- ...

  7. Android开机动画制作注意事项

    细心的小伙伴会发现,不同厂商的android系统开机动画是不一样的,在制作开机动画包过程中总是容易遇到不同问题,这里具体的制作方法就不详细讲解了,直接参考 https://blog.csdn.net/ ...

  8. android开机动画制作与播放原理简介

    android开机动画制作与播放原理简介 谁都想拥有一个华丽漂亮的开机动画,这让人心情舒畅,android是怎么来实现的?怎么制作一个自己的开机动画?这里揭开android开机动画的神秘面纱.

  9. RK3399 Android 8.1 开机动画制作全流程详解

    文章目录 一.开机动画包 二.开机动画图片 三.desc.txt编写规范 四.开机动画临时生效 五.开机动画内置系统 一.开机动画包 N个文件夹和一个desc.txt. 文件夹中是开机动画的图片资源, ...

最新文章

  1. Maqetta源码运行
  2. Linux之systemctl命令的使用
  3. python3精要(28)-filter
  4. PHP stripos strpos,strpos()和stripos()函数的区别
  5. 【LeetCode】3月30日打卡-Day15
  6. python函数递归法求一个数各位数之和_python – 设计一个使用digit_sum计算数字总和的递归函数...
  7. 使用python解析C代码
  8. 数据可视化、模板框架、动态控件、可视化大屏、数据监管、监控平台、图表元件库、数据看板、驾驶舱、统计图表、园区、大屏展示、安防、智慧城市、旅游、健康、医疗卫生、交通、农业、政务、AI、食品、医院、安全
  9. 【5G NR】ZP CSI-RS资源配置
  10. PMP到底有没有什么用?同学有话说
  11. matlab 叉乘变点乘,向量点乘和叉乘
  12. java加密文件夹_怎样用JAVA给文件夹加密,拜求各位大侠!
  13. Excel:INDEX函数与MATCH函数
  14. 如何调用百度和华为的API?
  15. paper—SCI答复审稿人的回信技巧
  16. json格式数据的传值与取值
  17. 操作数据库方法总结1——JDBC、连接池与JDBCTemplate
  18. 【Matlab学习手记】ELM分类
  19. CentOS 7 找回root密码
  20. C/C++ 算法分析与设计:递归(年龄问题)

热门文章

  1. 2015 移动技术白皮书
  2. python使用redis_python如何连接redis
  3. gt; 和 lt; 代表大于号gt; 和小于号lt; 以及其英文的全称
  4. [机器学习] 树模型(xgboost,lightgbm)特征重要性原理总结
  5. 密码技术---分组密码的模式
  6. 机器学习模型上线及优化流程
  7. 2014522420145238《信息安全系统设计基础》实验四
  8. Cocos技术派 | TS版属性面板定义高级用法
  9. TNS-12535,TNS-00505,ORA-3136报错信息处理
  10. java窗口如何定时关闭_[Java教程]【温故而知新】Javascript窗口效果 (全屏显示窗口、定时关闭窗口)_星空网...