千里马带你学framework:android 13 WM_SHELL_STARTING_WINDOW相关记录笔记

Android 12之启动画面Splash Screens(二) -- framework原理 本篇介绍Splash Screens的framework层原理。 阅读详情
AI摘要

在调试Android的StartingWindow时,需要启用特定的日志,如WM_SHELL_STARTING_WINDOW。由于在高版本中,StartingWindow功能已移到SystemUI进程中,因此WindowManagerService无法直接处理,需要通过statusbar服务跨进程操作。使用adblogcat-sShellStartingWindow命令才能捕获相关的Proto日志输出。

调试android的StartingWindow时候需要开相关日志:

test@test:~/aosp/frameworks$ adb shell wm logging enable-text  WM_SHELL_STARTING_WINDOW
Loaded 705 log definitions from /system/etc/protolog.conf.json.gz
No IProtoLogGroup named WM_SHELL_STARTING_WINDOW
Not handled, calling status bar with args: [enable-text, WM_SHELL_STARTING_WINDOW]
Starting logging on groups: [WM_SHELL_STARTING_WINDOW]

这里注意,明显用wm开启时候,和正常wm相关的打印输出也是不一样的,明显显示是No IProtoLogGroup named WM_SHELL_STARTING_WINDOW
但是后面又打印要calling status bar with args
即意思是windowmanagerservice处理不了,得statusbar服务来处理

这里是为啥阿,因为高版本StartingWindow已经移殖到了Systemui进程,让Systemui来负责窗口创建相关,所以自然就wms端处理不了,要跨进程让systemui处理

在这里插入图片描述

相当于wms帮我去systemui中打开logging

这个时候logcat -s WindowManager是没有这个shell相关打印,必须要

test@test:~$ adb logcat -s ShellStartingWindow

才可以打印出相关的Proto日志

常用adb命令集锦 adb shell dumpsys activity activities:dump activity相关信息 adb shell dumpsys window windows:dump window相关信息 adb shell dumpsys SurfaceFlinger:dump surface相关信息 adb shell dumpsys meminfo:dump内存相关信息 adb shell dumpsys power:dump power相关信息,输出到本地文件中后搜索Wake Locks关键字即 阅读详情

相关推荐

Android系统卡顿元凶?手把手教你用Systrace分析WM Shell动画泄漏(附真实Log解读)

本文深入分析了Android系统中WM Shell动画泄漏导致的卡顿问题,提供了使用Systrace工具进行诊断的详细方法,并解读了真实案例中的关键日志。文章还分享了优化动画性能、处理动画合并的解决方案,以及预防动画泄漏的编码规范和高级调试技巧,帮助开发者有效解决系统性能问题。

weixin_42531925的博客 415

WMSHELL 架构说明

在Android12之后,系统的ui 处理不断的外放到应用上,自己不再参与ui方面的显示,比如转场动效,decorview, startwindow;而whshell是运行于systemui 下的一个独立的部分。wmshell下存放了所有task的大小,负责多窗交互,悬浮窗管理等。是一个重要的窗口管理中心。我们做多窗开发要熟练掌握wmshell的具体架构及交互方式,这样才能够进行具体的需求实现。

qq_40194645的博客 2714

Android Framework学习路线:从Binder到SystemServer的系统进阶指南

Android系统架构中,应用层与底层之间的桥梁是Framework,它承载着跨进程通信、消息驱动与系统服务调度等关键机制。其中,Binder作为Android核心IPC通信骨架,依靠mmap实现一次拷贝,为应用与系统服务的高效交互提供基础;Handler消息循环则保障了单线程模型下任务的有序执行,是主线程稳定运行的根基。理解这些原理,不仅有助于优化应用性能,更是掌握系统定制与问题定位的前提。从应用启动到视图绘制,从触摸事件分发到画面合成,Framework贯穿始终。本文将结合实际工程视角,系统梳理从Bin

weixin_34209851的博客 352

