分屏
文章平均质量分 78
Android高级知识分享官
安卓技术专家
展开
-
Launcher对RecentView展示TaskView详细分析-android framework车载车机手机系统开发
实际上这里创建的调用栈是,但是这里明显使用的ViewPool这种方式,主要是为了减少频繁创建的,所以就干脆缓存到ViewPool中,需要用时候再拿出来。上面可以看出主要是通过RecentsView.applyLoadPlan方法,这个其实是从getTasks这个方法里面进行调用的。1、桌面调用到sysui获取Task信息,因为sysui中其实有分屏相关的TecentTask信息。这里其实会调用的sysui的getRecentTasks进行查询。那么又是哪里调用到的getTasks这个方法呢?转载 2023-08-11 16:25:48 · 410 阅读 · 0 评论 -
pip触摸部分源码分析-pip窗口的移动,删除窗口/车载车机手机系统开发
综上就清楚了pip的触摸事件其实是自己使用独立的inputchannel进行的接受,和pip这个activity的窗口inputchannel没有啥关系。其实核心是PipInputConsumer类,这里可以对PipInputConsumer进行详细分析。结下来分析一下松手后,才会真正对Task的Bounds进行设置相关堆栈。接下来重点看createInputConsumer。转载 2023-08-11 16:22:12 · 253 阅读 · 0 评论 -
android framework实战开发之WINDOWING_MODE_FREEFORM自由窗口相关
hi,粉丝朋友们!今天开始就进入正式的自由窗口的相关的内容讲解,blog只是一些知识点的记录,更多的干货,还请看马哥的视频,及视频配套资料。aosp默认并没有公开自由窗口模式,如果需要体验自由窗口模式必须要用如下命令进行开启输入完成后,可以在多任务的menu中发现freeform:点击这个freeform按钮即可以进入到自由窗口模式。转载 2023-08-11 16:20:46 · 617 阅读 · 0 评论 -
android 10车载CarLauncher的ActivityView源码方案分析
hi粉丝朋友们:大家好!转载 2023-08-11 16:14:55 · 158 阅读 · 0 评论 -
android T分屏流程systemserver端操作
2、针对task相关的2类操作,reorder和startTask两类都是包装成了HierarchyOp,对这类也是调用了applyHierarchyOp方法来进行处理。总体来看这个reorder相对来说操作还是比较简单,就是一个把RootTask放到第一位,即显示再最前面。的话这个看起来也很简单,对上面3个步骤也非常好理解,甚至可以自己写出相关的代码。可以看看通过下图先有个大概的Task区域及结构的了解,其实这个如果前期学习过。这里其实也可以猜想出systemserver端也一样要有类似的3步操作。转载 2023-07-29 17:00:01 · 275 阅读 · 0 评论 -
android T 分屏流程之systemui部分/android framework车载车机手机实战开发
hi,上一节已经讲解清楚了分屏在Launcher端的一个启动情况,本节课开始将进行systemui部分的详细讲解:b站免费视频教程讲解:https://www.bilibili.com/video/BV1wj411o7A9/回忆上一节launcher端会调用以下方法来调用到systemui端这里注意最后桌面调用了mSplitScreen.startIntentAndTaskWithLegacyTransition,这里的mSplitScreen就是一个binder代理,会调用到systemui的服务转载 2023-07-29 16:57:42 · 722 阅读 · 1 评论 -
android T分屏 Launcher RecentsView部分介绍/android framework手机车机系统开发
其他TaskView动画就不进行相关的介绍了,都在这调用堆栈里面,到此时分屏在桌面多任务完成了第一步,把TaskView放到顶部(上屏),接下来要等待用户来手动选择一个下屏app,才可以构成真正意义的分屏。这里createTaskDismissAnimation其实就是上面那个短信应用上半屏幕部分显示的动画构建。点击后会动画进入如下图一样状态,这个短信app放到上面,下面多任务依旧是多任务,位置确实变化了。转载 2023-07-29 16:56:39 · 481 阅读 · 0 评论 -
Pip小窗模式到全屏模式源码分析-android framework车载车机手机系统开发
这里发现较为简单,功能就是响应一下onClick,然后启动hideMenu,会启动一个动画进行hide。转载 2023-07-29 16:55:25 · 273 阅读 · 0 评论 -
PipMenuView原理讲解-车载车机手机安卓framework系统开发
null) {// Calculate the aspect ratio of the PiP screen. 计算video的纵横比 int mVideoWith = videoView . getWidth();= 0) {//设置param宽高比,根据宽高比例调整初始参数 Rational aspectRatio = new Rational(mVideoWith , mVideoHeight);转载 2023-07-29 16:54:05 · 128 阅读 · 0 评论 -
安卓车机手机系统开发--多窗口模式之PIP详细讲解
1、进入pip时候,即进入pip的动画过程,是属于fullscreen的状态,但是task已经是pip了,所以需要ActivityRecord自己对应的override。大概意思就是在进入pip动画过程种要禁止activity进行显示上面的变化,所以要设置为fullscreen的mode,等待动画完成才可以变化windowmode。因为小窗pip虽然进入了pasued状态,但是visible还是可以显示的true状态。systemui进程进行动画结束以后,会进行对应的setBound的设置。转载 2023-07-29 16:53:13 · 350 阅读 · 0 评论 -
车机CarLauncher的Activity多屏模式WindowingMode为WINDOWING_MODE_MULTI_WINDOW疑问解析
hi,粉丝朋友们!今天来给大家介绍一下再Activity中WindowMode相关的多窗口模式,这个模式相对平时比较少见,但是在分屏模式之自由窗口模式,等存在多个窗口场景就很关键了。这一部分确实不是普通模式的场景,而且每一种模式都是比较难的,今天来分析一下WINDOWING_MODE_MULTI_WINDOW模式的一个疑问。转载 2023-07-29 16:52:07 · 264 阅读 · 0 评论 -
知乎网友问题:Android 悬浮窗怎么让窗口响应事件的同时,也能让背后挡住的地方收到事件?
动态壁纸可以接受触摸事件,壁纸上面的Launcher也可以接受触摸事件,这个场景就是经典的,Wallpaper属于单独的window图层再最底层,Launcher是个Activiyt也是单独的Window图层L位于Wallpaer的上层,但是触摸桌面时候发现下面的壁纸也是可以接受到相关的触摸事件。哈其实这里壁纸是再WallpaperService中实现了一个类似InputMonitor,即它可以负责接受系统所有的事件,无论触摸事件派发到任何窗口上面,他都可以接受到,即全局监听了系统的所有触摸事件。转载 2023-07-29 16:49:06 · 225 阅读 · 0 评论 -
SurfaceFlinge/InputFlinger分析-android画面缩放后依然点击正常原理分析
hi,粉丝朋友们:这两天刚好在做自由窗口相关国内需求,刚好遇到一个疑惑,那就是画面进行缩放后发现依然触摸画面可以正常反映问题。转载 2023-07-29 16:47:39 · 197 阅读 · 0 评论 -
android 13分屏源码分析之分割线拖动过程
hi,上一节已经分析完分屏的启动过程,本节开始来介绍分屏使用过程中对分割线的拖动过程。转载 2023-07-29 16:46:28 · 552 阅读 · 0 评论