成人免费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

2016-12-08 10:19:18

Android事件分發機制

2016-09-14 22:22:03

Android Vue性能優化

2009-09-07 04:19:56

C#窗體事件

2011-03-16 10:52:20

2012-03-13 13:38:42

Java

2009-06-10 16:17:00

Netbeans JT初始化

2021-07-07 05:00:17

初始化源碼

2017-03-14 13:51:23

AndroidView事件分發和處理

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技術棧公眾號

主站蜘蛛池模板: 成人h视频在线观看 | 日韩一区二区久久 | 成人av网站在线观看 | 在线啊v| 国产精品黄视频 | 国产精品久久久久久久久久 | 欧美日韩精品久久久免费观看 | 成人精品国产 | 亚洲高清视频在线观看 | 久久久久久久国产精品视频 | 九九99靖品| 国产综合精品一区二区三区 | 国产久 | 欧美国产精品一区二区三区 | 最新中文字幕在线 | 香蕉视频在线播放 | 午夜欧美| 欧美日韩亚洲系列 | 日韩精品一区二区三区 | 欧美日韩不卡合集视频 | 久久99精品久久久久久秒播九色 | 在线看av的网址 | 91成人在线 | 欧美日韩高清一区 | 免费三级av| 草逼网站 | 午夜视频精品 | 夜夜艹| 欧美最猛黑人 | 国产成人精品一区二区三区在线 | 九九久久这里只有精品 | 日日艹夜夜艹 | 亚洲精品一区二区三区中文字幕 | 日韩一区二区三区视频在线观看 | 自拍偷拍中文字幕 | 黄色av观看 | 欧美日韩在线一区 | 成人性视频免费网站 | 国产精彩视频在线观看 | 风间由美一区二区三区在线观看 | 狠狠干天天干 |