Android Framework从入门到精通:核心机制与实战路径全解析

在Android系统架构中,Framework层是连接应用与硬件的关键桥梁,也是决定系统性能、稳定性与扩展能力的技术核心。它通过Binder机制实现高效的跨进程通信,由AMS、WMS、PMS等系统服务协同管理组件生命周期、窗口布局与权限校验,同时借助SurfaceFlinger完成图形合成与渲染。理解这些底层原理,能够帮助开发者精准定位应用启动慢、卡顿掉帧、权限异常等疑难问题。无论是进行系统级定制、性能优化还是兼容性适配,掌握Framework的核心脉络都至关重要。本文以一线工程师的视角,梳理了从源码获取、

weixin_34034261的博客 346

Android 14 第三方应用DPI修改:Magisk+Zygisk模块开发实战

在Android开发中,屏幕密度适配是确保应用在不同设备上显示一致性的核心挑战。Android系统通过DisplayMetrics机制管理DPI,应用据此加载对应资源目录并计算界面布局。对于未适配的应用,强制修改其DPI能触发不同的资源加载逻辑,从而优化显示效果,这在多设备测试、ROM定制和高级用户体验优化中具有重要价值。本文聚焦Android 14环境,深入探讨如何通过Magisk与Zygisk模块,结合LSPosed框架,实现对指定第三方应用DPI的动态修改,解决应用界面缩放异常问题,为系统级定制提供稳

weixin_34293246的博客 370

第 24 章:显示系统

是代表一整个逻辑显示器的;在它之下,Android 把窗口组织为容器树。每一个把具备相同特性、处于同一 Z 轴区间的窗口归为一组。文档说明三种类型,保障 Z 轴顺序正确性:BELOW_TASKS:仅可存放 BELOW_TASKS 类型 DisplayArea 以及位于任务下层的 WindowTokenABOVE_TASKS:仅可存放 ABOVE_TASKS 类型 DisplayArea 以及位于任务上层的 WindowToken。

dengfuma的专栏 350

Android 之永乐大典

如下编译脚本逻辑,这里通过DISABLE_DEXPREORT_CHECK宏控来失能是否进行DEXPREOPT优化检测,如果为true则失能,默认需要进行优化检测,通过过滤所有PRODUCT_PACKAGES安装的应用,即先过滤ALL_DEFAULT_INSTALLED_MODULES宏控指定列表里面的应用,然后在过滤DEXPREOPT_SYSTEMSERVER_ARTIFACTS列表中指定的需要dexpreort优化的系统jar。Android DexOpt前世今生:参考。

qq_27672101的博客 1899

AOSP -- 第一章 概述

在 AOSP 开源底层与面向消费者的设备之间,还存在一层厂商定制层。厂商定制界面品牌核心修改内容三星一体界面自定义系统界面、多窗口增强、桌面模式、诺克斯安全体系、S Pen 手写笔适配、自研相机架构小米MIUI / 澎湃 OS重度定制界面、自研桌面、控制中心、安全应用、应用双开功能OPPO / 一加色彩 OS / 氧 OS自定义息屏显示、桌面负一屏、禅定模式、定制图库与相机谷歌像素原生体验材质你动态取色主题、像素专属桌面、张量芯片专属优化、像素独占功能华为EMUI / 鸿蒙。

dengfuma的专栏 288

AOSP 13 AMS 源码分析

继承/实现作用对外 Binder 接口,供 App / Framework 调用参与 system_server 死锁检测标记自身为全局锁对象。

weixin_39788742的博客 327

Android 系统渲染架构知识图谱

一份系统级 Android 渲染架构全景图谱:从 App 层的 View 绘制、DisplayList 录制,到 Framework 层的 WMS/SurfaceFlinger/HWUI,再到底层的 Gralloc/HWC/DRM-KMS 完整链路。涵盖 BufferQueue 机制、VSync 调度、Triple Buffering、合成策略演进、性能指标与调试工具链。一张图串联触摸到像素的全流程。

