首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

懂得Android系统的进程间通信原理(二)-RPC机制

2012-06-26 
理解Android系统的进程间通信原理(二)----RPC机制理解Android系统中的轻量级解决方案RPC的原理,需要先回顾

理解Android系统的进程间通信原理(二)----RPC机制
理解Android系统中的轻量级解决方案RPC的原理,需要先回顾一下JAVA中的RMI(Remote Method Invocation)这个易于使用的纯JAVA方案(用来实现分布式应用)。有关RMI的相关知识,可以通过下图来归纳:懂得Android系统的进程间通信原理(二)-RPC机制Android中的RPC也是参考了JAVA中的RMI方案,这里我们再详细了解一下RPC的实现过程。Android中的RPC机制是为了实现一个进程使用另一个进程中的远程对象,它使用了Android自己的AIDL(接口定义语言),使用户很方便地定义出一个接口作为规范,通过一个远程Service为代理 ,客户端在绑定该远程Service过程中获取远程对象,进而使用该对象。可参考下图所示:懂得Android系统的进程间通信原理(二)-RPC机制补充:RPC的另一个目的是对客户端只声明接口及方法,隐藏掉具体实现类,供客户端直接获取此接口实例。实例代码:实例一:通过Service来远程调用一个接口子类的函数方法功能描述:在MainActivity中通过绑定MyService服务类,来远程调用MyPlayer(实现了IPlayer接口)的方法过程。需要定义一个IPlayer.aidl文件,ADT工具会自动生成一个IPlayer接口类,然后再由MyPlayer继承IPlayer接口类中的静态内部抽象类,实现接口方法,进而供其它应用程序远程调用。(在本例中为了方便,MainActivity与MyService类同处一个应用程序中,实现运用时,可以不在同一个应用程序中,只要有权限访问MyService服务,就能得到IPlayer接口,进而执行该接口实例方法)程序清单:IPlayer.aidl?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.magc.rpc" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".MyService"> <intent-filter> <action android:name="com.magc.rpc.action.MYSERVICE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </service> </application></manifest>上面Android应用程序运行后结果如下所示:懂得Android系统的进程间通信原理(二)-RPC机制懂得Android系统的进程间通信原理(二)-RPC机制小结:1、重点理解Android中对AIDL文件的定义,以及理解ADT工具自动生成的接口类IPlayer,特别是它的静态内部类Stub以及Stub的asInterface方法,2、Service作为一个代理角色,在其它应用程序通过Stub类的asInterface方法在绑定到一个服务时才能实现返回该接口实例,进而对该实例进行相关操作。转自:http://www.cnblogs.com/mandroid/archive/2011/02/26/1965428.html

热点排行