在远程的Service调用中,Activity和Service到底是怎么沟通的?对于Service的远程调用,一般会在不同的工程中也就是两个不同的进程,那么进程的沟通机制是什么?傻蛋画了一个图来说明。

Android进程在进行远程通讯时会:

1.产生一个主线程。

2. 产生Looper对象

3.产生一个消息队列。

4.产生一个虚拟机对象来实现Java和C++之间的沟通。

5.通过C/C++层的IPC来实现远程通讯。

所谓的 进程间通讯:Android通过IBinder接口来实现进程间的通讯,MyActivity会调用IBinder的transact()函数通过IPC来调用远程的onTransact()函数。注意: 在默认情况下,如果Service和Activity、BroadcastReceiver在同一个工程里面,那么这些组件都会在同一个进程中执行,并且由主线程负责执行,当然也可以通过配置让其在不同的组件里面执行,比如上一节我们就让Service在Remote进程中运行。

更多相关文章

  1. Android中的PID,TID和UID
  2. Android——AsyncTask
  3. android 5.0 创建多用户 双开多开应用(1)
  4. Android(安卓)P版本(9.0) 新功能介绍和兼容性处理
  5. Android(安卓)NDK开发之Jni调用Java对象
  6. android 蓝牙小总结
  7. Android的内存,进程调度管理
  8. 任务和进程
  9. Android内存回收机制

随机推荐

  1. Android通讯录数据库介绍与基本操作(增删
  2. 如何成为一个更好的Android开发者:30+个
  3. 【幻灯片分享】Android音频口数据通信开
  4. Android/OPhone开发完全讲义(china-pub首
  5. 里程碑2给Android市场造成哪些影响
  6. Android和设计模式:策略模式
  7. Android新手入门 FAQ
  8. Android(安卓)程式开发:(一)详解活动 —— 1
  9. Android的Window类
  10. Android进程分类与管理