openharmony bootanimation

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值