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

帐滓Android的BinderProxy和Binder??

 2010-05-31 14:28:00 来源:WEB开发网   
核心提示:Java?的Activity透咿BinderProxy?陪哞距的(Remote)服?咄行?通,例如myBinder擂承Binder:?Java?而愚之,帐滓Android的BinderProxy和Binder??,myActivity可以?由bindService()而建立它陪myBinder之殓的呗劫,然而,?且,?

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

帐滓Android的BinderProxy和Binder?? - On<wbr>ce - 许兴旺的博客

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

帐滓Android的BinderProxy和Binder?? - On<wbr>ce - 许兴旺的博客

上?之目的: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 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接