Android开机画面的具体修改方法_Android

制作开机Logo
 方法一:
 Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译
 具体方法:Netpbm
 #pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm
 #pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm
 #pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
 注:先把png转换成pnm格式,但内核的Logo最高只支持224色,需要把颜色转换成224色,最后把pnm转成ppm,文件名必须是logo_linux_clut224.ppm。
 方法二:
   用RedHat9.0自带的图片编辑工具GIMP(其他发行版自己安装就行了)。
   1.将颜色数改为224(在GIMP中一次选择 图像->模式->索引。如下图所示)。
   2.调整大小:宽高都小两像素,否则不显示。
   3.另存为,保存为ppm格式,在弹出的对话框中选择Ascii,然后复制到Logo文件夹替换原来的文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件。

   Android系统开机动画包括两部分:
   开机显示的 ANDROID 文字;
   ANDROID发光动画。
   这篇文章说的开机动画是第一种,下面开始正文!
   1. 制作当前屏幕像素的图片(模拟器默认为320*480)
使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png
    注:好像只支持png-24,其他格式生成的rle文件显示不正常,有兴趣大家可以再验证一下。
   2. 将图片转换为raw格式
 使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
   convert -depth 8 android_logo.png rgb:android_logo.raw
    注:ubuntu 10.04 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
   sudo apt-get install imagemagick
   3. 将raw格式转化为rle文件
 需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
rgb2565 -rle < android_logo.raw > initlogo.rle
   到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:
#define INIT_IMAGE_FILE "/initlogo.rle"
  ============================================================================================
   下面需要将initlogo.rle加入的android文件系统中
   4. 找到ramdisk.img文件(android/out/target/product/generic/ramdisk.img),将文件名改为ramdisk.img.gz,然后使用下面的命令解压:
gunzip ramdisk.img.gz
解压后得到ramdisk.img,可能有人要问,怎么文件名又改回去了?其实不然,使用file ramdisk.img查看一下就知道了:
 解压前:ramdisk.img: gzip compressed data, from Unix
解压后:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
跑题了,还是说正事儿。
   5. 使用cpio提取文件:
 新建一个temp目录:
mkdir temp
 cd temp
 cpio -i -F ../ramdisk.img
   6. 导出文件列表:
cpio -i -t -F ../ramdisk.img > list     
   注:list是一个文本文件,里面存储了ramdisk.img的文件结构,我们需要在这个文件中加入initlogo.rle这一行,修改后的文件如下:
data
    default.prop
    dev
    init
    init.goldfish.rc
    init.rc
    initlogo.rle
   proc
    sbin
    sbin/adbd
    sys
    system

 7. 生成ramdisk.img
 cpio -o -H newc -O ramdisk.img < list
   注:根据list文件的描述,生成ramdisk.img文件
   8. 用ramdisk.img覆盖sdk目录下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先备份一下。
   9. 启动模拟器,就可以看到我们自己做的的开机界面了。

  ------------------------------------------------------------------------------------------------------------------

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

 开机第二屏(android字样)
 1、选张320*480分辨率的图
 2、将图转换成raw,用Advanced Batch Converter工具即可
 3、虚拟机android\out\host\linux-x86\bin目录下执行
   ./rgb2565 -rle <android_logo.raw> initlogo.rle
 4、将initlogo.rle放置到android\out\target\product\sdkDemo\root下即可
    如果不放置 则显示的是源码init.C init.c.bak里
 5、make firmware
 6、全部重烧

 开机第一屏(Linux企鹅图样)
 1、选张png格式的图片,在Linux下执行:
 # pngtopnm logo.png > logo_linux.pnm
 # pnmquant 224 logo_linux.pnm > logo_linux_clut224.pnm
 # pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm
 将生成的ppm拷贝到drivers\video\logo目录下
 如果想要修改菜单配置  可以在kernel目录下执行make menuconfig
 进Device Drivers
 进Graphics Support
 进Bootop logo
 进standard 224-clor Linux logo选择性加入图片

U-boot开机logo的制作方法
 

  在有实现LCD显示和LCD命令行终端的U-boot中,在左上角都有显示一个logo,如果是atmel的芯片,就会有atmel的logo,三星的则是denx的logo。
   有的网友发邮件说想改成自己公司的Logo,而且如果是自己玩的话,改成自己喜欢的logo也爽阿。所以今天我做好了实验,将简单的修改方法总结如下:

--------------------------------------------------------------------------------
一、图片的放置路径
 

  所有的开机logo都放在了 /tools/logos 之下,你只需要将你的班子作对应的logo替换就好了。
 

  对于S3C2440,你只需要将denx.bmp替换成你想要的logo就好了。
 

  对于ATMEL的芯片,据说会显示ATMEL的logo,所以替换那个logo即可。
 

  但是你所替换的logo必须和原来的大小、格式一模一样,否则会出现u-boot使用过程中宕机重启的后果。

