【Android应用开发技术:用户界面】用户界面基本原理

来源:互联网 发布:sql数据库修复工具 编辑:程序博客网 时间:2024/05/05 13:15

作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells

【Android应用开发技术:用户界面】章节列表

用户界面架构如下所示:

这里写图片描述

窗口结构

ViewRootImpl:虚拟根View,用来控制窗口渲染,以及与WindowManagerService和SurfaceFlinger通信。
DecorView:真正的根View。
ContentView:描述窗口的主题风格。

Window与Activity的关系

这里写图片描述

Activity对应的Window实际上是一个PhoneWindow

这里写图片描述
Activity/Window上下文

这里写图片描述

虚拟根View:ViewRootImpl

这里写图片描述
窗口绘图表面:Surface

这里写图片描述

窗口标志:W

这里写图片描述
窗口会话:Session

这里写图片描述

窗口视图:View

这里写图片描述

Android应用UI的绘制过程
这里写图片描述

软件渲染过程

这里写图片描述

硬件渲染过程

这里写图片描述

Display List:缓存绘制命令buffer,当View的某些属性发生改变时,只需要修改相应buffer中的属性即可,而无需再对整个View进行重绘。

Android应用UI的绘制时机

Without vsync - jank
这里写图片描述

with vsync

这里写图片描述
with vsync and double buffering

这里写图片描述
with vsync and double buffering – jank

这里写图片描述
with vsync and triple buffering

这里写图片描述
Android系统的vsync实现

SurfaceFlinger内部维护有一个EventThread,用来监听

资源管理框架

这里写图片描述

0 0
原创粉丝点击