android 跨进程 android:process,android 跨进程通讯

1.什么是进程。html

android 进程能够简单理解为各个app。android

但一个app能够有多个进程,(1)使用process属性来开启一个进程。常见推送sdk中使用(2)lunix命令开启进程:fork();数据库

详细了解进程,须要深刻理解Lunix操做系统的原理,水平有限很少说。推荐https://www.jianshu.com/p/43309f0dc669安全

2.重点:进程间通讯。服务器

不一样进程在各自的内存空间工做,一个进程不能访问另外一个进程的内存。虽然能够在一个面目里写的代码。网络

进程间通讯简单的讲就是一个app与另外一个app进行信息交换。(其实不是这么简单,先这么理解)app

3.进程通讯方法:socket

经过第三方(好比系统):Intent (意图),向系统提交意图,系统分配给对应处理程序并返回结果。好比取图片,调相机,打电话,下载文件等。broadcast广播 最直观了,一个发一个接。内容服务系统本地数据库ContentProvider 。经过服务器:c-s-c结构。ide

直接通讯:AIDL 进程通讯接口。Messager (对aidl的封装)重点aidl直接使用是线程不安全的,而messager是线程安全的。使用网络通讯协议通讯好比:socket 。post

4.基本就这些了。明确一些概念

IPC:即进程间通讯;

匿名共享内存(Anonymous Shared Memory):其做用之一即经过Binder进程间通讯机制来实现进程间的内存共享。

Binder:Binder是对IPC的具体实行,是IPC的一种具体实现.其本质也是调用系统底层的共享内存实现.

AIDL:进程间的通讯,速度快(系统底层直接是共享内存),性能稳,效率高,通常进程间通讯就用它. AIDL是Binder机制向外提供的接口,目的就是为了方便对Binder的使用;

消息(Messager):Messenger本质也是AIDL,只是进行了封装,开发的时候不用再写.aidl文件;

广播(BroadcastReceiver):只要注册了广播,都能收到,有点范围广,缺点速度慢必须在必定时间完成处理操做;

ContentProvider:暴露app的数据访问接口,让其余应该访问app数据.

Intent:Intent是最高层级的封装,实质是封装了对Binder的使用;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值