深入浅出 Android核心组件Service(5)

移动开发 Android
本文51CTO专栏作者傻蛋将向我们介绍深入浅出 Android核心组件Service第五部分的系列文章。

在远程的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进程中运行。

 

责任编辑:佚名 来源: 最牛网
相关推荐

2012-02-07 14:37:01

Android核心组件Service

2012-02-07 15:09:03

Android核心组件Service

2012-02-07 14:45:52

Android核心组件Service

2012-02-07 15:16:01

Android核心组件Service

2012-02-21 13:55:45

JavaScript

2011-07-04 10:39:57

Web

2021-03-16 08:54:35

AQSAbstractQueJava

2011-05-05 14:44:43

SurfaceFlinSurfaceActivity

2013-11-14 15:53:53

AndroidAudioAudioFlinge

2022-05-06 07:19:11

DOMDiff算法

2022-09-26 09:01:15

语言数据JavaScript

2021-07-20 15:20:02

FlatBuffers阿里云Java

2019-01-07 15:29:07

HadoopYarn架构调度器

2012-05-21 10:06:26

FrameworkCocoa

2017-07-02 18:04:53

块加密算法AES算法

2022-01-13 09:38:25

Android架构设计

2019-03-10 21:33:14

5G标准网络

2012-05-30 15:17:54

HTML5

2012-05-31 09:35:43

HTML5

2021-07-19 11:54:15

MySQL优先队列
点赞
收藏

51CTO技术栈公众号