序:兩個(gè)對(duì)象可以互相訪問(wèn)药磺,前提是兩者都存在于相同的內(nèi)存地址空間中辅柴。如果兩個(gè)對(duì)象存在不同的進(jìn)程,即處于不同的內(nèi)存地址空間中怠噪,那么只能通過(guò)跨進(jìn)程的方式去互相訪問(wèn)。傳統(tǒng)的跨進(jìn)程訪問(wèn)方式很多杜跷,比如:Sockert傍念、管道、共享內(nèi)存空間等等葛闷。傳統(tǒng)的方式都是基于Linux憋槐,而安卓也是基于Linux,為什么不使用傳統(tǒng)的跨進(jìn)程方式淑趾,而要開(kāi)發(fā)出新的方式 Binder模式阳仔?這是因?yàn)閭鹘y(tǒng)模式 存在性能或者安全性的不足,而B(niǎo)inder模式解決了傳統(tǒng)的模式的不足扣泊,在安全性上又有保障近范。
2.Binder模式的宏觀展現(xiàn)
? ? Binder模式主要涉及到四大模塊:BinderClient,BinderServer延蟹,Binder Driver评矩,ServerManager。
BinderClient:客戶端使用阱飘,相當(dāng)于我們的客戶端PC斥杜。
BInderServer:相當(dāng)于服務(wù)器。
ServerManager:相當(dāng)于Dns服務(wù)器沥匈。
BinderDriver:相當(dāng)于路由器蔗喂。
Android的Binder機(jī)制是一個(gè)龐大的體系模塊,上面將整個(gè)Binder機(jī)制概況了一遍高帖,其中并沒(méi)有涉及具體的邏輯代碼缰儿,看似簡(jiǎn)單,實(shí)際上要復(fù)雜的多棋恼。對(duì)于開(kāi)發(fā)者來(lái)說(shuō)返弹,這么底層的東西,沒(méi)必要太過(guò)于接觸爪飘。
3.具體例子 AIDL
? ? 具體代碼細(xì)節(jié)不細(xì)述义起。