![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图形界面
文章平均质量分 83
Android屏幕刷新机制
xhBruce
黑夜
双城
|
加法
减法
断舍离
展开
-
Android最近任务显示的图片
实际截图缓存 SurfaceControl.captureLayersExcluding -> ScreenshotClient::captureLayers -> SurfaceFlinger::captureLayers。:不允许截图真实的屏幕截图,但我们应该尝试使用应用程序主题来创建应用程序的虚假表示。:截图一张真实的屏幕截图作为快照。应用设置导航栏可避免图片底部黑条。原创 2024-07-07 07:04:38 · 365 阅读 · 0 评论 -
WMS中Binder案例
AIDL形式是Android中binder机制的具体实现。,SystemServer.java中服务初始化添加到ServiceManager中。原创 2023-09-01 10:08:34 · 222 阅读 · 0 评论 -
SurfaceFlinger中Binder案例
SurfaceFlinger中Binder案例1、SurfaceFlinger服务init启动2、SurfaceFlinger服务继承BnSurfaceComposer端2.1 Code标签扩展2.2 Code标签扩展对应调用3、SurfaceFlinger服务的BpSurfaceComposer端3.1 FWK使用案例3.2 Native使用案例android12-release1、SurfaceFlinger服务init启动SurfaceFlinger启动-Android12SurfaceF原创 2023-08-31 21:20:40 · 550 阅读 · 0 评论 -
WMS:SurfaceView绘制显示
构造函数中获取,并设置继承RunnableThread中运行,并在这里等待vsync到来的通知消息线程并发处理Lock和Condition中通知另一条线程更新画面@Override// draw();//画蓝色或绿色@Override@Override@Overridetry {//在这里等待vsync到来的通知消息draw();//画蓝色或绿色try {//如果为双数则画面画成蓝色} else {//如果为单数则画面画成绿色。原创 2023-08-16 17:42:44 · 274 阅读 · 0 评论 -
Android多屏幕支持-Android12
为了同时支持多个以单个屏幕为目标的输入源,可以将 Android 10 配置为支持多个聚焦窗口,每个屏幕最多支持一个。**解决方案:**在极少数情况下,来自同一进程的两个窗口都处于聚焦状态,则系统仅向在 Z 轴顺序中较高的窗口提供焦点。否则,它会被分派到聚焦屏幕(即用户最近与之交互的屏幕)中的聚焦窗口。不过,键盘(硬件或软件)的输入只能进入最顶层的 activity(最近启动的应用)。通过创建隐藏的虚拟屏幕,即使在主设备屏幕上使用软件键盘,恶意应用也可以获取用户输入。中,系统还会单独跟踪聚焦窗口。原创 2023-08-13 21:03:55 · 1149 阅读 · 0 评论 -
ActivityOptions副屏启动
Application 创建。和相关方法一起使用的选项。帮助程序类,用于构建可与。原创 2023-08-09 08:55:19 · 1654 阅读 · 0 评论 -
WMS:应用DecorView窗口添加布局
循环层层解析xml,添加相应View。创建一个mContentParent。(xml布局文件),最终调用到。原创 2023-08-05 04:38:53 · 248 阅读 · 0 评论 -
WMS 窗口属性
系统窗口类型 Type 从FIRST_System_WINDOW到LAST_System_WINDEW,是系统用于特定目的的特殊类型的窗口。应用程序窗口类型 Type 从FIRST_Application_WINDOW到LAST_Application_WINDOW,是普通的顶级应用程序窗口。子窗口类型 Type 从FIRST_Sub_WINDOW到LAST_Sub_WINDOW,与另一个顶级窗口相关联。对于嵌套窗口,为父窗口创建了一个 WindowToken 来管理其子窗口。,窗口管理器中的一个窗口。原创 2023-06-30 00:07:47 · 170 阅读 · 0 评论 -
WMS中Choreographer 配合 VSYNC 中断信号
以 View 的绘制流程为例,从 ViewRootImpl 的 scheduleTraversals 方法开始,其内部通过 Choreographer 的 postCallback 将绘制任务添加到 Chorographer。Vsync 信号可以由硬件产生,也可以用软件模拟。60 fps画面每秒更新60次,大部分手机屏幕的刷新率,都维持在60 HZ,,屏幕刷新频率是60Hz的,这里是纳秒 ≈16000000ns 还是16ms (上一次帧绘制时间点;中存放要执行的输入、动画、遍历绘制等任务;原创 2023-06-24 18:10:34 · 272 阅读 · 0 评论 -
WindowManager中Surface申请流程
WindowManager 会控制 window 对象,它们是用于容纳 view 对象的容器。WindowManager 会监督生命周期、输入和聚焦事件、屏幕方向、转换、动画、位置、变形、Z 轴顺序以及窗口的许多其他方面。WindowManager 会将所有窗口元数据发送到 SurfaceFlinger,以便 SurfaceFlinger 可以使用这些数据在屏幕上合成 Surface。得到图形的缓冲的使用权。(注意这里Surface是Java层的,要区别于OpenGL ES的本地窗口Surface。原创 2023-06-20 10:03:38 · 472 阅读 · 0 评论 -
WMS侧添加界面
Activity的预览窗口StartingWindow添加Activity窗口的添加过程WMS:系统窗口添加过程上面都是调用到。原创 2023-05-30 16:29:27 · 162 阅读 · 0 评论 -
WMS:系统窗口添加过程
Android中的“窗口”类型有很多,经常使用的“窗口”大致分为两大类:一是,由系统进程管理的。这个就是安装Activity中添加,查看。二是,由应用程序产生的。原创 2023-05-29 20:12:06 · 1065 阅读 · 0 评论 -
Activity窗口的添加过程
主要回调onResume之后执行makeVisible(),最终调用到。原创 2023-05-25 19:08:16 · 369 阅读 · 0 评论 -
Activity的预览窗口StartingWindow添加
Activity组件启动后,窗口并非马上显示,而是先显示starting window,作为Activity的预览窗口。原创 2023-05-25 14:10:16 · 1007 阅读 · 0 评论 -
WMS服务启动
WMS属于SystemServer启动众多的系统服务中的一个,WindowManagerService中提供了一个静态main方法。AMS 中设置关联WMS服务。原创 2023-05-24 03:26:51 · 498 阅读 · 0 评论 -
WMS 概述 -- “窗口管理员“
一个新Activity启动,首先在AMS中注册,AMS生成一个ActivityRecord记录;另外WMS中以WindowState保存一个“窗口信息”,使用AppWindowToken来对应一个ActivityRecord。原创 2023-05-24 02:17:01 · 472 阅读 · 0 评论 -
SurfaceFlinger启动-Android12
SurfaceFlinger启动-Android12原创 2022-08-20 12:28:31 · 2286 阅读 · 2 评论 -
Android 图形组件简介
Android 图形组件简介AOSP->开发->图形添加链接描述原创 2021-08-03 23:23:07 · 1565 阅读 · 2 评论 -
Android 显示刷新频率
Android 显示刷新频率 开发者选项->显示刷新频率packages/apps/Settings/src/com/android/settings/development/ShowRefreshRatePreferenceController.java调用 SurfaceFlinger::onTransact 中 1034 方法updateShowRefreshRateSetting() 通过 SurfaceFlinger 获取 mRefreshRateOverlay != nu原创 2021-08-02 23:05:28 · 4336 阅读 · 3 评论