【Android应用开发技术:用户界面】用户界面基本原理
2015-07-31 17:07
579 查看
作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells
窗口结构
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,用来监听
资源管理框架
微博:郭孝星的新浪微博
邮箱: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,用来监听
资源管理框架
相关文章推荐
- Android如何设置标题栏的高度
- Android studio 使用心得(六)—android studio 如何加载.so文件
- 【Android应用开发技术:用户界面】SurfaceHolder
- Android应用开发欢迎界面不想显示最上面的LOGO
- Android studio 使用心得(五)—代码混淆和破解apk
- Android studio 使用心得(四)—android studio 多渠道打包(二)
- 【Android应用开发技术:用户界面】SurfaceView
- 关于android系统不关屏设置
- Android studio使用心得(二)— 打包签名apk发布
- 关于android 的databinding 技术
- Android之Dialog
- Android studio 使用心得(一)—android studio快速掌握快捷键
- Android实现图片的倒影效果
- Android 4.4 沉浸式透明状态栏
- Android 4.4 沉浸式透明状态栏
- mobile web开发 图片展示控件PhotoSwipe android手势放大功能
- Android Notification功能的实现
- android 杂记6:Android xml资源文件的一些东西
- 【Android应用开发技术:媒体开发】MediaPlayer基本原理
- Android LaunchMode and StartActivityForResult