一、應用程式程序建立
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...