首页 > 其他分享 >安卓framework单屏幕Display秒双/多屏互动相关需求改进-wms实战开发

安卓framework单屏幕Display秒双/多屏互动相关需求改进-wms实战开发

时间:2024-09-08 10:23:41浏览次数:5  
标签:多屏 wms 安卓 学员 单屏 马哥 https 屏幕 com

背景

前面已经给学员朋友们分享过单屏秒变双屏的成果展示,具体详情可以点击这里:
https://mp.weixin.qq.com/s/KdYTLMuXiBdjM0kZmYKzPg
在这里插入图片描述

一些vip学员朋友也纷纷求助马哥的实现patch代码,想用于公司的实战项目实现。但是在公司需求实现要求和马哥这边的实现还是会有一些需求上的变更和设备环境差异,所以使用过程中学员朋友们也提出了一些额外的问题。

下面来一一讲解一下相关的需求和bug问题。

实现左右结构的单屏变多屏

正常马哥实现的是上下结构的单屏变多屏
在这里插入图片描述
但是学员朋友很多可能是车机厂商,或者平板等横屏设备厂商,所以他们需求往往都是需要变成左右的布局方式。

针对这个需求其实基于马哥的patch修改还是非常简单的,只需要修改如下两个部分:

1、需要定义好一个prop,根据prop来判断是上下结构还是左右结构
2、因为上下结构已经实现,如果左右结构,针对触摸部分,如果左右结构需要更改触摸区域的宽度变宽
3、针对虚拟屏幕的移动也需要判断如果左右结构,则需要平移是x方向坐标不是y方向坐标

具体实现成果如下:
在这里插入图片描述

发现有些设备或者场景第二屏不显示

具体看到现象如下:
在这里插入图片描述

这个问题其实在马哥自己设备上从来没有发现过,但是有的vip学员朋友和我反馈有这种黑屏不显示情况,针对这个问题第一时间进行了分析,主要通过提供的dumpsys SurfaceFlinger来查看
发现有如下线索
在这里插入图片描述
正常显示的设备dumpsys可以看到每个图层都是DEVICE合成方式即HWC合成,但是异常设备提供的dumpsys发现如下:
在这里插入图片描述

问题复现路径:
只需要让自己图层多几个使用GPU合成既可以,具体怎么让图层GPU合成呢?这个在SurfaceFlinger专题有讲解过,可以考虑让自己窗口设置圆角裁剪既可以。
一旦设置圆角后既可以复现上面的第二屏幕黑屏问题。

问题原因解决思路:
1、原因属于gpu合成部分和原理hwc有差异,gpu合成属于绘制到新的surface上,这个surface可能依然受到主屏幕屏幕宽高限制

2、解决思路只能是针对这种gpu绘制情况需要特殊处理,不限使用主屏幕逻辑宽高限制,而是使用物理宽高

ps:相关单屏秒变多屏patch可以私聊马哥获取(仅限vip学员)

更多framework详细代码和资料参考如下链接

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

标签:多屏,wms,安卓,学员,单屏,马哥,https,屏幕,com
From: https://blog.csdn.net/learnframework/article/details/142006931

相关文章

  • 安卓玩机工具-----ADB方式的刷机玩机工具“秋之盒”’ 测试各项功能预览
    秋之盒    安卓玩机工具-秋之盒是一款ADB刷机工具箱,基于谷歌ADB的一款绿色安装,具备了海量扩展模块,支持ADB刷机救砖、一键激活黑域、adb指令修复等功能,是一款开源、免费、易用的手机刷机工具!      并且是一款开源、免费、易用的图形化ADB工具箱,一切功能......
  • 手持机定制方案_安卓手机主板定制_MTK联发科智能终端方案开发
    手持机定制方案搭载了8核CPU,主频高达2.0GHz,并运行Android12.0操作系统。无论是多媒体播放、游戏娱乐还是多任务处理,均能带来极为流畅的体验。高达8GB的RAM确保应用程序和游戏可以顺畅运行,而256GB的内部存储空间以及支持扩展至512GB的存储容量,则满足了用户对于大容量数据存储的需求,......
  • 使用 Android Lua Helper 在VSCODE中调试安卓Lua应用
    一、VSCODE与AndroidLuaHelper的功能特点VisualStudioCode(VSCODE)是一款功能强大的代码编辑器,它以其高度可定制的界面、强大的扩展生态系统、流畅的性能表现以及对众多编程语言的天然支持而备受开发者青睐。在众多的开发场景中,VSCODE都展现出了卓越的性能和灵活性。Lua......
  • DAY87 APP 攻防-安卓逆向篇&Smail 语法&反编译签名重打包&Activity 周期&Hook 模块
    1、APK逆向-数据修改-结构&格式2、APK逆向-逻辑修改-Smail语法3、APK逆向-视图修改-Activity&Xml#章节点:1、APP资产-内在提取&外在抓包2、APP逆向-反编译&删验证&重打包3、APP安全-存储&服务&组件&注册等演示案例:ØAPK逆向-数据修改-结构&格式ØA......
  • mac 上golang编译 安卓系统的so 错误 'android/log.h' file not found
    lib.gopackagemainimport"C"//exportSpeedTestfuncSpeedTest(config*C.char){ configContent:=C.GoString(config) run(configContent)}funcmain(){}需要安装NDK,用Androidstudio安装,在SDKManeger的SDKTool里选择安装NDK(sidebyside),成功后一般在......
  • 从安卓开发到AI产品经理——我的AI绘画之旅
    大家好,我是一名有着多年安卓开发经验的程序员。在日复一日的编码生活中,我对AI行业产生了浓厚的兴趣。于是,我决定转行成为一名AI产品经理。在这个过程中,我通过学习AI绘画工具初步了解了AI行业,下面我将分享我的学习经历和学习资料,希望对同样想转行的朋友们有所帮助。这里给......
  • Uni-App 制作网易云音乐多端APP:‌安卓、‌苹果、‌小程序一站式跨平台解决方案
    Uni-App制作网易云音乐多端APP:‌安卓、‌苹果、‌小程序一站式跨平台解决方案在当前的移动应用开发领域,‌跨平台开发已经成为一种趋势,‌旨在减少开发成本、‌提高开发效率,‌并为用户提供一致的使用体验。‌Uni-App,‌作为一个基于Vue.js的跨平台前端框架,‌凭借其编写一次、‌运行......
  • 安卓平板电脑定制方案_MTK联发科智能终端方案开发
    基于联发科MT8788八核2.0GHz处理器的平板电脑方案,这款平板电脑不仅支持4G和Wi-Fi5高速网络,还搭载了Android12.0系统,可带来流畅的多任务处理和广泛兼容性。其6GB运行内存和128GB内置存储,再加上支持TF卡扩展,确保了足够的存储空间和操作速度,即使是运行大型游戏也能保持畅快的体验。MT......
  • 安卓13拦截home功能 监听home键 禁用home键
    总纲android13rom开发总纲说明目录1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言  经常遇到客户监听某个按键的需求,其实有些功能APP本身就可以处理的,......
  • 打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款
    大家好,今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windowsx86/x64架构的软件和游戏。Winlator是一款Android应用程序,它允许用户使用Wine和Box86/Box64在Android设备上运行Windows(x86_64)应用......