一、整体结构

下面将逐一介绍4种通讯方式

二、4种通讯方式

1、Activity

Android内置了许多可供其他程序跨进程访问的Activity,比如跳至打电话页面(指定Action,uri跨进程访问)

    Intent callIntent = new  Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678" );  startActivity(callIntent);
  • 1
  • 2

与进程内访问不同,跨进程并不需要指定Context对象和Activity的Class对象,而需要指定要访问的Activity的Action(一个字符串),有些Activity还需要指定一个Uri(通过Intent构造方法的第二个参数指定)

2、Content Provider

列子:Android本身提供了很多,如:音频,视屏,联系人信息等等,我们可通过这些Content Provider获取相关信息的列表,这些列表数据将以Cursor对象返回,因此Content Provider返回的数据是二维表形式。

3、Broadcast

广播是一种被动跨进程通讯的方式。当某个程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。这就象电台进行广播一样,听众只能被动地收听,而不能主动与电台进行沟通。 
在应用程序中发送广播比较简单。只需要调用sendBroadcast方法即可。该方法需要一个Intent对象。通过Intent对象可以发送需要广播的数据。

4、AIDL Service

广播有一个缺点,在手机中广播较多时会有明显的延时,甚至有广播发送不成功的情况出现。利用AIDL Servic实现跨进程通信应运而生, 
注意普通的Service并不能实现跨进程操作,实际上普通的Service和它所在 的应用处于同一个进程中,而它也不会专门开一条新的线程,因此如果在普通的Service中实现耗时的任务,需要新开线程

要实现跨进程通信,需要借助AIDL(Android Interface Definition Language)。Android中的跨进程服务其实是采用C/S的架构,因而AIDL的目的就是实现通信接口。

Android 系统(35)---Android 进程间通信的几种实现方式相关推荐

  1. android 关机功能,Android系统关机或重启的几种实现方式

    前阵子工作上遇到一些关于Android系统关机或重启的系统修改,于是,做了一些尝试,也搜集了一下资料,现在整理一下,做一些总结,方便学习或者日后工作的需要. 默认的SDK并没有提供应用开发者直接的An ...

  2. 关于Android系统隐藏导航栏的两种方法

    关于Android系统隐藏导航栏的两种方法 在NXP的imx6q和全志的A40I上试过 1.frameworks/base/core/res/res/values/dimens.xml中修改 < ...

  3. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  4. android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...

    Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...

  5. 【android系统】android系统升级流程分析(二)---update升级包分析

    接下来我们将通过几篇文章来分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.今天让我先来分析下升级包update.zip. 一 ...

  6. 【android系统】android系统升级流程分析(一)---recovery模式中进行update包升级流程分析

    今天我们直接来看下android中具体的升级过程是如何的. 升级流程概述 升级的流程图: 升级流程分析 第一步:升级包获取 升级获取可以通过远程下载,也可直接拷贝到指定目录即可. 第二步:准备升级 然 ...

  7. android log抓取方法,Android系统之Android抓取各种log的方法

    Android系统之Android抓取各种log的方法 2018年11月25日 | 萬仟网移动技术 | 我要评论 android之android抓取各种log的方法 1.logcat (四类log b ...

  8. android 多线程间通信,android实现线程间通信的四种常见方式

    1,通过Handler机制 主线程中定义Handler,子线程发消息,通知Handler完成UI更新,Handler对象必须定义在主线程中,如果是多个类直接互相调用,就不是很方便,需要传递conten ...

  9. android系统自动休眠代码流程,一种基于Android系统下的可控休眠方法及系统与流程...

    本发明涉及一种手机应用,尤其涉及一种基于android系统下的可控休眠方法及系统. 背景技术: android设备的休眠指的是当长时间不用手机时手机会自动进入一个省电模式,调低或者关闭一部分电压的输出 ...

最新文章

  1. 网络编程(part10)--socket套接字编程之UDP套接字
  2. vue切换路由的时候,如何让右侧滚动条滚动到顶部呢?
  3. POJ-1903 Jurassic Remains
  4. 【LeArm】动手实践机械臂(一)
  5. android小程序内核,小程序的运行环境:iOS(iPhone/iPad)、Android
  6. 史上最全 Android 面试资料集合
  7. vs2013 mfc资源在另一个编辑器中打开
  8. ams1117封装尺寸
  9. 热门!实用!游戏rpg制作素材网站推荐!
  10. vue函数@click.prevent使用纪要
  11. 空间想象力强的人适合学计算机吗,我的理解力较好,和对图形的空间想象力较强,不知我学习什么专业好,什么样的工作适合?各位有才们,请了...
  12. iOS基础教程:记录从零开始到APP发布过程
  13. [分享]来自CSDN的精华网址
  14. 苹果电脑写python体验好吗_苹果笔记本系统好用吗,浅谈Mac的优缺点
  15. Centos7 进入单用户模式,修复系统
  16. 视觉的目的是什么?从监督学习到对比学习,回顾CV发展史
  17. 数据源EPMSSqlDataSource的使用
  18. Python match case结构化模式匹配
  19. 高中数学基础-2.3幂函数
  20. Execl中正确输入长串数字的方法

热门文章

  1. linux MISC 驱动模型分析
  2. 读写自旋锁,第1部分(来自IBM)
  3. 基于依赖统计的方法——TPDA
  4. 【LeetCode】【HOT】101. 对称二叉树(BFS+队列/递归)
  5. 【数据库】第三章 事务、索引和SQL优化
  6. 39个必知必会的SQL 性能调优方法
  7. [转] ASP.NET使用AJAX联动
  8. 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
  9. k8s学习(一)——kubectl与api-server之间的交互核心过程
  10. Linux初步(一)——关于操作系统的启动