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 -~----------~----~----~----~------~----~------~--~---