Android啟動過程
阿新 • • 發佈:2017-09-13
runtime art -c 創建 runt 啟動分析 service inter 建立 1、背景知識
2、Android運行時的啟動分析
1、背景知識
Init進程是Linux環境下非常重要的一個進程,而Zygote進程是Java環境下的第一個進程,所有其他環境下的進程都是由Zygote進程來進行fork的,而init進程在啟動Zygote進程之後,初始化Zygote進程之前,會先進行Android Runtime的啟動和環境建立。
Init進程主要負責文件系統的掛載,屬性的初始化,各種配置的加載啟動以及Action觸發,Service的啟動。Zygote作為Java環境下的服務進程,也在Init.rc中進行了配置,而init進程是由main函數進行觸發。
2、Android運行時的啟動分析
首先創建一個AppRuntime對象,接著調用它的start方法,而此start方法在父類AndroidRuntime中進行了定義,並且此處的參數為com.android.internal.os.ZygoteInit。
在系統建立androidRuntime的時候,創建Java虛擬機,並將系統中一些JNI函數註冊到Java虛擬機中,此後只需要通過JNI就可以調用這些Native方法。
Android啟動過程