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

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 阅读详情
AI摘要

本文讲述了随着2023年AOSP14普及,一款基于Android13的自由窗口项目需升级以适应新系统的变化。重点在于AOSP14中对自由窗口功能的调整,如顶部栏独立成新窗口和Shell进程变化,以及如何通过跨进程通讯处理Task窗口。作者提供相关课程资源以帮助开发者适配。

背景

hi,粉丝朋友们:
今年2023年已经块过去了,各个手机厂商已经开始适配aosp14,甚至有的是已经适配完成,明年市场就大部分手机出厂就都是android 14了。
近期有个马哥学员刚好求助马哥一个关于以前马哥课程里面自由窗口项目,这个项目在android 13上做的,但是他们公司是aosp14,希望我能帮忙尽快升级到14。

国内大厂情况

这里可以看到国内大厂普遍都是这种自由窗口,看着确实是湿滑流畅
在这里插入图片描述

课程的项目成果情况

马哥课程中自由窗口效果可以看出来基本和国内手机各个大厂自由窗口效果是不是大体相同,课程实现是带大家手把手进行实现的。
在这里插入图片描述

不过上面是基于aosp13进行的,最新的aosp14上这部分原生有较大修改,最重要相关修改有如下:

1、把原来的自由窗口自己的顶部栏显示等,独立成了一个窗口,移植到了如下目录
在这里插入图片描述

2、Shell包运行在systemui进程,原来直接控制Task窗口相关操作都需要通过如下操作方式

    wct.setBounds(mWindowDecoration.mTaskInfo.token, mRepositionTaskBounds);
	mTaskOrganizer.applyTransaction(wct);

都是通过相关的跨进程通讯来更新相关的Task窗口信息

aosp14适配成果展示

展示成果:
在这里插入图片描述

patch修改涉及到的类如下:
在这里插入图片描述

ps:相关patch需要购买马哥自由窗口课程才可以获取,具体可以私聊马哥

更多framework干货获取相关可以 私聊+v(androidframework007)
点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频:https://www.bilibili.com/video/BV1Jg4y1C7fw/
在这里插入图片描述

Android 系统自由窗口相关修改(AndroidQ) 自由窗口相关修改 AndroidQ 1 打开自由窗口相关配置 // frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java public void retrieveSettings(ContentResolver resolver) { // wugm: enable free form setting Settings.Global.putInt(resolver, D 阅读详情

相关推荐

Android P 自由窗口模式实现及源代码解析

在这种模式下,用户可以自由调整应用窗口的大小和位置,实现多个应用程序并排显示的效果。本文将介绍 Android P 自由窗口模式的简单实现原理,并提供相应的源代码。在上述示例程序中,点击 MainActivity 中的按钮会启动 SecondActivity,并在屏幕中显示一个大小为 500x800 像素的窗口。本文介绍了自由窗口模式的实现原理,并提供了一个简单示例程序,展示了如何使用 WindowManager 和 ActivityManager 实现自由窗口模式。属性,可以实现自由调整窗口大小的功能。

CodeJolt的博客 1160

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

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

learnframework的博客 5148

Android 14 SPRD 隐藏设置智能控制

【代码】Android 14 SPRD 隐藏设置智能控制。

m0_60898338的博客 796

Android12 窗口模式

Android 窗口模式

ocreativityo的博客 2294

CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与冒险

目录 1.CMOS的宽长比 2.传输门与三态门 传输门 三态门 3.锁存器与触发器 3.1RS锁存器[3] 3.2D锁存器 3.3D触发器 4.简单CMOS器件的版图 5.竞争与冒险 1.CMOS的宽长比 关于COMS原理及结构图可以参考[1]COMS原理及门电路设计. 栅在源漏方向的长度称作栅的长L,垂直方向称为栅的宽W,如图1中NMOS的版图。 图1 以MOS管...

king阿金 1万+

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3224

Android 项目必备(四十二)-->Android 多窗口模式

需求:在手机中一遍玩游戏一边聊天一边刷剧,如何实现呢?

Kevin Learn Android 3583

ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定

本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。

weixin_30664051的博客 513

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

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

AfinalStone的专栏 3384

PSI5协议技术文档与驱动开发指南

• 供电与数据复用:ECU通过双绞线为传感器提供稳压(典型值5V-11V),同时检测线路电流变化实现数据传输。• 同步信号:ECU发送3.5V电压脉冲(上升沿触发传感器响应),用于时序同步。• 安全气囊:PSI5-P模式实现多碰撞传感器同步采样(响应时间<10ms)• CRC-3(3位):ASIL-B以上功能安全要求(如动力总成传感器)• 奇偶校验(1位):适用于低安全等级场景(如PSI5-P10P模式)• 典型应用:PSI5-P(并行总线)、PSI5-U(通用总线)

u012733413的博客 2867

PVE(Proxmox VE)添加VMware Esxi并迁移虚拟机

跨平台迁移虚拟机:从VMware虚拟化平台迁移虚拟机到PVE平台。

