最核心的,我認(rèn)為就是
mRemote.transact(FUNC_ID,data,reply,0);
protected boolean onTransact(int code,Parcel data,Parcel reply, int flags)
這一組方法。
客戶端通過(guò)請(qǐng)求transact ,通過(guò)binder 负敏,回調(diào)onTransact 這個(gè)時(shí)候阻塞客戶端線程。
在onTransact 調(diào)用service端實(shí)現(xiàn)了aidl接口的方法秘蛇。
返回值通過(guò) Parcel reply 參數(shù)帶回給客戶端.transact 方法其做。
看源碼 執(zhí)行完transact 后 數(shù)據(jù)的存儲(chǔ)順序是 先返回值,接著是一個(gè)可以out 的參數(shù)(tag 為out 赁还,inout)
然后在transact 方法中解析 reply 妖泄。對(duì)out 的參數(shù)賦值,然后 返回result