重学安卓14/15自由窗口freeform企业实战bug-学员作业

android自由窗口freeform模式的实现 freeform模式默认关闭,一些手机厂商开启了此功能,模拟器没有开启。 adb shell settings put global enable_freeform_support 1 adb shell settings put global force_resizable_activities 1 Intent intent = new Intent(MainActivity.this, FreeFormActivity.class); i 阅读详情

背景:

在aosp14版本及以后版本上,安卓的自由窗口部分的工具栏部分都有了较大的更新
在这里插入图片描述
工具栏这部分已经移到了SystemUI进程的WMShell进行统一的管理。
但是近来有学员朋友在对自由窗口进行相关的拖拽操作时候,有遇到这个工具栏相关的一个bug,刚好aosp上面也确实可以复现,这里就拿出来分享给各位学员朋友,刚好可以拿来尝试练手,从而巩固在aosp14/15上自由窗口相关的实战经验。

bug现象展示:

复现版本:
aosp15验证,当然aosp14应该也可以
复现步骤:
1、最近任务中启动自由窗口

2、选中右下角频繁进行相关拖拽放大缩小自由窗口

视频如下:
在这里插入图片描述
细心同学可以已经看到了相关的问题所在的,当然不认真看可能比较难看出来,这里取出有问题的相关帧如下:
明显看到上面的工具栏的大小在拖拽过程中和自由窗口Activity的宽度不一样大了,看起来就有错位现象,抓取出其中一帧有问题的看看。

在这里插入图片描述

作业要求:

上面的bug

1、基于所学知识大概猜测出问题原因

2、实战使用Winscope等分析工具定位出直接原因

3、源码中寻找到问题点,并进行相关方案修改

修改该问题必备相关的知识:
1、课程的freeform相关知识

2、课程的Winscope的相关

3、课程的ShellTransition相关知识

更多framework实战干货,请关注下面“千里马学框架”

解锁Android隐藏功能:Freeform自由窗口模式的终极配置指南(含系统API调用) 本文深入解析了Android系统隐藏的Freeform自由窗口模式,提供了从系统级启用到应用级调用的完整配置指南。通过ADB命令或系统API调用,开发者可以解锁这一功能,实现类似桌面操作系统的多窗口体验,并详细介绍了使用反射启动Activity、处理兼容性问题以及构建启动器应用的实战方法。 阅读详情

相关推荐

Android自由窗口Freeform模式的深度解析与实战应用

本文深入解析了Android自由窗口Freeform模式的实现原理与实战应用。从系统架构到核心代码实现,详细介绍了如何开启和配置Freeform模式,以及其在多任务处理中的优势。文章还提供了兼容性解决方案和用户体验优化建议,帮助开发者充分利用这一功能提升工作效率。

weixin_29306011的博客 260

Mi-Freeform与原生Android自由窗口对比:为什么选择第三方方案?

在Android多任务处理的世界里,自由窗口功能已经成为提升工作效率的关键工具。如果你正在寻找比原生Android自由窗口更强大的多任务解决方案,那么Mi-Freeform绝对值得你的关注!这款第三方自由窗口软件支持从Android 8.1到Android 13的广泛系统版本,为用户带来了前所未有的多任务体验。🚀 ## 什么是Mi-Freeform? Mi-Freeform是一款Androi

gitblog_00566的博客 403

Android freeform多窗口模式和Desktop电脑模式使能

Android freeform多窗口模式和Desktop电脑模式使能

月山知了的博客 3450

Android Freeform模式

Android N引入了Multi-Window, Freeform自由窗口模式是其中的一种。自由窗口模式下可以实现窗口的可以自由缩放,自由移动。 1. Freeform功能开启 Android原生版本没有开启Freeform功能,ActivityManagerService中定义是否支持freeform模式,可以看到有两种方式来开启Freeform,一种是通过system feature定义

kavin_ma的博客 2万+

解锁Android自由形态:Freeform多窗口与Desktop模式的实现与优化