VEGETA的博客 7715

Android实现一键开启自由窗口、分屏、画中画模式——自由窗口模式

转载请注明出处:https://blog.youkuaiyun.com/sunmmer123 忙过一段时间后,新需求又来了“多个应用/页面间在不用退出或者切换的情况下,可同时操作” 咋一听是不是很迷惑,简单来说“此时你在爱奇艺刷着剧,不退出爱奇艺的情况下,照常能在微信聊着天” 这不是妥妥的时间管理大师嘛,众所周知,生活中我们也都是直接切到对应App中去,没有说同时不退出的情况下操作第二个App。 那么这种“高大上的”需求功能能实现么? 其实早在2016年5月19日, Google I/O 开发者大会中发布的A.

sunmmer123的博客 2万+

Superpowers:可编程AI协作协议与Skill工程化实践

AI编程正从提示词驱动迈向工程化协作新范式。Superpowers并非传统代码补全工具,而是一套定义清晰、可版本控制、可调试复用的AI协作协议——它将AI能力抽象为带输入校验、执行管道、输出契约和元数据声明的Skill(类DSL构件),再通过状态驱动的Workflow编排实现跨平台、可熔断、含人工Checkpoint的自动化流水线。其核心价值在于解决AI生成代码长期存在的不可复现、不可审计、不可交接三大痛点,支撑OpenAPI转TS、Figma转Vue等高复用场景落地。本文深入解析Skill设计四重契约与P

weixin_31124163的博客 377

android12自由窗口bug

ActivityStarter.java#setTargetRootTaskIfNeeded中,设置windowmode后,没有设置task的bounds,导致失败。

Zero_plucky的博客 637

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

第29章:PCL PrincipalCurvatures 曲率估计

PrincipalCurvatures(主曲率估计)是一种用于计算点云表面曲率的算法。曲率描述了曲面局部的弯曲程度,是表面几何特征的重要指标。在点云处理中,估计表面的曲率对于形状分析、物体识别、表面重建等任务非常重要。主曲率是曲面上某一点的最大和最小曲率方向。通过计算点云的主曲率,我们可以获得点云中每个点的局部形状特征。通常情况下,主曲率包括两个主要参数:最大主曲率(最大曲率方向上的曲率)和最小主曲率(最小曲率方向上的曲率)。优点缺点提供了对点云表面局部形状的深入分析。

yumeiguo的博客 213

【无标题】

编译framework,Android 11和之前版本有所区别,

asd55554的博客 343

精雕软件(JDpaint) 5.5 绿色版

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

Android Freeform模式

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

kavin_ma的博客 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android 16系统源码_自由窗口(一)触发自由窗口模式

介绍Activity页面如何进入自由窗口模式,并对比全屏模式和自由窗口模式的层级树信息,理解自由窗口模式的设计思路

AfinalStone的专栏 2760

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

心里焦虑加大了,需要调节好平常心面对创业以来最大感受就是“创业艰难”,原本预想的很美好,终于可以有勇气为了理想和兴趣奋斗了,一定是每天满怀激情的干。实际情况是:当自己的兴趣与谋生的收入挂钩时候,一切变得不那么理想和美好。每天还是会有担心自己课程的销售情况,必然就会有焦虑,这种心态和上班兼职搞完全不是一回事。所以心态上确实是相比以前有焦虑一些,这个部分做的不够好。时间不够用创业初期,也没有很多资金搞团队,大部分工作都落到我的头上,比如一些售前咨询,课程研发录制,答疑服务等。

learnframework的博客 2003

aosp_008.谈第三方Android ROM开发者是如何适配硬件的

转自:https://blog.toby.moe/android-shim/ 原文:https://www.xda-developers.com/cameras-custom-roms-developers-make-hardware-work-without-source-code/ 随着Android Oreo的发布和许多如小米Redmi Note 3,Google Nexus 5之...

记录生活 5535

Android窗口机制:Window PhoneWindow DecorView

一,布局 在Android studio的Tools–&gt;Layout Inspector–&gt;选中连接的手机–&gt;打开你要看的应用,然后在屏幕上就会显示当前页面的布局结构图View Tree 切换页面,会显示不同的页面的View Tree,然后会将View Tree保存在项目的captures目录下。 从上图我们可以看到,我的页面只有一个LinearLayout下的Text...

wangxp423的博客 4091

Android U 自由窗口(浮窗)——操作栏相关分析思路

本地通过dump activity containers,View树以及window等方式均未找到自由窗口操作栏相关代码,在android T(13)中的方式已经不再适用,最终通过winscope dumpsys SF找到相关线索。下面主要介绍下分析思路,并找到相关代码。

yimelancholy的博客 938

android freeform模式定制桌面系统

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

yiwuxue的专栏 1万+
上一篇: SurfaceControl及SurfaceFlinger中的Layer创建过程深入剖析
下一篇: SurfaceControl之Transaction事物深入剖析-android framework实战开发
千里马学框架
博客等级 码龄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、付费专栏及课程。

余额充值