Android開機動畫

2021-06-26 03:05:07 字數 2676 閱讀 3392



開機動畫(

閃動的android

字樣的動畫

)/android 

2.2版本:

su***ceflinger

systemserver

啟動分為

init1()

和init2()兩個階段,在

init1

階段獲取屬性欄位system_init.startsu***ceflinger

,如果字段值為

1,那麼就在這裡啟動

su***ceflinger:

//@frameworks\base\cmds\system_server\library\system_init.cpp

char propbuf[property_value_max];

property_get("system_init.startsu***ceflinger", propbuf, "1");

if (strcmp(propbuf, "1") == 0) 

su***ceflinger構造函式呼叫

readytorun

函式,至於為什麼會呼叫

readytorun

函式(並沒有顯式的呼叫語句),主要是因為

su***ceflinger

是乙個執行緒類,必須實現並會呼叫如下兩個函式:一是

readytorun()

,該函式定義了執行緒迴圈前需要初始化的內容;二是

threadloop()

,每個執行緒都必須實現,該函式定義了執行緒執行的內容,如果該函式返回

true

,執行緒會繼續呼叫

threadloop()

,如果返回

false

,執行緒將退出。

su***ceflinger:

readytorun函式用於初始化整個顯示系統。

實現過程如下:

(1)執行

new displayhardware(this,dpy)

,通過displayhardware

初始化framebuffer

、egl

並獲取opengl es

資訊。  (2

)建立共享的記憶體控制塊。  (3

)將egl

與當前螢幕繫結。  (4

)初始化共享記憶體控制塊。  (5

)初始化

opengl es。 

(6)顯示開機動畫。

其中顯示開機動畫是啟動init..rc

中的bootanim

服務,語句如下:

//@framework\base\libs\su***ceflinger\su***ceflinger.cpp

property_

set("

ctl.start

", 「

bootanim」);

停止開機動畫業在

su***ceflinger

:bootfinished()中:

//@framework\base\libs\su***ceflinger\su***ceflinger.cpp

property_

set("

ctl.stop

", 「

bootanim」);

bootanim

相關檔案:

system/core/init/init.c

system/core/rootdir/init.rc

frameworks/base/cmds/bootanimation/bootanimation.h

frameworks/base/cmds/bootanimation/bootanimation.cpp

frameworks/base/cmds/bootanimation/bootanimation_main.cpp

frameworks/base/core/res/assets/images/android-logo-mask.png frameworks/base/core/res/assets/images/android-logo-shine.png 

init.rc中定義服務:

「service bootanim /system/bin/bootanimation」。

bootanim服務由

readytorun()

(property_set("ctl.start", "bootanim");

)執行開機動畫

;bootfinished()(

property_set("ctl.stop", "bootanim");

)執行停止開機動畫。

(1)adb shell

後,可以直接執行

「bootanimation」

來重新看開機動畫,它會一直處於動畫狀態,而不會停止。(2)

adb shell

後,命令

「setprop ctl.start bootanim」

執行開機動畫;命令

「getprop ctl.st

op bootanim」停止開機動畫。這兩句命令分別對應

su***ceflinger.cpp

的兩句語句:

property_set("ctl.start", "bootanim");

和property_set("ctl.stop", "bootanim");

android 開機動畫

製作android 開機動畫,打包好之後一直黑屏,串列埠列印 e bootanimation descmap is null 十分鬱悶。後來才發現是因為打包的時候沒有直接選中檔案打包,導致打包之後的檔案裡面帶有了一層資料夾 稍微記錄一下製作過程吧 首先把弄好,在bootanimation資料夾下建立...

製作android開機動畫

開機時共分兩部分,開機logo和開機動畫 準備1 核心部分 第一階段靜態顯示,要求一張 png 格式 滿足機器要求解析度 單張不大於 100kb。靜態顯示時間 5 秒左右 2 android 部分 第二階段靜態顯示,要求一張 png 格式 滿足機器要求 解析度 單張不大於 100kb。靜態顯示時間 ...

修改Android開機動畫

1 準備幾張 的解析度最好和機器的解析度一樣。命名最好是有序的,如0000 0001 0002 2 建立資料夾與檔案 建立part0 part1 兩個檔案和desc.txt乙個檔案 1280 800 1 p 1 0 part0 p 0 0 part1 3 打包 把第二步的資料夾和檔案放到linux環...