AIDL概述之前的博客《Android中通过Messenger与Service实现进程间双向通信》演示了如何通过Messenger实现与Service进行跨进程通信,即IPC。但用Messenger实现的IPC存在一点不足:Service内部维护着一个Messenger,Messenger内部又维护着一个Hanlder,当多个client向该Service发送Message时,这些Message需要...
分类:
移动开发 时间:
2016-07-10 18:30:00
阅读次数:
384
(一)概述
本节,我们继续来研究Service(服务)组件,本节将会学习下Android中的AIDL跨进程通信的一些 概念,并不深入到源码层次,暂时知道是什么,会用即可!(二)Service精通
1.Binder机制初涉
1)IBinder和Binder是什么鬼?我们来看看官方文档的中文翻译:
IBinder是远程对象的基本接口,是饿了高性能而设计的轻量级远程调用机制的核心部分。但他...
分类:
移动开发 时间:
2016-07-04 11:57:54
阅读次数:
262
一、什么ContentProvider
。。。
二、如何使用ContentProvider
。。。
三、沙场练兵-实例操练
。。。
四、深入理解ContentProvider原理
为什么使用ContentProvider可以实现跨进程的通讯,第一反应肯定是这货和binder有关,因为android中只有稍微跟跨进程搭上边的,必定想到binder。
下面就来分析ContentProv...
分类:
其他好文 时间:
2016-07-03 19:56:16
阅读次数:
259
临界区:当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。临界区线程同步适用范围:它只能同步一个进程中的线程,不能跨进程同步。一般用它来做单个进程内的代码快同步,效率比较高。 在.Net中有Monitor、Lock等方式是以临界区的方式来实现线 ...
分类:
编程语言 时间:
2016-07-03 00:19:04
阅读次数:
174
互斥量和临界区非常相似,只有拥有了互斥对象的线程才可以访问共享资源,而互斥对象只有一个,因此可以保证同一时刻有且仅有一个线程可以访问共享资源,达到线程同步的目的。 互斥量相对于临界区更为高级,可以对互斥量进行命名,支持跨进程的线程同步。互斥量是调用的Win32的API对互斥锁的操作,因此在同一操作系 ...
分类:
编程语言 时间:
2016-07-01 18:09:28
阅读次数:
155
Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列和一个消息循环 (Looper),特定线程的消息只能分发给本线程,不能进行跨线程,跨进程通讯。但是创建的工作线程默认是没有消息循环和消息队列的,如果想让该线程具 有消息队列和消息循环,需要在线程 ...
分类:
移动开发 时间:
2016-07-01 10:08:35
阅读次数:
263
一、什么ContentProvider 二、如何使用ContentProvider 三、沙场练兵-实例操练 四、深入理解ContentProvider原理 为什么使用ContentProvider可以实现跨进程的通讯,第一反应肯定是这货和binder有关,因为android中只有稍微跟跨进程搭上边的 ...
分类:
其他好文 时间:
2016-06-28 21:56:20
阅读次数:
354
在介绍跨程序进程间通信AIDL前,先看一下本程序activity与某个服务是怎么绑定在一起进行交互的。
直接上代码:
场景:两个项目,01和02.其中01项目是一个服务类,有一些方法;02项目是一个activity类。02项目想去使用01项目服务中的方法,就需要跨进程进行通信。
使用传统的bindservice()方法已经没办法...
分类:
移动开发 时间:
2016-06-21 07:18:11
阅读次数:
249
IPC为进程间通信或跨进程通信,是指两个进程进行进程间通信的过程。在PC和移动设备上一个进程指的是一个程序或者一个应用,所以我们可以将进程间通信简单理解为不同应用之间的通信,当然这种说法并不严谨。
在Android中,为每一个应用程序都分配了一个独立的虚拟机,或者说每个进程都分配一个独立的虚拟机,不同虚拟机在内存分配上有不同的地址空间,这就导致在不同的虚拟机互相访问数据需要借助其他手...
分类:
移动开发 时间:
2016-06-12 01:56:50
阅读次数:
339
IPC:Intent-process Communication,跨进程通信。 在一个应用程序中,可以很方便的开启多进程。开启进程的方式只有一种,只能在AndroidMenifest中为四大组件指定 Android:process属性。 在非常规情况下,也可以通过JNI在native层去fork一个 ...
分类:
移动开发 时间:
2016-06-09 12:15:23
阅读次数:
252