Android高階(二)應用程序啟動

2021-09-30 19:45:13 字數 1251 閱讀 3047

一、應用程式程序建立

1、 應用程序請求

2、接收建立請求

通過zygoteserver的runselectloop方法處理建立程序的請求–>

zygoteconnection的runonce處理請求資料–>

zygoteinit的zygoteinit方法中建立binder執行緒池–>

runtimeinit的invokestaticmain方法

private static void invokestaticmain(string classname, string ar**, classloader classloader)

throws zygote.methodandargscaller catch (classnotfoundexception ex)

method m;

try );

} catch (nosuchmethodexception ex) catch (securityexception ex)

......

throw new zygote.methodandargscaller(m, ar**);

}

最後丟擲乙個methodandargscaller異常,被zygoteinit的main方法處理–>

zygote的run方法

public void run() );

} catch (illegalacces***ception ex) catch (invocationtargetexception ex) else if (cause instanceof error)

throw new runtimeexception(ex);

}}

通過反射呼叫了activitythread的main方法

3、activitythread

public static void main(string args) 

if (false)

// end of event activitythreadmain.

trace.traceend(trace.trace_tag_activity_manager);

//looper開始處理訊息

looper.loop();

throw new runtimeexception("main thread loop unexpectedly exited");

}

android高階應用

android activity service broadcaster三大元件之間互相呼叫 service實時向activity傳遞資料案例 android service獲取當前位置 gps 基站 四十七 實現呼叫android手機的拍照功能 四十六 android中的bitmap 四十五 an...

Android 應用實現多程序

android service 跨程序實現 同乙個應用程式中實現多個程序通訊 通訊機制 使用aidl通訊 具體步驟 1 新建aidl檔案 例 iclickaidlinte ce.aidl inte ce iclickaidlinte ce 以上步驟,如果沒有差錯,重新編譯,會自動生成乙個 iclic...

Android 應用開機自啟和無需許可權開啟懸浮框

開機自啟主要自定義廣播接收類,且需要在清單檔案中註冊,不要在 中動態註冊。android.permission.receive boot completed android.permission.broadcast sticky android.intent.action.boot complete...