1.Bundle/Intent四大组件之间传递数据
2.文件共享
3.Broadcast
广播是一种被动跨进程通讯的方式。当某个程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。
4.ContentProvider
Android系统四大组件之一,底层也是Binder实现的,主要用来为其他APP提供数据。
5.AIDL
AIDL通过定义服务端暴露的接口,以提供给客户端来调用。通过编写aidl文件来设计想要暴露的接口,编译后会自动生成响应的java文件,服务器将接口的具体实现写在Stub中,用iBinder对象传递给客户端,客户端bindService的时候,用asInterface的形式将iBinder还原成接口,再调用其中的方法。
6.Messenger
Messenger是基于AIDL实现的,服务端(被动方)提供一个Service来处理客户端(主动方)连接,维护一个Handler来创建Messenger,在onBind时返回Messenger的binder。
双方用Messenger来发送数据,用Handler来处理数据。Messenger处理数据依靠Handler,所以是串行的,也就是说,Handler接到多个message时,就要排队依次处理。
7.Socket
服务器中定义ServerSocket来监听端口,客户端使用Socket来请求端口,连通后就可以进行通信。