Android IPC —— IPC 机制的简介及Bindler

本文详细介绍了Android中为何需要多进程以及进程间通信(IPC)的重要性,重点讲解了Binder IPC机制,包括Binder的基本概念、优势以及实现原理。Binder是Android系统中实现IPC的关键,相较于其他通信方式,它具有高性能、稳定性和安全性。通过Binder,应用可以实现跨进程的Service、ContentProvider等组件间的通信,并通过代理模式使得不同进程间的对象调用变得可能。
摘要由CSDN通过智能技术生成

1.进程的概念

  • 进程一般指一个执行单元,在pc和移动设备上指一个程序或者一个应用。
  • 进程中可以包含多个线程,线程是cpu调度的最小单位。

2.Android中为什么一个APP会需要多个进程

  1. 分散内存占用
    Android对于一个进程所占用的内存是有限制的,但是如果我们程序需要大量的内存的话,可以通过多个进程来分担
  2. 实现多模块
    应用太大了之后肯定会有多个模块
  3. 一个进程退出另一个进程仍可以工作
    比如子进程是推送服务,那么哪怕主进程推出了,推送服务仍然能正常工作
  4. 守护进程
    如果我们主进程需要保活,那么可以通过守护进程去唤醒主进程

3. Android 中使用多进程的原因

  • 第一种情况是一个应用因为某些原因自身需要开启多进程模式,主要的原因就是2中介绍的。
  • 第二种情况是两个不同的应用之间需要进行数据交互,不同的应用本身就是两个不同的进程,因此就必须要使用进程间通信方式来达到数据交换的目的。

4.为什么要进行进程间通信

  • 静态成员和单例模式完全失效:一个进程其实就相当于一个应用,一个应用对应一个虚拟机,一个虚拟机对应一块内存地址,多个进程就意味着多个虚拟机,多个内存地址,所以静态变量,单例模式肯定失效了
  • 线程同步机制完全失效:不在一块内存地址,不管是锁对象还是锁全局类都无法保证线程同步,因为不同线程锁的不是一块内存。
  • SharedPreferences的可靠性下降:SharePrefernces不支持两个进程同时取执行写操作,它底层是通过读写XML文件来实现的,并发写会出问题。会导致一定几率的数据丢失。
  • Application会多次创建:重启一个进程,就相当于重启一个应用,重启应用,肯定创建新的Application。

5. IPC机制简介

IPC是Inter-Process Communication的缩写,含义就是跨进程通信。

  • IPC(进程间通信)机制不是Android系统所独有的,其他系统也有相应的进程间通信机制。
  • Android系统架构中,大量采用了Binder机制作为IPC,是Android系统中最重要的组成。
  • 当然也存在部分其他的IPC方式,比如Zygote通信便是采用socket。

Android系统中,每个应用程序是由Andr

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值