青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統(tǒng)計

最新評論

PhoneWindow,ViewRoot,Activity之間的大致關(guān)系

android里,我們都知道activity.但是一個activity跟一個Window是一個什么關(guān)系呢?

activity.java中,我們可以看到兩個變量,分別是:

private Window mWindow;

private WindowManager mWindowManager;

這這個變量是在哪里賦值的呢?可以看到attach函數(shù),

mWindow = PolicyManager.makeNewWindow(this);

跟進去看一下,可以發(fā)現(xiàn)返回的時候一個PhoneWindow對象,PhoneWindowWindow類的派生類。

mWindow.setWindowManager(null, mToken, mComponent.flattenToString());

if (mParent != null) {

mWindow.setContainer(mParent.getWindow());

}

mWindowManager = mWindow.getWindowManager();

仔細(xì)跟蹤下這段代碼中我們可以得到WindowManager對象,并且這個對象是在系統(tǒng)唯一的,這個對象同樣被賦值給PhoneWindow的成員變量。

我們在新建一個activity的時候,往往喜歡用如下的代碼來定義該activityUI界面,那么這個具體的實現(xiàn)是怎么來實現(xiàn)的呢?

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

我們跟蹤setContentView就知道了。可以發(fā)現(xiàn)activity其實把這個操作交給了自己的mWindow來完成,通過跟蹤PhoneWindow中的setContentView函數(shù)可以得出以下知識:

1,每一個PhoneWiondow中都有一個叫DecorView的對象,該對象是該PhoneWiondow的框架view,可以找到這么一段代碼:

View in = mLayoutInflater.inflate(layoutResource, null);

decor.addView(in, new ViewGroup.LayoutParams(FILL_PARENT, FILL_PARENT));

layoutResource則是資源ID,通過往上翻代碼就可以找得到。

2,一個PhoneWiondow中都有一個叫FrameLayout的對象mContentParent,該對象是從上述layoutResource中的布局xml中獲得的,這也將是activity中所有用戶新增加view都會被包含在這個對象當(dāng)中。

總體可以這樣大致說明:一個activity包含有一個PhoneWiondow對象,而所有的UI部件都是放在PhoneWiondow中。

ViewRoot這個類在androidUI結(jié)構(gòu)中扮演的是一個中間者的角色,連接的是PhoneWindowWindowManagerService.

WindowManagerService中我們知道它讀取android系統(tǒng)里所有事件,鍵盤事件,軌跡球事件等等,它怎么分發(fā)到各個activity的呢?就是通過這個ViewRoot

在每個PhoneWindow創(chuàng)建的時候,系統(tǒng)都會向WindowManger中的一個保存View數(shù)組增加PhoneWindowDecorView對象,WindowManger在保存好這個View對象的同時,也會新創(chuàng)建一個ViewRoot對象用來溝通WindowManagerService

可以查看WindowManagerImplViewRoot中的代碼,同時ViewRoot中我們可以看到一個W類型,該類型派生自IWindow.stub可以知道這個可以被用來作遠(yuǎn)程調(diào)用。

res = sWindowSession.add(mWindow, mWindowAttributes,

getHostVisibility(), mAttachInfo.mContentInsets);

IwindowSession則是WindowManagerService中的遠(yuǎn)程調(diào)用接口,上述代碼也表明了每創(chuàng)建了一個PhoneWindow,也就創(chuàng)建了一個ViewRoot,并將在WindowManagerService注冊。

接下來簡單的看下KeyEvent的傳遞。在WindowManagerService

focus.mClient.dispatchKey(event);

這個段代碼的mClient則就是ViewRoot中的W類型,通過遠(yuǎn)程調(diào)用,可以看看ViewRoot的處理:

boolean handled = mView != null

? mView.dispatchKeyEventPreIme(event) : true;

mView則是PhoneWindowDecorView對象,接下來怎么具體傳遞可以慢慢去跟了

