Good summary. A bit more detail:

Generally, any class that begins with upper case "I" uses an IPC
protocol we call "binder". Binder has a unique property in that if the
client and the server are in the same process, it turns into a simple C
++ method call, very low overhead. Binder calls from the client appear
to be synchronous calls, i.e. the calling thread is suspended until
the remote thread has executed the function and returned a result. In
the same process, the server function is performed on the client
thread (which can lead to some interesting deadlock problems if the
server has a callback interface to the client).

Binder doesn't have an explicit full-duplex interface. If the server
needs to callback on the client, there will be a separate binder
interface, usually with an asynchronous interface so the server
doesn't block on the client. In this case, the BnXxxxx Client will be
the client remote and the BpXxxxxxClient will be on the server side.

On Dec 18, 4:18 am, hanchao3c <hancha...@gmail.com> wrote:
> I is  basic.
> General speaking . Surface will wrapper to JAVA . ISurface is an
> interface class , which has 3 interface it is used by C++.
>  ISurface, BnSurface, BpSurface are follow Binder framework.
> ISurface is interface
> BnSurface is native service
> BpSurface  is proxy service
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"android-framework" group.
To post to this group, send email to android-framework@googlegroups.com
To unsubscribe from this group, send email to 
android-framework+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/android-framework?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to