所有的android的app啟動都有三種深入啟動的方式:
①app——Runtime Service——Lib
這種啟動方式是:
Ⅰapp程序中啟動application framework 層中Runtime Service
ⅡRuntime Service通過jni調用Libray層中的Native Binding
ⅢNative Binding通過動態加載的方式來調用HAL Library層的東西
ⅣHAL Library再調用Linux Kernel的東西 相應示意圖如下:
②app——Runtime Service——Native Service——Lib
Ⅰapp調用application frame work 中的runtime service
Ⅱruntime service 通過jni機制來調用natvie service binding
Ⅲnative service binding 通過遠程的IPC機制來調用native service
ⅣNative Service通過動態加載的方式來調用HAL Library層的東西
ⅤHAL Library再調用Linux Kernel的東西 相應的示意圖如下:
③app——Runtime Service——Native Deamon——Lib
Ⅰapp調用application frame work 中的runtime service
Ⅱruntime service 通過jni機制來調用natvie service binding
Ⅲnative service binding 通過socket機制調用native deamon 進程
Ⅳnative deamon 進程通過動態加載的方式來調用HAL Library層的東西
ⅤHAL Library再調用Linux Kernel的東西 相應的示意圖如下:
這就是app在android各層中調用理解三種形式。