学员作业:高阶WMS显示相关疑难问题黑屏/部分黑问题案例

RK3572-Android16-记录一次OTA升级失败解决方案 这里记录一次解决RK3576 Android16 OTA 用Recovery 升级失败的一次解决案例,将部分经验作为总结。本次OTA升级耗时了几天,最终是RK给出的解决方案,再加上经验来解决了其它部分问题新平台,高一点的Android版本,可能本身有bug,多请教平台来,不要蒙着干,干不出来的。 阅读详情

背景:

针对自由窗口相关需求,学员们在学习了课程后,也经常使用会用于公司的实战开发项目。但是近来也有学员朋友在群里反馈一个关于自由窗口显示的一个疑难问题,大概就是关于自由窗口进入后会出现画面有部分黑的情况:

下面学员请教的详细情况
在这里插入图片描述

刚开始还以为这个自由窗口产生部分黑的问题和以前课程讲的一样,但是学员认真观看后反馈两个问题场景是完全不一样的。

在这里插入图片描述
学员也给出了相关自由窗口部分黑的问题复现步骤。

有了aosp可以复现的步骤,那么这个问题其实本质上就是aosp的原生问题,大家一旦修复那就是帮助google改了相关的重大bug哈,很多同学都对这类原生的疑难问题修改,非常感兴趣,当然啦这个难度肯定也是最大的,所以这里把这个疑难问题整理成学员作业,让广大vip学员们可以有更好的实战解决问题锻炼。

学员作业:

复现问题情况:

1、基于aosp14的源码环境

2、自由窗口需要设置成alwaysOnTop模式,让一直显示在最顶端(具体设置方式马哥自由窗口专题课程有讲解)

3、首次从桌面的最近任务进入自由窗口
在这里插入图片描述
第一次进入是正常的
在这里插入图片描述

4、点击自由窗口全屏按钮,再次进入全屏
在这里插入图片描述

5、再次重复步骤3,进入到自由窗口

重复后会出现如下黑屏现象

在这里插入图片描述

学员作业要求相关
该问题分析和解决需要波及的知识点:
a.Winscope工具等分析窗口显示等黑屏,部分黑的技能

b.需要对wms/ams的代码部分比较熟悉

c.需要额外ShellTransition专题课程相关的知识

完成作业的要求:

1、分析出部分黑直接原因

2、对比分析出为啥没有设置alwaysOnTop情况就是正常,一旦设置了就会黑

3、为啥第一次进入自由窗口模式是正常的,第二次进入就是部分黑屏

3、找出根本原因后,尝试一个修改方案

更多framework实战开发,或者需要跟踪后续作业的实现答案,请关注下面“千里马学框架”

NMS非极大值抑制算法原理 NMS非极大值抑制算法 阅读详情

相关推荐

当预编译包失效时:手把手教你在Nvidia Orin (JetPack 5.1.1) 上源码编译onnxruntime-gpu

本文详细指导在Nvidia Orin (JetPack 5.1.1) 上源码编译onnxruntime-gpu的全流程,解决预编译包兼容性问题。涵盖环境准备、工具链配置、源码编译、常见问题解决及性能优化技巧,帮助开发者在边缘计算设备上实现高效AI模型推理。

weixin_29062823的博客 135

aosp15/14 窗口动画ShellTransition深入实战专题剖析

最新版本安卓aosp15 分支r3总计30课时以上有android相关基础知识,android framework相关基础知识的人群,适合安卓系统工程师,窗口相关工程师要进行提高的,或者企业里面经常要解决一些显示类疑难问题如:闪屏,闪黑,黑屏等人群。课程知识收益1、最新的aosp15代码的ShellTransition相关内容的深入剖析2、深入理解同步刷新等机制及相关的作用3、aosp15版本winscope相关的高级用法,分析显示类问题高级技巧。

liaosongmao1的专栏 254

400G光模块测试全攻略:从PCS层到CMIS合规的避坑指南

本文为网络设备测试工程师和光通信研发人员提供了一份详尽的400G光模块测试实战指南。文章深入剖析了从PCS层信号完整性、FEC容限到CMIS管理接口合规性测试的全流程,并分享了ANLT协议分析、SerDes眼图调试以及系统级流量压力测试中的核心技巧与常见避坑点,旨在帮助读者构建一套高效、精准的测试体系,确保高速光模块的可靠性与性能。

weixin_29300931的博客 211

安卓Framework wms/ams实战作业布置-千里马学框架

2、如果当前应用在后台(注意一定要在后台,不能在前台),使用adb shell 命令进行kill进程发现只有应用的WindowState在结构树被移除,其他的ActivityRecord,Task就没有被移除。哈哈,确实平时没注意这个现象,看到他描述的这个结果有点意外,主要不影响上面运行,属于安卓自己设计机制,所以与我们想象的一旦进程都被杀了,那么层级结构树肯定不可以残留相关的Task和ActivityRecord。