gyuong的专栏 42

DevExpress VCL 26.1.3安装实战与Delphi桌面开发效率提升指南

在Delphi桌面开发中,组件库的选择直接影响企业级管理系统的构建效率。DevExpress VCL作为商业级VCL控件集,通过封装复杂表格、报表、Ribbon界面等底层逻辑,让开发者从重复造轮子中解放出来,专注于业务实现。其安装配置看似简单,实则涉及IDE版本匹配、环境清理、设计期包注册等关键环节。本文从组件库的技术价值出发,梳理DevExpress VCL的完整安装流程与验证方法,剖析cxGrid、dxRibbon、cxTreeList等核心控件的功能定位,并延伸至FireMonkey跨平台、PDA扫码

weixin_34203832的博客 453

Android Input事件分发全链路解析:从硬件中断到MotionEvent

Input事件是Android交互体验的底层基石,其本质是将硬件产生的原始输入信号(如触摸、按键)经内核驱动、HAL层、Native服务、Java框架,最终转化为应用可处理的MotionEvent或KeyEvent。该过程涉及Linux input子系统、InputReader事件采集、InputDispatcher窗口路由、ViewRootImpl跨进程投递及View体系分发等核心机制。理解其五层架构与时间敏感性(如16ms采样周期、VSYNC对齐),对解决触摸延迟、手势冲突、ANR及定制化输入行为(如游

weixin_33842304的博客 227

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 275

安卓启动流程与期间核心组件工作原理

本文以实际工作中出现的启动相关各种千奇百怪的bug为钩子,讲解了安卓app冷启动过程中核心组件的工作原理,pms -> packageParser/androidmanifest.xml -> context -> ams -> application -> activity -> layoutInflater资源加载过程 -> wms /window/WM -> view与viewgroup绘制原理 -> 渲染阶段。理供解决问题的思路,看业务框架代码能看懂他们改的哪块源码,跟他们扯皮能扯赢

mix39的博客 337

RV1106G3的AOV下的yolov5调试记录

本文介绍了基于LuckFoxPicoMax开发板的RV1106芯片调试经验,重点包括AOV(Always-On Vision)和Yolov5目标检测的实现。在硬件方面,板载1TOPS NPU、256MB内存,并更换为SPI NOR存储。软件调试涉及MK配置文件修改、设备树调整(按键唤醒和sensor配置)以及程序自启动设置。Yolov5模型优化为320*320尺寸,推理时间约45ms。系统采用VI采图与AI识别通过共享内存通信的方案,实测功耗在20-35mA范围。文章还指出了当前存在的功耗优化、ISP调试等

fzktongyong的博客 1714

爬虫君子协议-robots.txt协议

文章目录一.定义二.用法 一.定义 robots协议是一种约定俗称的爬虫协议,由网站主人规定了该网站的哪些内容可以爬取,哪些内容不可以爬取,擅自爬取可能承担相关法律责任。之所以称之为君子协议,是因为防君子不防小人,该协议并没有用技术手段实现反爬,只是一个申明。 在网站根目录后输入/robots.txt后即可查看该网站的君子协议 例如访问https://www.douban.com/robots.txt可查看豆瓣网站的君子协议 查看结果如下 User-agent: * Disallow: /subject_

Henrik-Yao的博客 7614

第 4 章:开机与 Init 进程

阶段 1:上电(ROM 代码)按下电源键后,片上系统(SoC)开始执行内部掩膜 ROM 中的代码。掩膜 ROM 是芯片出厂时烧录的一小段不可修改代码。该 ROM 代码初始化最基础硬件(时钟发生器、内存控制器),从固定存储位置(通常是 eMMC/UFS 引导分区起始位置)加载主引导加载程序,并将控制权转交。该阶段完全由厂商实现,不属于 AOSP。阶段 2:引导加载程序(ABL/U‑Boot)引导加载程序是首个设备间存在差异的软件组件。

dengfuma的专栏 419

CoaXPress协议入门(1)---- CXP测试套件

CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的Camera Link协议,常见于科学相机、工业相机、医学图像、航空防务等场景。CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。CXP易于集成,可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格(推荐使用RG6),并且图像、控制通讯、触发、电源都可以使用同一条线缆。

素手挽剑 9514

AOSP 16 Winscope ViewCapture编译与实战指南

Android View调试是Framework层开发的核心能力,涉及View树结构、渲染流程、跨进程UI协同等底层机制。Winscope作为AOSP原生可视化调试服务,其ViewCapture特性实现了帧级对齐的实时View快照捕获、跨进程View树拼接与动态属性注入,显著提升SystemUI、Launcher等系统应用的卡顿归因与性能优化效率。该能力依赖AOSP构建体系深度集成,需匹配OpenJDK 17、正确ABI配置及平台签名,且ViewCapture功能默认关闭,必须通过Android.bp、An

weixin_34159110的博客 356

ROS2通过ros2_socketcan实现CAN总线高效数据过滤与多节点通信

本文详细解析了ROS2通过ros2_socketcan实现CAN总线高效数据过滤与多节点通信的技术方案。文章重点探讨了CanFilterList的工作原理、多过滤器组合使用及动态配置策略,有效解决了工业应用中CAN总线数据过载问题,显著降低了CPU负载并提升了系统实时性。

n4o5p6q7r的博客 215

BUG调试案例一:RK3588+YT8531网络无法PING通调试案例

在使用 RK3588 搭配 YT8531S PHY 芯片进行网络调试时,遇到了“网络无法 Ping 通”的棘手问题。排查了两天,终于找到问题原因。为了避免大家在类似项目中走弯路,也为了加深自己对调试细节的理解,我们特意整理了本次问题的完整排查过程。本篇文章将围绕以下四个方面展开分享: 问题现象&描述 调试过程&分析 问题根源定位 注意事项提醒 举一反三(走两步)

案例文章,高速信号 2336

GSY GitHub App Flutter 手工回归矩阵实战指南:主链路覆盖、事件识别与自适应导航冒烟验证

本篇技术指南基于仓库中的 [docs/04-quality/smoke-matrix.md](https://link.gitcode.com/i/11b47ee26b79b53830b5e543b28328c6) 展开,系统讲解该项目在缺少自动化测试基线的现实约束下,如何以一份最小可执行的手工回归矩阵守住最容易因局部改动而回归的主链路。文章完整继承矩阵中的功能域划分、用例清单、重点观察项与执行原

gitblog_00995的博客 96

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

WM Shell多动画场景处理

Track是一组连续且按顺序执行的transitions,如果一个transition与所有其他的transition并行(在动画就绪时),那么他将被分配一个新的track。然而,对于真正独立的transitions,他们的动画可以独立的运行。READY 及之后的生命周期按“track”进行管理,在一个track中,所有动画都按描述的方式进行排序,一个track内,一次只能有一个transition处于active状态;如果它不与他们重叠,它可以并行动画,在这种情况下,它将被分配一个新的track。

xiaoyantan的博客 2308

一文快速教你如何下载国自然模版

5. 成功进入“相关文件查看”页面后,点击左侧的“项目申请文件“,如果你此次申请的是“面上项目”,选择对应的下拉框,找到对应的模版下载即可。6. 🫑们发现,在当前页面点击“青年科学基金项目”,左侧出现的是“原国家杰出青年科学基金项目”。7. 进入下一页后,点击“青年科学基金项目”,便可以在右侧找到🫑们要找的模版啦。2. 成功登陆后,点击1处的“首页”,在首页界面,再点击2处的“项目批准”。8. 点击上图3处的“文件详情”,就可以找到可以下载的模版啦(如下图)。3. 从“项目批准”进入后,点击“管理”。

薰珞婷紫小亭子的博客 2399

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: android车机手机黑屏闪黑终结者-Winscope工具使用介绍
下一篇: Window-animation总结
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值