posted on 2013-01-13 12:30 大龍 閱讀(8951) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            性伦欧美刺激片在线观看| 久久夜色精品国产亚洲aⅴ | 久久九九热免费视频| 亚洲天堂av图片| 国产精品久久久亚洲一区 | 久久亚洲一区二区| 久久久精品网| 亚洲日韩欧美视频一区| 亚洲精品国产无天堂网2021| 欧美日韩在线一区| 亚洲欧美日韩精品久久奇米色影视| 中日韩高清电影网| 国产日韩精品视频一区| 蜜臀久久99精品久久久画质超高清| 久久久久久久一区二区三区| 亚洲日韩欧美视频一区| 一区二区三区四区五区精品| 国产视频欧美视频| 亚洲大片精品永久免费| 欧美日韩一区二区三区在线观看免| 午夜伦理片一区| 久久综合九色综合欧美狠狠| 亚洲天堂av高清| 久久久久国产精品一区| 中文在线资源观看视频网站免费不卡| 亚洲欧美一区二区视频| 亚洲国产日韩欧美综合久久| 亚洲深夜影院| 亚洲精品一区二区在线观看| 亚洲欧美日韩国产一区二区| 亚洲经典视频在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲高清自拍| 香蕉久久夜色精品国产使用方法 | 国产精品美女一区二区| 久久爱91午夜羞羞| 久久久人人人| 欧美三区在线观看| 美女爽到呻吟久久久久| 欧美性天天影院| 欧美岛国在线观看| 国产视频在线观看一区| 亚洲免费成人| 在线看成人片| 午夜精品久久久久久久99热浪潮 | 国产精品www| 欧美国产免费| 狠狠色香婷婷久久亚洲精品| 亚洲一区免费视频| 99在线观看免费视频精品观看| 久久成人精品无人区| 亚洲欧美日韩电影| 欧美日韩精品一本二本三本| 亚洲大片一区二区三区| 伊伊综合在线| 久久久久这里只有精品| 久久九九精品| 国产亚洲精品久久久久动| 亚洲婷婷综合色高清在线| 这里是久久伊人| 欧美日韩国产电影| 亚洲精品中文在线| 一片黄亚洲嫩模| 欧美高潮视频| 亚洲欧洲精品一区| 亚洲三级网站| 欧美二区视频| 亚洲国产精品高清久久久| 亚洲精品日韩综合观看成人91| 麻豆精品在线视频| 亚洲第一中文字幕| 日韩亚洲精品视频| 欧美日韩岛国| 中国日韩欧美久久久久久久久| 亚洲免费小视频| 国产裸体写真av一区二区| 午夜久久久久久| 久久嫩草精品久久久久| 伊人成综合网伊人222| 久久久久国产一区二区| 亚洲第一精品久久忘忧草社区| 99国产精品| 国产精品日韩专区| 久久国产精品99国产| 亚洲高清av在线| 亚洲欧美国产高清| 国产一区二区高清视频| 农夫在线精品视频免费观看| 亚洲精品裸体| 欧美一区国产在线| 亚洲国产成人精品女人久久久| 免费日韩成人| 亚洲香蕉网站| 欧美成年网站| 午夜国产精品影院在线观看| 国产有码在线一区二区视频| 欧美波霸影院| 午夜精品久久久久久| 亚洲黄色影片| 久久激情一区| 亚洲国产一区二区a毛片| 欧美精品在线观看播放| 亚洲黄色影片| 久久久欧美精品sm网站| 亚洲黑丝在线| 欧美日韩中国免费专区在线看| 亚洲一区精彩视频| 欧美粗暴jizz性欧美20| 亚洲无亚洲人成网站77777| 国产亚洲成av人片在线观看桃 | 久久影视三级福利片| 国产美女高潮久久白浆| 免费成人美女女| 一区二区三区不卡视频在线观看| 亚洲欧美日韩电影| 亚洲高清不卡在线| 欧美三区在线视频| 久久婷婷国产麻豆91天堂| 亚洲乱码国产乱码精品精| 麻豆精品视频| 亚洲一二三区精品| 亚洲国产精品福利| 国产精品久久久久久久久久免费| 久久精品首页| 亚洲欧洲av一区二区| 亚洲国产成人精品久久久国产成人一区| 一本色道久久综合亚洲精品不卡| 国产欧美一区二区精品秋霞影院| 美女主播视频一区| 国产精品99久久久久久人| 91久久久亚洲精品| 久久久免费精品| 亚洲欧美日韩另类精品一区二区三区| 在线日韩日本国产亚洲| 国产乱码精品| 国产精品区二区三区日本| 欧美成人精品高清在线播放| 欧美在线视频播放| 亚洲视频一区二区| 亚洲经典在线看| 欧美激情在线免费观看| 久久久久久久成人| 午夜亚洲一区| 亚洲制服少妇| 日韩小视频在线观看| 亚洲乱码国产乱码精品精可以看 | 国产亚洲精品aa| 欧美日韩免费观看一区二区三区| 久久午夜av| 久久久亚洲精品一区二区三区| 午夜精品一区二区三区在线播放| 午夜激情综合网| 亚洲一区二区三区精品动漫| 99精品国产在热久久| 亚洲蜜桃精久久久久久久| 亚洲国产第一页| 亚洲毛片av| 日韩一级在线| 日韩午夜在线视频| 日韩小视频在线观看| 亚洲高清毛片| 一区二区三区四区精品| 日韩亚洲欧美成人| 99国产精品久久久久久久久久 | 欧美成人按摩| 美女诱惑黄网站一区| 麻豆freexxxx性91精品| 久久在线免费视频| 狂野欧美性猛交xxxx巴西| 欧美国产激情二区三区| 欧美激情精品久久久久| 亚洲国产日韩美| 亚洲乱码久久| 亚洲——在线| 久久在线免费观看| 欧美日本一道本在线视频| 欧美日韩色婷婷| 国产午夜一区二区三区| 国产亚洲女人久久久久毛片| 亚洲成色最大综合在线| 日韩视频精品在线| 亚洲欧洲av一区二区三区久久| 欧美一级免费视频| 久久亚洲国产成人| 99ri日韩精品视频| 欧美在线视频导航| 欧美精品久久久久久久久老牛影院 | 在线一区亚洲| 欧美一区激情| 亚洲美女91| 久久精品视频99| 欧美日韩国产高清| 国产亚洲欧美在线| 国产精品99久久久久久久女警 | 国产精品久久久久久久久免费桃花| 国产一区在线看| 日韩亚洲精品视频| 久久久www| av成人国产| 久久视频在线视频|