learnframework的博客 1512

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南)

本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。

weixin_29094979的博客 132

命令行删除描述文件_写一个删除lock文件的skill脚本

来源:IC技能搬运工 作者:小目Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。文件是如何被锁的Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。一般情况下如果文件被正常关闭,这个lock文件会在...

weixin_39781452的博客 1352

安卓冻屏bug案例作业分享-千里马学员wms+input实战作业

近期有学员反馈在aosp14高版本上有了一个新窗口TaskBar,这个但是有需求就是对这个TaskBar进行隐藏,所以有一个需要对这个TaskBar进行进行隐藏需求。因为要实现一个对TaskBar隐藏需求功能,所以这里需要先实现这个需求,正因为实现这个需求后才发现可以复现这个冻屏问题。2、分析出来了冻屏原因,再考虑怎么屏蔽TaskBar就会用法该bug,为啥TaskBar存在就不会有该bug。这里普通的手机是无法看到TaskBar,需要进行相关density进行设置,变成平板设备才可以。

learnframework的博客 922

代谢组学数据分析实战:用R语言从PCA、PLS-DA到OPLS-DA一步步搞定(附代码)

本文详细介绍了使用R语言进行代谢组学数据分析的全流程,从数据预处理到PCA、PLS-DA和OPLS-DA模型构建与验证。通过实际案例和代码示例,帮助研究者掌握关键分析技术,提升数据解读能力,特别适合生命科学领域的研究人员。

weixin_28689507的博客 133

WMS/AMS 层级结构树学习

本文摘要: Android窗口管理系统(WMS)通过层级树结构管理窗口显示,核心机制包括:1) WindowToken作为窗口身份凭证,用于权限校验和分组管理;2) findAreaForToken方法确定窗口在层级树中的位置;3) mAreaForLayer数组实现快速层级映射;4) Policy规则定义不同类型窗口的层级分配。整个过程类比摩天大楼管理:新窗口需先获取Token"通行证",根据类型分配到指定"楼层",通过预置映射表快速定位显示位置。WindowTok

John_5256的博客 415

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2806

YOLOv11目标检测模型性能评价指标详解,涉及混淆矩阵、F1-Score、IoU、mAP、参数量、计算量等,一文打尽所有评价指标

本文主要讲解的是计算机视觉网络模型的性能评价指标,这是每一篇论文中都需要展示的内容。熟悉每一个评价指标也能够帮助我们在训练和改进模型过程中,更好的观察模型的变化效果。

Limiiiing的博客 8411

aosp15 shelltransition之桌面点击启动app部分-systemserver部分

上面startActivityUnchecked中主要有3个部分和transition相关步骤这里transitionController.createAndStartCollecting(TRANSIT_OPEN)就是创建出对应的Transition核心重点就是startCollecting方法这里主要看看mSyncEngine.startSyncSet方法总结一下transitionController.createAndStartCollecting干的事情。

learnframework的博客 1526

华为Ascend C算子开发能力认证(中级)(个人记录,有完整代码,已通过认证,仅供参考)

本文介绍了在昇腾NPU环境下实现Sigmoid算子的完整流程。首先需要在华为云ModelArts-Notebook或开发者套件上搭建环境,要求CANN版本为8.0.0.beta1。主要内容包括:1)实现SigmoidCustom算子的kernel侧核函数代码;2)完成host侧Tiling结构体实现;3)支持Float16数据类型。代码实现部分详细展示了核函数计算流程、数据拷贝和牛顿迭代优化方法。最后介绍了编译部署流程,包括环境配置、代码上传、编译执行等步骤,并提供了提交规范说明。该实现通过调用Ascend

qq_73044452的博客 1107

千里马直播通知:高阶WMS显示相关疑难问题自由窗口/黑屏/部分黑问题案例

有了aosp可以复现的步骤,那么这个问题其实本质上就是aosp的原生问题,大家一旦修复那就是帮助google改了相关的重大bug哈,很多同学都对这类原生的疑难问题修改,非常感兴趣,当然啦这个难度肯定也是最大的,所以这里把这个疑难问题整理成学员作业,让广大vip学员们可以有更好的实战解决问题锻炼。针对自由窗口相关需求,学员们在学习了课程后,也经常使用会用于公司的实战开发项目。刚开始还以为这个自由窗口产生部分黑的问题和以前课程讲的一样,但是学员认真观看后反馈两个问题场景是完全不一样的。下面学员请教的详细情况。

learnframework的博客 568

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

系统窗口黑屏疑难问题:aosp14自由窗口界面多次退出黑屏问题

