Android 入门 - 定制开机画面

本文将简单介绍如何快速定制Android开机画面,关键之处会给出一些源代码的分析。本文假定:
内核源代码目录:/Volumes/android-kernel/source/goldfish
Android源代码目录:/Volumes/android/source

一、开机画面的简单介绍

网上有许多资料都提到,Android设备的开机画面分为三个画面,即:Linux内核Logo,Android启动Logo,Android动态画面。经过研究分析,Android设备默认只显示Android动画,那么如何显示内核Logo和启动Logo呢?和两条编译配置有关:
  1. CONFIG_FRAMEBUFFER_CONSOLE:打开该配置选项,就可以显示Android启动Logo。但出现问题:默认情况下是Android文字和Android动画交替闪烁。
  2. CONFIG_LOGO:打开该配置选项,并且CONFIG_FRAMEBUFFER_CONSOLE也开启的情况下,可以显示内核Logo。此项无问题。
这样的情况下,制作出来的Android内核不只是在启动时出现闪烁,而且运行后也会么一直这么闪烁,本文后面将介绍如何解决这个问题。

二、定制内核Logo

内核Logo默认是一个Linux企鹅图标,该图标只支持224种颜色,图标格式为:ppm。在Android内核源代码中的路径为:drivers/video/logo/logo_linux_clut224.ppm。所以,我们只需要替换此图标,则重新编译即可。

2.1、安装netpbm工具

Mac OSX下没有直接生成PPM格式图片的工具,可用netpbm转换。要安装netpbm工具,请先安装MacPorts,本文不描述如何安装和使用MacPorts,可在网上搜索安装和使用教程。
# sudo port selfupdate
# sudo port install netpbm
		
sudo port selfupdtae是让MacPorts先自我更新,sudo port install netpbm安装netpbm。

2.2、PPM图片转换

将预先做好的图片(假定为:MyLinux.png),转换为logo_linux_clut224.ppm格式:
# pngtopnm MyLinux.png > logo_linux_clut.pnm
# pnmquant 224 logo_linux_clut.pnm > logo_linux_clut224.pnm
# pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
# cp logo_linux_clut224.ppm /Volumes/android-kernel/source/goldfish/drivers/video/logo/
		

2.3、配置

许多教程中描述了使用makemenuconfig来定制CONFIG_FRAMEBUFFER_CONSOLE和CONFIG_LOGO两个变量,这是一种方法,但在Mac环境中,makemenuconfig不能正常运行,总是出现ncurses的相关库找不到,折腾了很久之后,放弃使用make menuconfig。
还有一种方法是使用make config,但这种方法要按N次回车,并仔细对比选项,太费事了。这里介绍一种快速的方法:
在编译内核的时候,我们使用了make goldfish_armv7_defconfig来配置的,只要将该默认配置修改一下,加入上面两个配置项至这个默认配置中,重新运行即可。命令如下:
# cd /Volumes/android-kernel/source/goldfish
# vi arch/arm/configs/goldfish_armv7_defconfig
		
在文件末尾加入:
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
		

按 wq 保存退出。

2.4、去掉光标

开启FRAME_BU
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值