android 里面的两个APK通信的方式有哪些?

自己网上查了查,总结了一下:

1. 广播,最简单的方法,这个实现起来比较简单

2. AIDL,功能强大,支持一对多并发通信,支持实时通信。

3. 网上一个人写的:

思路  

  通过apk1调用apk2的services,
  在onServiceConnected的时候返回apk2中的自定义IBinder对象,
  通过反射调用apk2中自定义IBinder对象中的方法getView(Handler handler),把apk1中的handler对象传入apk2中
  可把apk2中的view对象通过handler.obtainMessage(1, view).sendToTarget();返回到apk1中
  这样子apk1就能调用apk2中view对象了

附上下载包:源码包

4.和第三种类似,有一个可以获取另一个APK的context的方法,createPackageContext(String, int),获取到context方法之后就可以调用另一个apk的方法了,但是要保证另一个apk是安装过的,具体是使用sharedUserId来解决的
参考资料:http://www.cnblogs.com/mythou/p/3258715.html

5.如果另一个apk没有被安装过呢?

 4和5两种方式,可以参考网上的两片大牛的博文

  点我

6.文件共享,简单易用,适用于不是高并发并且不需要实时性的进程间实时通信

7.Messenger,功能一般,支持一对多串行通信,支持实时通信,缺点是不能很好处理高并发情形,不支持RPC,数据通过Message进行传输,因此只能传输Bundle支持的数据类型。适用场景是低并发的一对多即时通信,无RPC需求,或者无须要返回结果的RPC需求。

8.ContentProvider,优点是在数据源处理方面功能强大,支持一对多并发数据共享,可通过call方法扩展其他操作,适用与一对多的进程间数据共享。

9.Socket,功能强大,可以通过网络传输字节流,支持一对多并发实时通信,适用于网络数据传输

更多相关文章

  1. Android实现多页左右滑动效果,支持子view动态创建和cache
  2. Android第三方库
  3. 从Android到React Native开发(二、通信与模块实现)
  4. Android(安卓)AIDL进程IPC通信 一次就好
  5. Android(安卓)线程间通信机制(ITC详解)
  6. Android支持HTML标签
  7. Android利用Binder进行通信
  8. Android下使用OpenCV
  9. Android公共库选型 单元测试 依赖管理等调研

随机推荐

  1. Android(安卓)使用Vitamio打造自己的万能
  2. android 7.1 apk的systemuid和系统应用Se
  3. 关于Android调用单目摄像头以及双目摄像
  4. Android(安卓)Socket连接(模拟心跳包,断线
  5. android adb 流程原理代码分析(一)
  6. 50w字+的Android技术类社招面试题汇总(附
  7. Android实践之简易天气(一)
  8. Android导入SVG矢量图
  9. 手機大戰:Mango、Android(安卓)4.0 和 iOS
  10. Flickr 推出 Android(安卓)App,头条新功能