Android 核心分析(12) -----Android GEWS窗口管理之基本架构原理

本文介绍了Android窗口管理系统的基本架构,详细解析了C/S模式下Window、DecorView、View、IWindow和WindowState之间的关系,以及Activity如何通过Session与WindowManager进行交互。

Android GWES之窗口管理之基本构架原理

Android的窗口管理是C/S模式的。Android中的Window是表示Top Level等顶级窗口的概念。DecorViewWindowTop-Level View,这个View我称之为主ViewDecorView会缺省的attachActivity的主窗口中。主View被加入到WindowManager中,WM使用WindowState与这个主View对应。

 


 

       Activity建立一个主窗口后,在将主窗口添加到WindowManager时,首先要建立WindowManager代理对象,并打开一个会话(实现IWindowSession AIDL接口),并维持该会话。Activity将通过该会话与WindowManager建立联系,这个SessionC/S体系的基础,Client通过WindowSessionwindow加入到Window Manager中。一个完整的窗口概念横跨了ViewViewRootWindowManager ServiceWindowDecorViewViewIWindow ,ISessionWindowState之间的关系如下:

 

 

 

 

 

客户端的Activity通过Session会话与WindowManager建立对话,而WindowManager则通过IWindow接口访问Client,将消息传递到Client端,通过消息分发渠道,将消息传递到处理函数OnXXX

 

后面我们将通过ClientWM Service分别加以分析。

 

<Process> <ProcessId>432883851MA</ProcessId> <Storage> <ScanCode /> </Storage> <Order> <OrderId>1347187</OrderId> <OrderNumber>432883851</OrderNumber> <ScanCode>432883851MA</ScanCode> <OrderType>21FU12LLK</OrderType> <Steering>LL</Steering> <ErpId>0123303624</ErpId> <VehicleId>MC14823</VehicleId> <VehicleType /> <ReOrder /> <AssemblyLocation>88</AssemblyLocation> <DeliveryDate>2025-09-15 00:00:00</DeliveryDate> <Steps> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>1</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32456(1)T</WireNumber> <Color>WS</Color> <Cavity>41</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>2</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32457(2)T</WireNumber> <Color>GNGR</Color> <Cavity>42</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>3</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>31275(1)T</WireNumber> <Color>WS</Color> <Cavity>23</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>4</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>31276(2)T</WireNumber> <Color>GNGR</Color> <Cavity>24</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>5</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32580(1)T</WireNumber> <Color>WS</Color> <Cavity>35</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>6</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32581(1)T</WireNumber> <Color>GNBL</Color> <Cavity>36</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>7</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>6036(16)</WireNumber> <Color>GEWS</Color> <Cavity>53</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>8</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32485(2)A</WireNumber> <Color>GEWS</Color> <Cavity>37</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>9</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>36502(1)</WireNumber> <Color>GE</Color> <Cavity>49</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>10</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>37497(2)</WireNumber> <Color>GNGE</Color> <Cavity>48</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>11</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>32059(1)</WireNumber> <Color>RTWS</Color> <Cavity>54</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>12</StepNumber> <ModuleNumber>21FM099701</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5655(1)</WireNumber> <Color>SW</Color> <Cavity>29</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>13</StepNumber> <ModuleNumber>21FM098001</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>6033(11)</WireNumber> <Color>GR</Color> <Cavity>6</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>14</StepNumber> <ModuleNumber>21FM098001</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>40191(1)</WireNumber> <Color>GNWS</Color> <Cavity>46</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>15</StepNumber> <ModuleNumber>21FM099801</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>27283(2)</WireNumber> <Color>GN</Color> <Cavity>2</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>16</StepNumber> <ModuleNumber>21FM099801</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>27282(2)</WireNumber> <Color>RT</Color> <Cavity>8</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>17</StepNumber> <ModuleNumber>21FM099801</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>27284(2)</WireNumber> <Color>VI</Color> <Cavity>14</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>18</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5714(1)</WireNumber> <Color>GE</Color> <Cavity>3</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>19</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5718(1)</WireNumber> <Color>GEGN</Color> <Cavity>4</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>20</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5713(1)</WireNumber> <Color>WS</Color> <Cavity>9</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>21</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5717(1)</WireNumber> <Color>WSGN</Color> <Cavity>10</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>22</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5715(1)</WireNumber> <Color>BRGN</Color> <Cavity>15</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>23</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination /> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5716(1)</WireNumber> <Color>BR</Color> <Cavity>16</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>29</StepNumber> <ModuleNumber>21FM100101</ModuleNumber> <Combination>V9734PU0925VS0</Combination> <Plug /> <Connector>A46*1B</Connector> <WireNumber>5663(11)</WireNumber> <Color>BLGE</Color> <Cavity>27</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> <Step> <WorkplaceName>TIGMA01_03</WorkplaceName> <StepNumber>30</StepNumber> <ModuleNumber>21FM100701</ModuleNumber> <Combination>V9700PU0925VS0</Combination> <Plug /> <Connector>A46*1B</Connector> <WireNumber>27213(3)</WireNumber> <Color>GE</Color> <Cavity>47</Cavity> <TermOri>0</TermOri> <Traceability>0</Traceability> <CompletePart>0</CompletePart> <ErrorCode>0</ErrorCode> <ErrorText /> </Step> </Steps> </Order> </Process> 逐句解释每句话的含义
最新发布
09-13
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值