从aosp14开始很多窗口相关的动画都开始使用ShellTransition了,针对自由窗口这块的学习如果是基于aosp14版本的话,可能就会遇到相比aosp13版本上多出一些疑难问题,这些问题有的是必现有的是偶现,今天给各位vip学员们分享一个高概率偶现的疑难问题作业,有给各位学员们增加了一个实战机会。4、退出自由窗口后,桌面又进行点击图库进入自由窗口模式,反复进行若干次操作就可以高概率复现如下现问题。4、对于整个黑屏问题的解决过程中,发现有哪些是比较低效的,对于这块黑屏问题的提效有啥好的建议。

learnframework的博客 498

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

aosp15的窗口过渡动画ShellTransition相关的核心类整体介绍(1)

这里ShellTransition其实可以变成两部分,一个Shell和Transition,这里Shell大家可以简单认为代表是WMShell,而Transition就是普通的过渡的意思,这里Transition和以前的AppTransition中的Transition其实没有任何差别哈,都可以简单认为其实是一种App跳转的一种过渡,只不过差别如下:AppTransition 整体都是在system_server进程自己独立完成,但是ShellTransition一般的。

learnframework的博客 2123

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WMS实战之解决小米等国内桌面被强制横屏布局乱问题

所以就不得不跟着横屏显示。国内手机桌面基本不支持横屏,都是强制竖屏模式,所以对横屏基本没有适配对应的布局,所其实这些桌面是不希望看到有横屏情况展示出来,但是经常又会又一些小场景会导致桌面被强制横屏,所以看起来的体验比较差,就经常容易让测试提bug,用户体验也很糟糕。2、桌面支持横屏显示,这个理论是可以的,但是也不太现实,因为桌面横屏修改等需要波及面还是比较多的,很多都是业务类工作,工作量较大,而且也只是为了修改一个这个体验性bug,性价比低。那下面千里马就带大家开干,,把这个显示异常bug修复了。

learnframework的博客 3097

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

这里是为啥阿,因为高版本StartingWindow已经移殖到了Systemui进程,让Systemui来负责窗口创建相关,所以自然就wms端处理不了,要跨进程让systemui处理。这里注意,明显用wm开启时候,和正常wm相关的打印输出也是不一样的,明显显示是No IProtoLogGroup named WM_SHELL_STARTING_WINDOW。这个时候logcat -s WindowManager是没有这个shell相关打印,必须要。才可以打印出相关的Proto日志。

learnframework的博客 2307

Android 开发入门实践(二):Kotlin 空安全,从可空类型到安全访问

延续 NewsApp 项目中的新闻标题练习,记录 Kotlin 安全调用。

Easyhood的博客 288

Android 模块化收口:能力组合框架、手写 LifecycleOwner 与热修复共存

二十多个模块业务高度相似却各有差异,核心矛盾在于“统一与灵活”的平衡。通过角色接口组合(如IProjectAware、IVoiceAware)实现能力按需注入,新增功能零侵入;用模板方法锁定生命周期流程,确保顺序一致;结合@CallSuper与工厂方法,既约束关键逻辑,又保留子类自由。最终实现:骨架统一、填空自由,管得住业务,又不侵入业务。

mmsx990的博客 397

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 324

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 201

安卓部署Linux性能实测:一颗移动处理器,能否胜任日常 Linux 开发?

本文通过在一加Ace5上部署NimoteCode的ARM64 Linux环境,测试了其在CoreMark、SQLite编译及并行构建中的表现。结果显示,尽管单核性能约2.34GHz,多核扩展比达6.15×,但优化编译耗时仍高达35秒,反映移动处理器虽具备一定开发能力,却受限于文件系统开销与运行环境(如PRoot)。实际开发中,非优化构建效率较高,而并行编译可显著提速。结论:安卓手机可作为轻量级开发辅助工具,但无法替代桌面环境,真正价值在于便携性与即时响应,而非全功能替代。

一个不知名码农的专栏 322

Android 17 全栈性能分析关键字与源码手册

FrameTimeline 找异常帧,ATrace 找阶段,thread_state 找等待类型,ftrace 找内核原因,Simpleperf 找 CPU 热点,驱动源码找最终触发条件;任何根因结论都必须回到同一对象、同一时间窗口和同一条依赖链。

weixin_43228946的博客 371

CTF 命令执行题学习笔记:终端特殊字符 $IFS 与 %09 的用法(HelloCTF RCE-labs)

空格被过滤时:用%09(TAB)或$IFS代替空格关键词被过滤时:用通配符?或字符类[f]拼出被禁的词,让 WAF 在原始字符串里看不到它,shell 在执行时再展开这类技巧在后续的命令执行题里会反复用到,建议亲手在靶机上敲一遍感受一下。

YY888888_的博客 542
上一篇: 学员作业:如何让车载CarLauncher的TaskView正常运行于手机系统?
下一篇: 如何解决AndroidStudio自带的LayoutInspector工具无法抓取到布局/StatusBar布局如何抓?
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

千里马学框架

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

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

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

打赏作者

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

抵扣说明:

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

余额充值