二、图片的大小标准

不同的logo对应不同的大小,这里S3C2440所对应的是160*96分辨率的BMP图片。

三、图片的转换脚本

  在制作图片前,请您现确认您的Linux主机上安装了Netpbm 工具包。如果是ubuntu,你可以直接用新立得安装;如果是别的发行版,可以在 Netpbm主页 下载源代码编译。
 

     将你想要的图片裁减成160*96的JPG图片,然后用以下的脚本处理一下就好了:

  #!/bin/sh
 #install Netpbm first
     jpegtopnm $1 | ppmquant 31 | ppmtobmp -bpp 8 > $2

使用方法: (脚本名) ( 待处理的JPG图片名) (输出文件名)

时间: 2024-10-30 23:13:49

Android开机画面的具体修改方法_Android的相关文章

Android开机画面的具体修改方法

制作开机Logo 方法一: Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译 具体方法:Netpbm #pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm #pnmquant 224 logo_linux_c

Android开机自启动服务的实现方法_Android

android实现开机自启动可能是移动操作系统中最简单的了,我们只需要监听一个开机启动的Broadcast(广播)即可.首先写一个Receiver(即广播监听器),继承BroadcastReceiver,如下所示: view source print? 复制代码 代码如下: public class BootReceiver extends BroadcastReceiver { private PendingIntent mAlarmSender; @Override public void

Android实现的状态栏定制和修改方法_Android

本文实例讲述了Android实现的状态栏定制和修改方法.分享给大家供大家参考.具体如下: 大家都知道定制在android开发中的重要性,因为通过定制,你才能制造出差异化的产品,才能满足更多消费者的需求, 像HTC生产的手机都通过了深层次的二次开发,今天我也来分享一下我的状态栏定制. 废话不说了,直接上图: 主要更换了背景,文字颜色以及icon的显示顺序. 2. 关键代码部分 a) 代码在系统中的位置 status bar 的相关代码位于:frameworks/base/services/java

Android编程实现TCP客户端的方法_Android

本文实例讲述了Android编程实现TCP客户端的方法.分享给大家供大家参考,具体如下: 因为项目上需要实现一个TCP Client 端:在网上找好多例子基本上都是阻塞方式完成: 我的实现例子:由Activity 及sever 来实现,在sever 创建一个线程来监听接受数据.收到数据,通过广播发送给Activity; 服务端我没有去实现,你可以下载TCP Socket 调试工具v2.2:创建个9005端口:客户端:访问的IP为10.0.2.2 AnetTest.java: /** * Copy

android编程实现图片库的封装方法_Android

本文实例讲述了android编程实现图片库的封装方法.分享给大家供大家参考,具体如下: 大家在做安卓应用的时候 经常要从网络中获取图片 都是通过URL去获取 可是如果本地有图片数据 从本地获取数据不更加快一些 自己在工作中遇到这个问题 所以采用了一个URL和本地图片的一个映射关系 先从本地区获取 假如本地没有再从网络中获取 本方法考虑到多线程问题 欢迎大家一起共同探讨! public class PictureLibrary { /* * 图片库的操作 */ File file; URL url

Android调用系统默认浏览器访问的方法_Android

一.启动android默认浏览器 这样子,android就可以调用起手机默认的浏览器访问. 二.指定相应的浏览器访问 1.指定android自带的浏览器访问 ( "com.android.browser":packagename :"com.android.browser.BrowserActivity":启动主activity) Intent intent= new Intent(); intent.setAction("android.intent.a

Android应用读取Excel文件的方法_Android

本文实例讲述了Android应用读取Excel文件的方法.分享给大家供大家参考,具体如下: ReadExcel.java文件: public class ReadExcel extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)

Android实现中文按拼音排序方法_Android

本文的需求是将一组数据按某一字段中文拼音排序,分享给大家Android实现中文按拼音排序方法,供大家参考,具体内容如下1.Test测试类: PinyinComparator comparator = new PinyinComparator(); Collections.sort(strList, comparator); 其中strList中放置了数据,可以是任何对象,但要对PinyinComparator中的compare进行对应的修改,我Demo中为String[]. 2.PinyinCo

android实现添加耳机状态图标的方法_Android

本文实例讲述了android实现添加耳机状态图标的方法.分享给大家供大家参考.具体如下: 原生态的android系统是没有耳机插入或未插入的状态指示的,本文就是讲解如何添加耳机插入的状态指示.效果图如下 如图,当插入耳机后,在status bar上出现了一个耳机的图标. 这个耳机的图标和sim卡信号等图标在status bar的右边,因此这个实现肯定不是通过notification实现的,那么添加这个功能只能在framwork里面寻找了.具体的修改步骤如下: 1.在frameworks/base