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

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

背景:

近期有学员反馈在aosp14高版本上有了一个新窗口TaskBar,这个但是有需求就是对这个TaskBar进行隐藏,所以有一个需要对这个TaskBar进行进行隐藏需求
在这里插入图片描述

隐藏TaskBar需求做了之后发现有如下bug:
冻屏问题复现图

问题复现步骤:

因为要实现一个对TaskBar隐藏需求功能,所以这里需要先实现这个需求,正因为实现这个需求后才发现可以复现这个冻屏问题。
普通模拟器需要看到TaskBar
这里普通的手机是无法看到TaskBar,需要进行相关density进行设置,变成平板设备才可以
一般aosp14_r15编译lunch sdk_phone_x86_64后起来后需要再执行一下命令才可以变成平板的显示模式。

adb shell wm density 240

执行后画面变成如下:
在这里插入图片描述

修改隐藏TaskBar
只需要TaskbarActivityContext中对mDragLayer进行隐藏,patch如下

test:~/disk2/aosp14/packages/apps/Launcher3$ git diff quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index a1390aeabb..b3bf3dc283 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -17,6 +17,7 @@ package com.android.launcher3.taskbar;
 
 import static android.content.pm.PackageManager.FEATURE_PC;
 import static android.os.Trace.TRACE_TAG_APP;
+import static android.view.View.GONE;
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
 import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
@@ -294,6 +295,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
         } else {
             mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams);
         }
+       mDragLayer.setVisibility(GONE);
     }
 
     /**

问题复现步骤
1、设备切换成导航手势模式
2、打开一个短信应用
3、导航手势慢慢上滑一点点距离,然后松开手势不上滑,就可以复现冻屏问题

作业要求

整个作业要求完成以下几个部分,可以按照实现部分得分

1、要求分析出冻屏的原因是什么,为什么画面变得无法触摸

2、分析出来了冻屏原因,再考虑怎么屏蔽TaskBar就会用法该bug,为啥TaskBar存在就不会有该bug

3、给出修改方案,实现屏蔽TaskBar依旧不会产生冻屏问题

更多framework详细代码和资料参考如下链接
投屏专题部分:

https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

参考相关链接:
https://blog.csdn.net/zhimokf/article/details/137958615

更多framework假威风耗:androidframework007


http://www.kler.cn/a/355406.html

相关文章:

  • 【GO环境安装】mac系统+GoLand使用
  • 0.96寸OLED显示屏详解
  • 24.12.23 注解
  • C#在自定义事件里传递数据
  • Cline 3.0发布:从AI编程助手到通用智能体平台的进化
  • stm32制作CAN适配器5--WinUsb上位机编写
  • 浙江省普通话水平测试教程PDF教材电子版(修订版)
  • Android OpenGL天空盒
  • tracert和ping的区别
  • R语言机器学习算法实战系列(八)逻辑回归算法 (logistic regression)
  • 安装和简单使用Milvus
  • protues仿真STM32时,配置管脚为上拉输入时,检测不准确
  • 成都睿明智科技有限公司电商服务可靠不?
  • 发送邮件:530 Login fail. A secure connection is requiered(such as ssl)
  • 基于SSM党务政务服务热线管理系统的设计
  • proxy代理机制和工作原理,reactive是怎么通过proxy实现响应式的
  • 嵌入式职业规划
  • 2024年科技赋能教育,AI辅导引领新趋势
  • Java实现文件上传功能
  • UE5 猎户座漂浮小岛 02 模型 地形
  • vue3如何运用组合式写法,封装表格列表请求数据的逻辑
  • 【Router】路由器中NAT、NAPT、NPT是什么?
  • [Vue3核心语法] ref、reactive响应式数据
  • 补题:J. Robot Factory
  • 2025选题推荐|基于微信小程序的高校就业招聘系统
  • NumPy 数组操作:从入门到精通