WEB开发网
开发学院手机开发Android 开发 帐滓Android的BinderProxy和Binder?? 阅读

帐滓Android的BinderProxy和Binder??

 2010-05-31 14:28:00 来源:WEB开发网   
核心提示:Java?的Activity透咿BinderProxy?陪哞距的(Remote)服?咄行?通,例如myBinder擂承Binder:Android的BinderProxy和Binder?? - On<wbr>ce - 许兴旺的博客" src="http://www.cnmsdn.com/

Java?的Activity透咿BinderProxy?陪哞距的(Remote)服?咄行?通。例如myBinder擂承Binder:

帐滓<a target=Android的BinderProxy和Binder?? - On<wbr>ce - 许兴旺的博客" src="http://www.cnmsdn.com/attached/201005/20100530170503_67964.jpg" width="447" border="1" height="225" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>

?Java?而愚之,myActivity可以?由bindService()而建立它陪myBinder之殓的呗劫。然而,呃?呗劫是透咿C++?的?制而哌成的。如果你只想要檫办Java??的?用程式的?,?不需要?坐本文。如果你想??Android框架的原理,或修改Android框架,或撰?Android的核心服?,咄行?硬整合,就必?熟悉幕後的重要?制。如下?所示:

帐滓<a target=Android的BinderProxy和Binder?? - On<wbr>ce - 许兴旺的博客" src="http://www.cnmsdn.com/attached/201005/20100530170505_28620.jpg" width="538" border="1" height="377" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>

上?之目的:myActivity想呼叫BinderProxy的IBinder::transact()函?,咄而呼叫到myBinder的IBinder::onTransact()函?。就像一??,?端分?是myActivity和myBinder。

?了要哌成上述的目的,需要建立一些物件(如同?墩),例如BpBinder物件,以及JavaBBinder物件;如此才能哌成目的。???真明如下:

** ?myService::onCreate()函?昭生myBinder物件?,就呼叫到Binder()函?,它?myBinder物件的mObject?位ID存入Native公用??gBinderOffsets.mObject彦。接著,init()?JavaBBinderHolder物件的?考存入myBinder物件的mObject?位彦。** 此?,若已知myBinder物件,藉由ibinderForJavaObject()可取得?物件相??的JavaBBinderHolder物件。

** 例如,?myActivitty呼叫bindService()函?,就藉由ibinderForJavaObject()可取得?物件相??的JavaBBinderHolder物件,然後?JavaBBinderHolder物件取得晷於myBinder的儋?,咄而昭生JavaBBinder物件?陪myBinder物件相互蔌映。?已知JavaBBinder物件,可藉由javaObjectForIBinder 可取得?物件相??的myBinder物件。

** 建立了右?的?墩(即JavaBBinder物件)之後,也必?建立左?的?墩。Android的Binder System可以?忙建立左?的?墩:BpBinder物件。

** 已知BpBinder物件,藉由javaObjectForIBinder ()可取得?物件相??的BinderProxy物件, 或昭生新的BinderProxy物件。?且,?BindProxy物件的mObject?位ID存入Native公用??gBinderProxyOffsets.mObject彦。??BpBinder物件的?考存入BinderProxy物件的mObject?位彦。

1 2 3 4 5 6  下一页

Tags:Android BinderProxy Binder

编辑录入:coldstar [复制链接] [打 印]
赞助商链接