本文深入探讨了如何解锁Android系统的Freeform多窗口模式与Desktop桌面模式,实现类似PC的自由窗口管理与大屏生产力体验。文章详细解析了系统窗口管理原理,并提供了通过开发者选项与ADB命令开启这两种模式的实战步骤、优化技巧及常见问题解决方案,帮助用户充分释放Android设备的多任务潜力。

c6d7e8f9g的博客 289

android全局悬浮窗口可拖动

android全局悬浮窗口可拖动android全局悬浮窗口可拖动android全局悬浮窗口可拖动android全局悬浮窗口可拖动

android framework实战开发之WINDOWING_MODE_FREEFORM自由窗口相关

aosp默认并没有公开自由窗口模式,如果需要体验自由窗口模式必须要用如下命令进行开启输入完成后,可以在多任务的menu中发现freeform:点击这个freeform按钮即可以进入到自由窗口模式。

learnframework的博客 5149

android9多窗口下载.doc

笔记

android freeform模式定制桌面系统

本文基于android9.0来写的。 一、产品需求:如下图,类似mac的桌面系统 (1)区域1是系统标题栏。 (2)区域2是长显示的窗口。 (3)区域3 普通app显示的窗口。 (4) 区域4 也是一个上显示的窗口,主要用于应用的点击启动。 二、下图是根据Android系统特性画的草图: (1)区域1是系统statusBar。 (2)区域2是长显示的窗口,用WindowMana...

yiwuxue的专栏 1万+

NC数据预处理避坑指南:从MATLAB读取到GeoTIFF导出,解决坐标翻转与值域异常

本文详细解析了NC数据预处理中的常见问题,包括MATLAB读取时的坐标翻转与GeoTIFF导出时的值域异常。通过实战案例,介绍了如何解决矩阵方向错乱、处理FillValue与scale_factor、精准移植空间参考等关键问题,帮助研究者高效完成气象数据的批量处理与GIS兼容性验证。

weixin_30788619的博客 654

AIGC在游戏行业的应用:革新游戏开发与体验

AIGC(人工智能生成内容)技术正在深刻改变游戏行业,从开发到体验全面革新。在游戏开发中,AIGC可用于自动生成关卡、角色和剧情,提升开发效率;在资源制作中,通过AI生成场景、角色模型等,降低成本。

1665

手机大厂的自由窗口freeform功能基于aosp14/安卓14适配完成-千里马android framework实战开发

近期有个马哥学员刚好求助马哥一个关于以前马哥课程里面自由窗口项目,这个项目在android 13上做的,但是他们公司是aosp14,希望我能帮忙尽快升级到14。今年2023年已经块过去了,各个手机厂商已经开始适配aosp14,甚至有的是已经适配完成,明年市场就大部分手机出厂就都是android 14了。马哥课程中自由窗口效果可以看出来基本和国内手机各个大厂自由窗口效果是不是大体相同,课程实现是带大家手把手进行实现的。1、把原来的自由窗口自己的顶部栏显示等,独立成了一个窗口,移植到了如下目录。

learnframework的博客 2740

深入GD32/STM32引脚复用:你的JTAG/SWD接口是怎么‘消失’的?一次讲清原理与预防

本文深入解析GD32/STM32调试接口(JTAG/SWD)突然失效的原理与预防措施。通过分析MCU启动流程、引脚复用机制及典型错误代码模式,揭示调试接口'消失'的根本原因,并提供硬件设计检查清单、软件防护代码及开发流程优化方案,帮助开发者有效避免烧录失败问题。

weixin_42532938的博客 369

wms窗口/多窗口/自由窗口systemui侧边栏手势退出实战-学员作业

简单说就是学员朋友反应自由窗口置顶后,发现无法通过systemui的侧边栏返回手势进行返回了。课程时候,有一个需求就是实现自由窗口置顶的功能,这个需求实现后,自由窗口就会一直处于顶端,不会因为打开其他Activity导致自由窗口退出。明显看到焦点输入在自由窗口上,但是操作侧边栏依然是底部的联系人窗口退出的,自由窗口的联系人无法退出。2、设置自由窗口为置顶模式,让自由窗口处于顶部,具体方法可以看马哥分屏课程自由窗口最后一节。可以看到要实现的目标就是侧边栏滑动后退出是有焦点顶部自由窗口Activity。

