当前位置: 首页 > news >正文

Android开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

文章目录

  • Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

路径frameworks/base/cmds/bootanimation/bootanimation_main.cpp

init进程把我们的BootAnimation的二进制文件拉起来了,

从进程的main方法入手

在这里插入图片描述

bootAnimationDisabled判断开机动画有没有被禁止。

bootAnimationDisabled为false就是能看到开机动画。进入if条件,

ProcessState::self()->startThreadPool();启动一个线程池,用来初始化一些binder跨进程通信的一些属性,绘制图形都需要依赖waitForSurfaceFlinger();,要等SurfaceFlinger进程启动了开机动画才有用,

看下构造方法做了什么

在这里插入图片描述

mSession = new SurfaceComposerClient();binder调用的一个代理对象,主要是跨进程通信和 SurfaceFinger,

判断开关机的一个属性

std::string powerCtl = android::base::GetProperty("sys.powerctl", "");if (powerCtl.empty()) {mShuttingDown = false;} else {mShuttingDown = true;}

sp是一个智能指针,如果有sp这个东西就会有对应的下面的这个类,,就会执行这个类。

void BootAnimation::onFirstRef() {status_t err = mSession->linkToComposerDeath(this);SLOGE_IF(err, "linkToComposerDeath failed (%s) ", strerror(-err));if (err == NO_ERROR) {// Load the animation content -- this can be slow (eg 200ms)// called before waitForSurfaceFlinger() in main() to avoid waitALOGD("%sAnimationPreloadTiming start time: %" PRId64 "ms",mShuttingDown ? "Shutdown" : "Boot", elapsedRealtime());preloadAnimation();ALOGD("%sAnimationPreloadStopTiming start time: %" PRId64 "ms",mShuttingDown ? "Shutdown" : "Boot", elapsedRealtime());}
}

Bootanimation继承自Thread类

在这里插入图片描述

先会执行readyToRun,然后执行threadLoop

在这里插入图片描述

在这里插入图片描述

mDisplayToken = SurfaceComposerClient::getInternalDisplayToken();if (mDisplayToken == nullptr)return -1;DisplayInfo dinfo;status_t status = SurfaceComposerClient::getDisplayInfo(mDisplayToken, &dinfo);if (status)return -1;

获取屏幕信息之后,直接跟SufaceFinger通信的一个control

// create the native surfacesp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),dinfo.w, dinfo.h, PIXEL_FORMAT_RGB_565);

control构建一个画布。主要是和SufaceFinger通信。

初始化opengl

在这里插入图片描述

开机动画路径

在这里插入图片描述

在这里插入图片描述

static const char OEM_BOOTANIMATION_FILE[] = "/oem/media/bootanimation.zip";
static const char PRODUCT_BOOTANIMATION_DARK_FILE[] = "/product/media/bootanimation-dark.zip";

我们的开机动画主要走这个方法

在这里插入图片描述

检查退出

在这里插入图片描述

设置一个开机动画退出的属性,值为1就是退出。

在这里插入图片描述

用命令可以搜索一下它这个属性在什么地方会被设置为1

在这里插入图片描述

在WMS中

在这里插入图片描述

相关文章:

Android开机动画的结束过程BootAnimation(基于Android10.0.0-r41)

文章目录 Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) Android 开机动画的结束过程BootAnimation(基于Android10.0.0-r41) 路径frameworks/base/cmds/bootanimation/bootanimation_main.cpp init进程把我们的BootAnimation的二进制文件拉起来了&#xf…...

微软远程连接工具:Microsoft Remote Desktop for Mac 中文版

Microsoft Remote Desktop 是一款由微软开发的远程桌面连接软件&#xff0c;它允许用户从远程地点连接到远程计算机或虚拟机&#xff0c;并在远程计算机上使用桌面应用程序和文件。 下载地址&#xff1a;https://www.macz.com/mac/5458.html?idOTI2NjQ5Jl8mMjcuMTg2LjEyNi4yMz…...

【安规介绍】

文章目录 一、基础知识安规上的六类危险的防护&#xff1a;安全电压漏电流接触电流能量问题&#xff1a;火灾问题&#xff1a;热问题结构问题阻燃等级绝缘等级&#xff1a;对接地系统的要求&#xff1a;结构要求:电气要求&#xff1a; 二、设计的关键电气绝缘距离电气爬电距离:…...

[sylar]后端学习:配置环境(一)

1.介绍 基于sylar大神的C高性能后端网络框架来进行环境配置和后续学习。网站链接&#xff1a;sylar的Linux环境配置 2.下载 按照视频进行下载&#xff0c;并进行下载&#xff0c;并最好还要下载一个vssh的软件。可以直接在网上搜索即可。 sylar_环境配置&#xff0c;vssh下…...

XDMA原理及其应用和发展

