码迷,mamicode.com
首页 > Windows程序 > 详细

WindowState笔记

时间:2014-08-11 12:04:42      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:android   style   io   数据   ar   linux   应用   window   

这片文章将详细分析WindowState中的各个关键成员变量及成员函数。

1、Session类对象mSession

每一个WindowState都有一个Session类成员变量,那么每一个窗口保存的都是同一个mSession吗?还是每一个窗口的mSession都不同呢?dump一下便知道了,dump日志告诉我上述两种情况都不是,事实上是每一个UI进程的所有窗口保存的是同一个Session,而每一个UI进程之间的Session又是不同的。Session顾名思义就是会话的意思,是ViewRootImpl用来调用WMS服务功能的东东,这个可以从Session类中的函数可以看出来。每一个UI进程在何时创建一个Session的呢?是在add第一个View时创建的,这点大家可以去研究下源码。Session类继承IWindowSession.Stub,可以知道WindowState中保存的是本地对象,而ViewRootImpl中 mWindowSession保存的是代理对象。

2、IWindow类对象mClient

mClient是一个代理对象,本地对象保存在ViewRootImpl中的mWindow中。WMS利用mClient来通知ViewRootImpl一些状态的改变等。mClient代表的是UI进程侧的一个窗口。

3、mOwnerUid

该变量保存的是UID,UID在Linux中是为多用户设计的,而在Android中赋予了新的使命--数据共享,android为每个应用几乎都分配了不同的UID,如果要实现两个程序的互访,可以定义相同的android:sharedUserId,并且签名相同便可互访。


WindowState笔记,布布扣,bubuko.com

WindowState笔记

标签:android   style   io   数据   ar   linux   应用   window   

原文地址:http://blog.csdn.net/guoqifa29/article/details/38487321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!