成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android應用初始化及窗體事件的分發

移動開發 Android
在kernle啟動之后, 系統將通過App_main進程來初始化android Runtime JAVA 運行環境,zygote是android的第一個進程,所有android的應用都是通過zygote fork出來的子進程。與QT不一樣的是系統調用fork啟動新進程而不再通過execv將子進程完全替換,這樣做的目的是每一個子進程都保留了JAVA VM所需的啟動信息比如JNI信息。

Android java application運行環境初始化簡介

在kernle啟動之后, 系統將通過App_main進程來初始化android Runtime JAVA 運行環境,zygote是android的第一個進程,所有android的應用都是通過zygote fork出來的子進程。與QT不一樣的是系統調用fork啟動新進程而不再通過execv將子進程完全替換,這樣做的目的是每一個子進程都保留了JAVA VM所需的啟動信息比如JNI信息。

與Navtive 層一樣, JAVA application 層也有一個system service ,service 中啟動了很多的服務如ActivityManagerService,windowManagerService, powerManagerService等等,每啟動一個新的應用或者Service, ActivityManangerService都將為該進程創建一個ApplicationThread客戶端,當有其他應用需要創建新的 Activity或者Bind Service時,system service 就會通過binder IPC 機制通知到相應的JAVA application。一旦JAVA Application在ActivityManangerService中創建了客戶端,則客戶端與客戶端,客戶端與Server的IPC連接都建立 了,在Binder IPC通信中已經說了,對于需要IPC通信的兩個不同進程,只要獲得了對方在Binder Kernel中建立的Binder參考,就可以互相傳遞數據了。應用由system service進程啟動,具體過程可以參考下面的示意圖,這里就不貼源碼分析了。

兩個重要的service

上面提到system service進程起來的過程過,啟動了很多的系統service,這中間有兩個service非常重要一個是ActivitManangerService,另一個是windowManagerService.

AcvivityManagerService

主要管理Activity, service的加載,卸載,應用的創建等,當在一個應用程序中調用StartActivity時,應用就通過IPC機制向System Service請求啟動新的Activity,System Service首先會查找,這個Activity是否已經被創建,如果沒有,查找這個Activity所在的應用程序是否已經起來,如果沒有就先啟動應 用。然后向此應用發送launchActivity消息創建Activity。

WindowManagerService

主要管理窗體的加載,事件的分發。啟動每個Activity系統都會創建一個viewRoot用于保存所有的view,通過viewRoot將窗體加載到 WindowManagerService并創建窗體的客戶端,當服務程序接收到按鍵事件后,就會查找當前窗體是否是焦點控件,如果是的話就會將窗體事件 通過客戶端IPC傳遞到相應的應用程序,如果在焦點View中有注冊接收KeyEvent的消息則事件就在該view中得到處理。

責任編輯:徐川 來源: eoeAndroid
相關推薦

2023-10-08 08:23:44

Android事件邏輯

2009-08-28 11:09:35

C#數組初始化

2023-11-12 23:08:17

C++初始化

2011-08-15 17:52:21

iPhone應用對象NSString

2009-09-07 04:19:56

C#窗體事件

2016-12-08 10:19:18

Android事件分發機制

2016-09-14 22:22:03

Android Vue性能優化

2011-03-16 10:52:20

2017-03-14 13:51:23

AndroidView事件分發和處理

2012-03-13 13:38:42

Java

2009-06-10 16:17:00

Netbeans JT初始化

2021-07-07 05:00:17

初始化源碼

2019-11-04 13:50:36

Java數組編程語言

2009-09-08 09:48:34

LINQ初始化數組

2009-11-11 15:29:15

ADO初始化

2010-07-28 10:22:33

FlexApplica

2021-03-12 10:30:11

SpringMVC流程初始化

2022-07-06 10:37:45

SpringServlet初始化

2020-12-03 09:50:52

容器IoC流程

2011-06-17 15:29:44

C#對象初始化器集合初始化器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品视频免费 | 色网在线播放 | 国产精品一区二区电影 | 日韩欧美在线一区二区 | 免费天天干 | 成人精品一区二区三区中文字幕 | 国产精品不卡一区 | 欧美精品网站 | 精品久久久久久久久久久久久久 | 亚洲欧美日韩精品久久亚洲区 | 欧美最猛性xxxxx亚洲精品 | av片免费观看| 天天操天天射天天舔 | 热久久久| 人人操日日干 | 亚洲国产精品一区二区第一页 | 国产综合网站 | 成人性视频在线播放 | 91九色porny首页最多播放 | 日本电影免费完整观看 | 久久男人 | 天天操狠狠操 | 色综合激情 | 国产91在线 | 欧美 | 影音先锋欧美资源 | 亚洲人免费视频 | 夜夜干夜夜操 | 久久久久国产一区二区三区 | 亚洲日本成人 | 成人国产网站 | 中文在线视频观看 | 亚洲一区中文字幕 | 日韩一区二区视频 | 二区久久| 国产女人精品视频 | av免费入口 | av日韩在线播放 | 欧美在线色 | 国产乱人伦精品一区二区 | 中文字幕一区二区三区精彩视频 | 欧美11一13sex性hd |