編輯:關於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圖片名) (輸出文件名)
前言 最近有個項目有關於播放音樂時候,關於歌詞有以下幾個功能: 1、實現歌詞同步滾動的功能,即歌曲播放到哪句歌詞,就高亮地顯示出正在播放的這個歌詞; 2、實現
1. 何為1G/ 2G/ 3G/ 4G技術1.1. G代表什麼?G代表Generation的簡稱,有代的意思。1G代表作是大哥大,采用通信標准是模擬制式,只能進行語音通話
Pausing and Resuming an Activity 暫停和恢復一個activityThis lesson teaches you to 這節課教給你Paus
1、Context說明 Context是一個用於訪問全局信息的接口,如應用程序的資源(如圖片,字符串等),一些常用的組件繼承自Context,如Activity和Serv