1、开始
bootanimation 是openharmony开机启动动画,也是openharmony图形子系统的一个比较不错的入口点,之前对基础和框架有个大概了解,这章用这个实例做一个把整个流程过一遍。它是一个service,在开机加载service是启动,下面是graphic.rc
service vsync_server /system/bin/vsync_server
class weston
disabled
seclabel u:r:wms_service:s0
service bootanimation /system/bin/bootanimation
class weston
disabled
oneshot
on weston_start
start bootanimation
如下为代码
int main(int argc, const char *argv[])
{
const auto &wmi = WindowManager::GetInstance();
auto wret = wmi->Init();
if (wret != WM_OK) {
LOG("WindowManager::Init() return %{public}s", WMErrorStr(wret).c_str());
return 1;
}
std::vector<struct WMDisplayInfo> displays;
wret = wmi->GetDisplays(displays);
if (wret != WM_OK) {
LOG("WindowManager::GetDisplays() return %{public}s", WMErrorStr(wr

本文深入剖析了鸿蒙系统中的开机动画实现过程,从准备display、解析动画文件到画到屏幕的三个关键步骤。首先通过WindowManager初始化并获取显示屏信息,然后解析bootanimation的.raw文件,最后启动任务并创建窗口将动画绘制到屏幕上。这一流程展示了鸿蒙系统图形子系统的运作机制。
最低0.47元/天 解锁文章
110

被折叠的 条评论
为什么被折叠?



