修改Android開機圖片、動畫、聲音
阿新 • • 發佈:2019-01-28
二、修改第二張圖片
方法一:
在window下的操作:
1 在 Widows 環境中建立資料夾:bootanimation
2 在bootanimation資料夾中建立子資料夾:
part0
part1
然後將一批.png檔案拷貝到資料夾part0裡面,part1中暫時不放圖片檔案
3 在 bootanimation 資料夾中建立文字檔案:
desc.txt
可能在desc.txt中寫如下資訊(注,該檔案是google定義的,可在網上搜索得到):
1024 600 10
p 1 0 part0
p 0 0 part1
檔案 desc.txt 的內容解釋:
(1)解析度
1024 600
第一行”1024 600”:表示機器螢幕解析度width height
(2)幀率
第一行”10”:表示每秒中播放10張圖片(gong 10zhang )
(3)p 1 0 part0
p:表示play
1:表示播放一遍,如果是0則表示迴圈播放
0:表示延時時間
part0:此資料夾下放置開機顯示的動畫圖片,圖片解析度要和機器解析度一樣,否則顯示會有問題
(4)p 0 0 part1
在part0的圖片都顯示完畢後,就顯示part1中的圖片
4 在資料夾 bootanimation 內,同時選擇“part0, part1, desc.txt”,然後壓縮
(在Linux下壓縮:zip -r -X -Zstore ../bootanimation.zip part*/*.png desc.txt)
壓縮的設定如下:
(a)壓縮檔名:bootanimation.zip
(b)壓縮檔案格式:ZIP
(c)壓縮方式:儲存
5 將前面生成的bootanimation.zip拷貝到工程中
$ cd device/samsung/ut4412/apk
$ mkdir app_newpad
注:將生成的bootanimation.zip檔案拷貝到資料夾app_newpad中
6 編輯 device.mk
$ vi device/samsung/ut4412/device.mk
##################################
# copy proprietary apk
##################################
COPY_APK_TARGET := $(call all-apk-files-under,apk)
PRODUCT_COPY_FILES += $(foreach apkName, $(COPY_APK_TARGET), \
$(addprefix $(LOCAL_PATH)/apk/, $(apkName)):$(addprefix system/app/, $(apkName)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/flashplayer.nm:system/app/flashplayer.nm
# 新增以下資訊
# 注意路徑的一致性
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/app_newpad/bootanimation.zip:system/media/bootanimation.zip
方法二:
android開機動畫叫原始碼位於frameworks/base/cmds/bootanimation下,這個程式會將/data/local/bootanimation.zip
或/system/media/bootanimation.zip裡面的png圖片以動畫的形式播放出來。
首先,我們先來分析一下原始碼:frameworks/base/cmds/bootanimation/BootAnimation.cpp
首先看一下定義的常量:
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
BootAnimation::readyToRun()
進入一個if判斷語句
if ((encryptedAnimation &&
(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE) == NO_ERROR)) ||
((access(USER_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(USER_BOOTANIMATION_FILE) == NO_ERROR)) ||
((access(SYSTEM_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(SYSTEM_BOOTANIMATION_FILE) == NO_ERROR))) {
mAndroidAnimation = false;
}
BootAnimation::threadLoop()
if (mAndroidAnimation) {
r = Android(); // 執行android字型閃動的圖片
} else {
r = movie(); // 執行bootanimation.zip中提供的動畫圖片
}
==> BootAnimation::Android()會載入"images/android-logo-mask.png"和"images/android-logo-shine.png"
==> BootAnimation::movie()會載入bootanimation.zip中的內容
我們下載的原始碼裡預設是沒有那些個.zip動畫的,所以總會跳到android字型閃動的畫面
所以如果你係那個用.zip的動畫那麼把你做好的動畫拷貝到編譯好對應的目錄下即可,然後執行make snod整合進img包就可以看到效果了
如果你想修改android閃動的那兩張圖片的話,最簡單的方法是直接替換圖片,如果你懂openGL的話也可以自己做酷炫的動畫
那兩張圖片放在./frameworks/base/core/res/assets/images 目錄下,一張鏤空的android圖,一張發光效果,動畫效果就是下面那張發光的效果圖不斷左右移動。
我是用Photoshop直接修改的
修改完後直接替換,然後再 mmm frameworks/base , make snod 即可
方法一:
在window下的操作:
1 在 Widows 環境中建立資料夾:bootanimation
2 在bootanimation資料夾中建立子資料夾:
part0
part1
然後將一批.png檔案拷貝到資料夾part0裡面,part1中暫時不放圖片檔案
3 在 bootanimation 資料夾中建立文字檔案:
desc.txt
可能在desc.txt中寫如下資訊(注,該檔案是google定義的,可在網上搜索得到):
1024 600 10
p 1 0 part0
p 0 0 part1
檔案 desc.txt 的內容解釋:
(1)解析度
1024 600
第一行”1024 600”:表示機器螢幕解析度width height
(2)幀率
第一行”10”:表示每秒中播放10張圖片(gong 10zhang )
(3)p 1 0 part0
p:表示play
1:表示播放一遍,如果是0則表示迴圈播放
0:表示延時時間
part0:此資料夾下放置開機顯示的動畫圖片,圖片解析度要和機器解析度一樣,否則顯示會有問題
(4)p 0 0 part1
在part0的圖片都顯示完畢後,就顯示part1中的圖片
4 在資料夾 bootanimation 內,同時選擇“part0, part1, desc.txt”,然後壓縮
(在Linux下壓縮:zip -r -X -Zstore ../bootanimation.zip part*/*.png desc.txt)
壓縮的設定如下:
(a)壓縮檔名:bootanimation.zip
(b)壓縮檔案格式:ZIP
(c)壓縮方式:儲存
5 將前面生成的bootanimation.zip拷貝到工程中
$ cd device/samsung/ut4412/apk
$ mkdir app_newpad
注:將生成的bootanimation.zip檔案拷貝到資料夾app_newpad中
6 編輯 device.mk
$ vi device/samsung/ut4412/device.mk
##################################
# copy proprietary apk
##################################
COPY_APK_TARGET := $(call all-apk-files-under,apk)
PRODUCT_COPY_FILES += $(foreach apkName, $(COPY_APK_TARGET), \
$(addprefix $(LOCAL_PATH)/apk/, $(apkName)):$(addprefix system/app/, $(apkName)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/flashplayer.nm:system/app/flashplayer.nm
# 新增以下資訊
# 注意路徑的一致性
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/apk/app_newpad/bootanimation.zip:system/media/bootanimation.zip
方法二:
android開機動畫叫原始碼位於frameworks/base/cmds/bootanimation下,這個程式會將/data/local/bootanimation.zip
或/system/media/bootanimation.zip裡面的png圖片以動畫的形式播放出來。
首先,我們先來分析一下原始碼:frameworks/base/cmds/bootanimation/BootAnimation.cpp
首先看一下定義的常量:
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
BootAnimation::readyToRun()
進入一個if判斷語句
if ((encryptedAnimation &&
(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE) == NO_ERROR)) ||
((access(USER_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(USER_BOOTANIMATION_FILE) == NO_ERROR)) ||
((access(SYSTEM_BOOTANIMATION_FILE, R_OK) == 0) &&
(mZip.open(SYSTEM_BOOTANIMATION_FILE) == NO_ERROR))) {
mAndroidAnimation = false;
}
BootAnimation::threadLoop()
if (mAndroidAnimation) {
r = Android(); // 執行android字型閃動的圖片
} else {
r = movie(); // 執行bootanimation.zip中提供的動畫圖片
}
==> BootAnimation::Android()會載入"images/android-logo-mask.png"和"images/android-logo-shine.png"
==> BootAnimation::movie()會載入bootanimation.zip中的內容
我們下載的原始碼裡預設是沒有那些個.zip動畫的,所以總會跳到android字型閃動的畫面
所以如果你係那個用.zip的動畫那麼把你做好的動畫拷貝到編譯好對應的目錄下即可,然後執行make snod整合進img包就可以看到效果了
如果你想修改android閃動的那兩張圖片的話,最簡單的方法是直接替換圖片,如果你懂openGL的話也可以自己做酷炫的動畫
那兩張圖片放在./frameworks/base/core/res/assets/images 目錄下,一張鏤空的android圖,一張發光效果,動畫效果就是下面那張發光的效果圖不斷左右移動。
我是用Photoshop直接修改的
修改完後直接替換,然後再 mmm frameworks/base , make snod 即可