1. 程式人生 > >《老羅的Android之旅》閱讀筆記——Launcher和Zygote的啟動過程

《老羅的Android之旅》閱讀筆記——Launcher和Zygote的啟動過程

  • Launcher啟動過程

            系統中的應用程式安裝好了以後,

SystemServer元件接下來就通過ActivityManagerService來啟動Home應用程式Launcher了,

Launcher在啟動的時候便會通過PackageManagerServic把系統中已經安裝好的應用程式以快捷圖示的形式展示在桌面上,這樣使用者就可以使用這些應用程式了,

整個過程如下圖所示:

  • Zygote啟動過程

啟動序列圖:

        1. 系統啟動時init程序會建立Zygote程序,Zygote程序負責後續Android應用程式框架層的其它程序的建立和啟動工作。

        2. Zygote程序會首先建立一個SystemServer程序,SystemServer程序負責啟動系統的關鍵服務,如包管理服務PackageManagerService和應用程式元件管理服務ActivityManagerService。

        3. 當我們需要啟動一個Android應用程式時,ActivityManagerService會通過Socket程序間通訊機制,通知Zygote程序為這個應用程式建立一個新的程序。


相關推薦

Android閱讀筆記——LauncherZygote啟動過程

Launcher啟動過程            系統中的應用程式安裝好了以後, SystemServer元件接下來就通過ActivityManagerService來啟動Home應用程式Launcher了, Launcher在啟動的時候便會通過PackageManagerS

轉自 Android應用程式資源的編譯打包過程分析

原文地址   http://blog.csdn.net/luoshengyang/article/details/8744683 轉載自老羅,轉載請說明   我們知道,在一個APK檔案中,除了有程式碼檔案之外,還有很多資原始檔。這些資原始檔是通過An

Android系統預設Home(Launcher)的啟動過程小結

http://blog.csdn.net/happy08god/article/details/24265167       Android系統開機,各個應用是如何載入並被顯示到桌面上的呢?帶著這份好奇,閱讀了在 AndroidManifest.xml 會

Android閱讀筆記——Activity啟動過程

ActivityManagerService啟動Activity的過程大致如下圖所示: 在這個圖中,ActivityManagerService和ActivityStack位於同一個程序中,而ApplicationThread和ActivityThread位於另一個程序

Android閱讀筆記——IPC機制Binder

Android系統Binder機制中的四個元件Client、Server、Service Manager和Binder驅動程式的關係: Service Manager成為Binder守護程序的過程原始碼路徑:frameworks/base/cmds/servicema

Android閱讀筆記——廣播(Broadcast)機制

使用廣播的兩個步驟: 1. 廣播的接收者需要通過呼叫registerReceiver函式告訴系統,它對什麼樣的廣播有興趣,即指定IntentFilter,並且向系統註冊廣播接收器,即指定BroadcastReceiver  2. 廣播的傳送者通過呼叫sendBroadc

Android閱讀筆記——SurfaceFlinger服務

Android應用程式請求SurfaceFlinger服務渲染自己的UI可以分為三步曲: 首先是建立一個到SurfaceFlinger服務的連線, 接著再通過這個連線來建立一個Surface, 最後請求SurfaceFlinger服務渲染該Surface。 根據Surfa

Android 導讀PPT

     Android系統使用的Linux核心包含了一些專用驅動,例如Logger、Binder、Ashmem、Wakelock、Low-Memory Killer和Alarm等,這些Android專用驅動構成了Android執行時的基石。Android執行時從下到上又包括了HAL層、應用程式框架層和應用程

Android——Android應用程式的Activity啟動過程簡要介紹學習計劃

在Android系統中,Activity和Service是應用程式的核心元件,它們以鬆藕合的方式組合在一起構成了一個完整的應用程式,這得益於應用程式框架層提供了一套完整的機制來協助應用程式啟動這些Activity和Service,以及提供Binder機制幫助它們相

在《Android》系列開始,遇到讀取不到hello裝置內容的可以看一下這裡

com_android_server_HelloService.cpp的hello_getVal()在編譯的時候一直報錯: error: invalid conversion from 'int*' to 'int' 在模擬器中讀取時hard/

專訪昇陽:Android

「編者按」CSDN人氣博主羅昇陽將攜他的《Android系統原始碼情景分析》一書做客CSDN社群問答欄目,擔任第九期的嘉賓,屆時會接受廣大網友的提問,歡迎各位網友前來與羅昇陽老師一起探討Android系統。他一直致力於從原始碼角度來研究Android系統,詮釋現代化移動作業系統的實現原理。以下為採訪正文:

構建閱讀筆記

.cn htm logs com .com cnblogs log html http 1.http://www.cnblogs.com/a1264393659/p/5610786.html 2.http://www.cnblogs.com/a1264393659/p/56

構建閱讀筆記03

比較 文字 不存在 沒有 時間 開發程序 失去 人在 想法 在團隊的合作中,代碼的規範性很重要,其可以分為兩個部分,一個是代碼行為規範,主要是文字的規定,二是代碼設計規範。牽涉到程序設計,模塊之間的關系,設計模式等方面的通用原則。如果一個人的代碼沒有任何的規範性

構建閱讀筆記01

style 提高自己 結合 bsp 思想 宋體 玩具 spa nbsp 構建之法閱讀筆記01 在網上找到《構建之法》這本書的電子版,經過幾天的閱讀瀏覽,對於這本書,我覺得有很多的優點,但是更多的有一種感覺,這本書更註重的對編程者的思想的啟發。書裏提供了很多的實例以及模型或者

浪潮閱讀筆記01

微軟公司 發展 應該 協議 新的 bsp 用戶 自己 微軟 浪潮之巔閱讀筆記01 這本書是一本IT行業歷史書,從一百年前算起,AT&T 公司、IBM 公司、蘋果公司、英特爾公司、微軟公司、思科公司、雅虎公司和Google公司都先後被幸運地推到了浪尖。雖然,它們來自不

構建閱讀筆記02

了解 不同 開發流程 功能設計 軟件工程 好的 學習 階段 3.3 構建之法閱讀筆記02

構建閱讀筆記04

總結 求和 應該 核心 最有 交流 工作量 開發 分支 敏捷開發原則:1.盡早並持續地交付有價值的軟件以滿足顧客需求。2.敏捷流程歡迎需求的變化,並利用這種變化來提高用戶的競爭優勢 3.經常發布可用的軟件,發布間隔可以從幾周到幾個月,能短則短 4.業務人員和開發

構建閱讀筆記05

產品 交互 一個 閱讀 自己 設計 問題 決定 應該   典型用戶不再是一個抽象的概念,而應該是一個活生生的人。一個典型用戶描述了一組用戶的典型技巧、能力、需要、想法、工作習慣和工作環境。在設計軟件的過程中,我們往往會以自己使用產品的習慣對軟件行業的熟悉程度出發設計,忘記

構建閱讀筆記04

規模 對待 構建 思路 階段 學會 力量 適合 功能模塊 構建之法閱讀筆記04 發布日期:2017.6.16 通過結對合作,令我意識到了編寫程序不僅僅要自己能明白,也要便與他人查看和理解自己的程序。 4.1大節提到的代碼規範,我們編寫代碼時要註重代碼風格規

浪潮閱讀筆記06

數字處理 雅虎 斯坦福 系統 超過 初創 最有 過渡 高端 浪潮之巔閱讀筆記06 發布日期:2017.6.16 第一章 帝國的余輝(AT&T) 貪婪,短視是帝國 (AT&T) 轟然倒塌的根源。 第二章 藍色巨人( IBM ) 保守的改革者。 專註