XDMA原理 XDMA的主要原理是通过直接访问主机内存&#xff0c;实现数据的快速传输。在传统的DMA&#xff08;Direct Memory Access&#xff09;技术中&#xff0c;数据传输需要经过CPU的干预&#xff0c;而XDMA可以绕过CPU&#xff0c;直接将数据从外设读取到主机内存或者从主机…...

携程梁建章:持续投资创新与AI,开启旅游行业未来增长

5月30至31日&#xff0c;携程集团在上海和张家界举办Envision 2024全球合作伙伴大会&#xff0c;邀请超50个国家和地区的1600余名外籍旅游业嘉宾与会&#xff0c;共同探讨中国跨境旅游市场发展机遇&#xff0c;讲好中国故事。 携程国际业务增速迅猛&#xff0c;创新与AI解锁未…...

【网络安全的神秘世界】在win11搭建pikachu靶场

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…...

基于Java的零食管理系统的设计与实现(论文+源码)_kaic

摘 要 随着科技的进步&#xff0c;以及网络的普及&#xff0c;都为人们的生活提供了极大的方便。因此&#xff0c;在管理”三姆”宿舍在线零食商店时&#xff0c;与现代的网络联系起来是非常必要的&#xff0c;本次设计的系统在研发过程中应用到了Java技术&#xff0c;这在一定…...

【案例实操】银河麒麟桌面操作系统实例分享,V10SP1重启后网卡错乱解决方法

1.问题现象 8 个网口&#xff0c; 命名从 eth1 开始到 eth8。 目前在系统 grub 里面加了 net.ifnames0 biosdevname0 参数&#xff0c; 然后在 udev 规则中加了一条固定网卡和硬件 pci 设备号的规则文件。 最后在 rc.local 中加了两条重新安装网卡驱动的命令&#xff08; rmmod…...

初级前端开发岗

定位&#xff1a; 日常任务的辅助执行者&#xff0c;前端基础建设的参与者。 素质要求&#xff1a; 是否遵循部门敏捷流程、规范、P0制度&#xff1b;具备良好的沟通和协作能力;负责日常迭代任务的落地执行;拥有较强的执行力&#xff0c;能够灵活解决问题; 职责&#xff1a…...

颠仆流离学二叉树2 (Java篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…...

柏林自由大学研究团队《Ecology Letters 》揭示AMF在植物对全球变化响应的作用

全球环境变化正在影响陆生植物生长。植物已经进化出各种策略来应对这些挑战&#xff0c;其中之一是与丛枝菌根真菌(AMF)形成共生关系(高达80%的陆生植物物种)。AMF为寄主植物提供各种益处&#xff0c;例如营养吸收、耐受性、食草动物防御和抗病能力&#xff0c;以换取糖和脂质(…...

libevent源码跨平台编译(windows/macos/linux)

1.windows编译: 克隆: git clone https://github.com/libevent/libevent.git 克隆成功 生成makefile 生成成功 默认不支持OpenSSL,MbedTLS,ZLIB这三个库 编译: cmake --build . --config release...

idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)

文章目录 新建一个项目添加web支持配置tomcat优化tomcat的部署运行tomcatidea数据库连接java连接数据库 新建一个项目 new project&#xff1b;Java&#xff1b;选择jdk的版本&#xff1b;next&#xff1b;next&#xff1b;填写项目名字&#xff0c;选择保存的路径&#xff1b;…...

LeetCode 每日一题 2024/5/27-2024/6/2

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/27 2028. 找出缺失的观测数据5/28 2951. 找出峰值5/29 2981. 找出出现至少三次的最长特殊子字符串 I5/30 2982. 找出出现至少三次的最长特殊子字符串 II5/31 2965. 找出缺…...

BOOST_SREATCH

BOOST Boost是一个由C社区开发的开源库&#xff0c;为C语言标准库提供扩展。这个库由C标准委员会库工作组成员发起&#xff0c;旨在提供大量功能和工具&#xff0c;帮助C开发者更高效地编写代码。Boost库强调跨平台性和对标准C的遵循&#xff0c;因此与编写平台无关&#xff0…...

MySQL学习——获取数据库和表格的信息

如果忘记了数据库或表的名称&#xff0c;或者不确定给定表的结构&#xff08;例如&#xff0c;其列的名称&#xff09;&#xff0c;该怎么办呢&#xff1f;MySQL通过几个语句解决了这个问题&#xff0c;这些语句提供了有关它支持的数据库和表的信息。 你之前已经看过SHOW DATA…...

Go语言redis框架 — go-redis

https://zhuanlan.zhihu.com/p/645669818 一、简述 1. API友好&#xff0c;命令名称和参数与Redis原生命令一致&#xff0c;使用简单方便。 2. 支持完整的Redis命令集&#xff0c;覆盖了字符串、哈希、列表、集合、有序集合、HyperLogLog等数据结构。 3. 支持连接池&#x…...