liaosongmao1的专栏 108

《一》:LBE,VR 大空间系列——场景环境需求解析

当前,大量 VR 体验活动在室内场地开展。因此,对于场地照明有特定要求:除天花板外,场地的所有表面均需有照明覆盖。这是为了保证玩家无论处于场地的哪个位置,地面与墙面都不会出现明显的影子。场地内不建议安装射灯或高强度的点光源,若已安装此类灯具,需使用柔光板进行遮盖。此外,要避免在阳光下使用 VR 设备台。参考图(请忽略其中Maker标签)

unitygroup的博客 944

TIA protal与SCL从入门到精通(1)——SCL编程入门

SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进...

苦走一口田 7万+

基于Android T代码分析: 在freeform窗口的标题栏拖动时移动窗口流程和拖动freeform窗口边沿改变大小流程

基于Android T代码分析: 在freeform窗口的标题栏拖动时移动窗口流程和拖动freeform窗口边沿改变大小流程

月山知了的博客 3741

【OAG vs RAG】RAG的“语义崩溃“:为什么你的知识库越大,AI越笨?_语义检索oag-优快云博客

19.9 元(AI 编程 / Agent 实战 | 本文同主题系统课程)·49.9 元(AI 时代成长方法论)。单篇不过瘾?订阅解锁全量源码、实战与答疑;文末附资料包领取方式 ↓图1:RAG语义崩溃概念图。

求知若渴、虚心若愚 73

Android N 多窗口分析之freeform流程分析一(界面功能介绍)

先上两张效果图开下开启freeform时的功能 在NavigationBar上点击了Recent 按钮时,会弹出图1 的界面 点击图1中的Email上的Button(图1标示),进入Email应用界面吗,如图二 点击图2 红框区域,应用就进入到全屏显示状态。 freeform的界面效果就是这样,下篇文章将讲解整个业务流程。

dzy_mails的专栏 4007

Flink实战(101):双流join(三)双流中实现Inner Join、Left Join与Right Join

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 简介 之前文章中提到JoinedStream与CoGroupedStream,例如下列代码: dataStream.join(otherStream) .where(0).equalTo(1) .window(TumblingEventTimeWindows.of(Time.seconds(3))) .apply { ... } 由于joinedStream与

微信搜:import_bigdata,大数据领域硬核原创作者 737

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成。

kevin1499的博客 2566

Android 12系统源码_多屏幕(四)自由窗口模式

结合Android12系统源码简单梳理自由窗口的实现原理

AfinalStone的专栏 3384

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android学习之Window窗口

Window(窗口)是用户熟悉的图形界面元素,类似于Windows操作系统中的视窗概念。层级结构:采用Z-order排序管理,层级通过属性指定。显示区域:定义内容显示的位置和范围。输入事件处理:负责接收和处理触摸、按键等用户输入事件。

m0_69682018的博客 1381

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

千里马2023年终总结-android framework实战

2023年开始全职做课程后,有了更多时间投入到framework的课程研发,可以把在公司里面的很多丰富经验都放到课程中来分享给大家。大专题课程都是经过非常严格的调研,主要调研因素有以下几个:1、这个专题课程马哥自己是不是有这方面比较深入的经验分享,比如马哥经常在公司里面处理wms闪黑等疑难问题,这类经验属于不太可能从网络学得到的,也基本上很少程序员知道也不可能外传的有用“绝招”,这种在我课程里会毫无保留地分享给大家。

learnframework的博客 2584

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: audio系统开发之核心属性等介绍
下一篇: aosp14/15官方Freeform工具栏CaptionWindow显示不同步bug修复方案总结
千里马学框架
博客等级 码龄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、付费专栏及课程。

余额充值