android开机logo制作详细步骤_第1页
android开机logo制作详细步骤_第2页
android开机logo制作详细步骤_第3页
android开机logo制作详细步骤_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一去除 embeddedlinux 的开机光标:在内核的当前目录进入到 drivers/video/console/fbcon.c 文件?各 staticvoidfb_flashcursor(void*private)和 staticvoidfbcon_cursor(structvc_data*vc,intmode)里的内容注释掉,使之变成空函数二、Android 开机会出现 3 个画面:1. Linux 系统启动,出现 Linux 小企鹅画面(reboot)(Android1.5 及以上版本已经取消加载图片);2. Android 平台启动初始化,出现ANDRIOD文字字样画面;3. And

2、roid 平台图形系统启动,出现含闪动的 ANDROID 字样的动画图片(start)。4、splash(LK 里跑的 logo)1、开机图片(Linux 小企鹅)(Android1.5 及以上版本已经取消加载图片);LinuxKernel 引导启动后,加载该图片。logo.c 中定义 nologo,在 fb_find_logo(intdepth)函数中根据 nologo 的值判断是否需要加载相应图片。代码如下:staticintnologo;module_param(nologo,bool,0);MODULE_PARM_DESC(nologo,Disablesstartuplogo);/*l

3、ogosaremarked_initdata.Use_init_refoktotell* modpostthatitisintendedthatthisfunctionusesdata* marked_initdata.*/conststructlinux_logo*_init_refokfb_find_logo(intdepth)conststructlinux_logo*logo=NULL;if(nologo)returnNULL;相关代码:/kernel/drivers/video/fbmem.c/kernel/drivers/video/logo/logo.c/kernel/drive

4、rs/video/logo/Kconfig/kernel/include/linux/linux_logo.h(1)让内核支持启动 LOGO在内核目录中 makemenuconfigDeviceDriversGraphicssupport选中 Bootuplogo-Standard224-colorLinuxlogo(2)制作一张启动 LOGO 的 PNG 格式的图片 logo_linux_clut224.png(3)sudoapt-getinstallnetpbm#pngtopnmlogo_linux_clut224.pnglogo_linux.pnm#pnmquant224logo_lin

5、ux.pnmlogo_linux_224.pnm#pnmtoplainpnmlogo_linux_224.pnmlogo_linux_clut224.ppm(4)将 LOGO 文件放入内核中拷贝到制作好的 LOGO 文件到/drivers/video/logo 文件夹替换 logo_linux_clut224.ppm 文件(5)重新编译内核2、开机文字(ANDRIOD)Android 系统启动后,init.c 中 main()调用 10ad_565rle_image()函数读取/initlogo.rle(一张 565rle压缩的位图),如果读取成功,则在/dev/graphics/fb0 显示

6、 Logo 图片;如果读取失败,则将/dev/tty0 设为 TEXT 模式,并打开/dev/tty0,输出文本“ANDRIOD 字样。定义加载图片文件名称#defineINIT_IMAGE_FILE/initlogo.rleintload_565rle_image(char*file_name);#endifinit.c 中 main()力口载/initlogo.rle 文件。if(load_565rle_image(INIT_IMAGE_FILE)/力口载 initlogo.rle 文件fd=open(/dev/tty0,O_WRONLY);/将/dev/tty0 设为 text 模式if

7、(fd=0)constchar*msg;msg=/n/n/n/n/n/n/n/consoleis40colsx30lines/n/n/n/n/n/n/nANDROID;write(fd,msg,strlen(msg);close(fd);)相关代码:/system/core/init/init.c/system/core/init/init.h/system/core/init/init.rc/system/core/init/logo.c*.rle 文件的制作步骤:a.使用 GIMP 或者 AdvancedBatchConverter 软件,将图象转换为 RA 慌式;b.使用 android

8、 自带的 rgb2565 工具,将 RAW&式文件转换为 RLE 格式(如:rgb2565-rleinitlogo.rle)。3、开机动画(闪动的 ANDROID 字样的动画图片)Android1.5 版本:Android 的系统登录动画类似于 Windows 系统的滚动条,是由前景和背景两张 PNG 图片组成, 这两张图片存在于手机或模拟器/system/framework/framework-res.apk 文件当中,对应原文件位于/frameworks/base/core/res/assets/images/。前景图片(android-logo-mask.png)上的 Andro

9、id 文字部分镂空,背景图片(android-logo-shine.png)则是简单的纹理。系统登录时,前景图片在最上层显示,程序代码(BootAnimation.android()控制背景图片连续滚动,透过前景图片文字镂空部分滚动显示背景纹理,从而实现动画效果。相关代码:/frameworks/base/libs/surfaceflinger/BootAnimation.h/frameworks/base/libs/surfaceflinger/BootAnimation.cpp/frameworks/base/core/res/assets/images/android-logo-mask

10、.png 片,文字部分镂空,大小 256X64/frameworks/base/core/res/assets/images/android-logo-shine.pngAndroid 默认的背景图片,有动感效果,大小 512X64Android1.6 及以上版本:init.c 解析 init.rc(其中定义服务:servicebootanim/system/bin/bootanimation),bo6tanim 服务由SurfaceFlinger.readyToRun()(property_set(ctl.start,bootanim);)执行开机动画、bootFinished()(prop

11、erty_set(ctl.stop,bootanim);)执行停止开机动画。BootAnimation.h 和 BootAnimation.cpp 文件放到了/frameworks/base/cmds/bootanimation 目录下了,增加了一个入口文件bootanimation_main.cpp。Android.mk 文件中可以看到,将开机动画从原来的 SurfaceFlinger 里提取Android 默认的前景图出来了,生成可执行文件:bootanimation。Android.mk 代码如下:/=Android.mk=LOCAL_PATH:=$(callmy-dir)include

12、$(CLEAR_VARS)LOCAL_SRC_FILESk/bootanimation_main.cpp/BootAnimation.cpp#need-lrtonLinuxsimulatortopickupclock_gettimeifeq($(TARGET_SIMULATOR),true)ifeq($(HOST_OS),linux)LOCAL_LDLIBS+=-lrtendifendifLOCAL_SHARED_LIBRARIES:=/libcutils/libutils/libui/libcorecg/libsgl/libEGL/libGLESv1_CM/libmediaLOCAL_C_I

13、NCLUDES:=/$(callinclude-path-for,corecggraphics)LOCAL_MODULE:=bootanimationinclude$(BUILD_EXECUTABLE)/=(1)adbshell 后,可以直接运行bootanimation 来重新看开机动画,它会一直处于动画状态,而不会停止。(2)adbshell 后,命令setpropctl.startbootanim 执行开机动画;命令getpropctl.startbootanim”停止开机动画。这两句命令分别对应 SurfaceFlinger.cpp 的两句语句:property_set(ctl.start,bootanim);和 property_set(ctl.stop,bootanim);相关文件:/frameworks/base/cmds/bootanimation/BootAnimation.h/frameworks/base/cmds/bootanimation/BootAnimation.cpp/frameworks/base/cmds/bootanimation/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论