C++ | Leetcode C++题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPalindrome(string s) {int n s.size();int left 0, right n - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left;}while (left < right && !isalnu…...

Spring创建对象的多种方式

一、对象分类 简单对象&#xff1a;使用new Obj()方式创建的对象 复杂对象&#xff1a;无法使用new Obj()方式创建的对象。例如&#xff1a; 1. AOP创建代理对象。ProxyFactoryBean; 2. Mybatis中的SqlSessionFactoryBean; 3. Hibernate中的SessionFactoryBean。二、创建对象方…...

深学邦内容语料价值(腾讯旗下AI助手元宝)分析:A-(优秀级垂直信源)

评估机构&#xff1a;元宝&#xff08;由腾讯出品&#xff09; 评估方式&#xff1a;基于腾讯知识库语料筛选模型与垂直领域可信度评估体系 报告日期&#xff1a;2026年3月 一、评估背景与核心逻辑 作为腾讯旗下的通用型AI助手&#xff0c;我的知识库覆盖全领域文本数据。 …...

开源吐槽大会:从抱怨到贡献的进化之路

开源项目吐槽大会&#xff1a;技术文章大纲技术背景与吐槽文化开源社区的协作模式与挑战 吐槽文化的价值&#xff1a;促进改进与社区互动 典型案例&#xff1a;知名项目的争议与改进常见吐槽点分析代码质量与可维护性问题 文档缺失或过时 社区响应速度与维护者态度 版本迭代与兼…...

Simulink Test实战:从需求创建到测试结果分析的完整流程指南

Simulink Test实战&#xff1a;从需求创建到测试结果分析的完整流程指南 在汽车电子和航空航天领域&#xff0c;模型开发与测试已成为产品研发的核心环节。Simulink Test作为MathWorks提供的专业测试工具&#xff0c;能够帮助工程师高效完成从需求管理到测试验证的全流程工作。…...

conda创建环境报错repodata.json failed?手把手教你更换国内镜像源(2024最新)

Conda环境创建报错repodata.json失败&#xff1f;2024年国内镜像源配置全攻略 最近在帮团队新来的实习生配置开发环境时&#xff0c;遇到了一个经典问题——conda创建环境时卡在"Collecting package metadata (repodata.json)"这一步&#xff0c;要么报错要么无限等待…...

小白程序员必看:收藏这份RAG大模型核心技术原理详解,轻松入门智能Agent

1. 核心流程全景图RAG 的生命周期可以严格划分为两个平行的工作流&#xff1a;离线数据处理流&#xff08;Data Pipeline&#xff09; 和 在线检索生成流&#xff08;Query Pipeline&#xff09;。RAG 核心工作流 1.1 离线数据处理流&#xff08;Data Ingestion&#xff09; 这…...

论文被吐槽逻辑乱?,有哪些真正实测靠谱的的降AI率平台推荐?

毕业论文降AI率&#xff0c;优先选语义重构 逻辑优化 去AI痕迹的工具&#xff0c;免费与付费结合更高效。下面按中文、英文、免费/付费分类推荐&#xff0c;附实测效果与适用场景。 一、中文论文降重工具&#xff08;最常用&#xff09; 1. 千笔AI&#xff08;综合全能首选&a…...

单片机死循环设计与中断机制解析

1. 单片机程序为何需要死循环设计第一次接触单片机编程时&#xff0c;很多初学者都会对main()函数里那个看似"不合理"的while(1)死循环产生疑问。我当年在实验室调试第一个51单片机项目时&#xff0c;也曾向导师提出过同样的问题。经过这些年的项目实践&#xff0c;我…...

WPF装饰器(Adorner)的妙用:打造可交互的矩形标注控件(附避坑指南)

WPF装饰器实战&#xff1a;构建智能矩形标注控件的完整指南 在图像处理、数据标注或UI设计工具中&#xff0c;矩形标注功能几乎是标配需求。想象一下这样的场景&#xff1a;用户双击图片生成标注区域&#xff0c;通过拖拽调整位置&#xff0c;自由缩放大小&#xff0c;所有操作…...

听说读写画样样精通!美团开源LongCat-Next,给物理世界AI统一了语言

美团刚刚开源了最强原生多模态模型LongCat-Next&#xff0c;将物理世界AI的语言统一了。LongCat-Next模型能听&#xff0c;能说。比如语音问答&#xff0c;或者让它用指定音色说话&#xff0c;能读能写&#xff08;视觉理解和推理&#xff09;&#xff0c;还能画画和设计&#…...

手把手教你用CH32V208开发板实现蓝牙BLE5.3通信(附完整工程源码)

基于CH32V208开发板的蓝牙BLE5.3实战开发指南 在物联网设备爆发式增长的今天&#xff0c;低功耗蓝牙&#xff08;BLE&#xff09;技术因其低功耗、低成本的优势&#xff0c;成为短距离无线通信的首选方案之一。作为一款集成了BLE5.3模块的RISC-V微控制器&#xff0c;CH32V208为…...