【Android 学习】IPC机制(一)Android IPC简介及多进程模式

简介: 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/51233367 这几篇博客都是,最近看任玉刚的《Android 开发艺术与探索》第二章的读书笔记,看这章看了好几遍,总算是对Android IPC机制有了一定的理解。
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/51233367
这几篇博客都是,最近看任玉刚的《Android 开发艺术与探索》第二章的读书笔记,看这章看了好几遍,总算是对Android IPC机制有了一定的理解。

一、什么是Android  IPC

   IPC 是Inter-Process Communication 的缩写,含义是进程间通信或者跨进程通信,故名思意:就是指两个进程之间的通信,也就是数据的交换。
这里先普及一个老生常谈的问题: 就是什么是进程?进程与线程有什么区别?
进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
一个程序至少有一个进程,一个进程至少有一个线程.
进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
在Android中主线程也叫UI线程,如果我们将大量的耗时操作放在主线程中去执行,很可能造成ANR(Application Not Responsing)即应用无响应。解决这个问题的办法是将这些耗时操作放在子线程中去执行。
IPC 不是Android 独有的,任何一个操作系统都有IPC,如Windows 的剪切板等。Linux上有命名管道、共享内存和信号量机制。Android IPC通信方式有Bundle、文件共享、Messenger、AIDL、ContentProvider、Socket。还有一个就是
Android 特有的通信方式Binder。

二、Android中的多进程模式

 Android  多进程就是一个Android APP中有多个进程在同时运行,一个应用默认只有一个进程,这个进程(主进程)的名称就是应用的包名,进程是系统分配资源和调度的基本单位,每个进程都有自己独立的资源和内存空间,其它进程不能任意访问当前进程的内存和资源,系统给每个进程分配的内存会有限制。
开启Android  多进程的方法只有一个,那就是在Androidmanifest.xml文件中添加android:process属性即可。
我们知道不同进程不能共享内存,所以多进程会使运行在不同进程的Android四大组件,只要通过共享内存来共享数据实现通信,都会失效。
主要带来一下几个方面的问题:
静态成员和单例模式完全失效。 线程同步机制完全失效。 SharedPreferences的可靠性下降。 Application会多次创建(Application 多进程相当于应用重启)。


相关文章
|
存储 安全 Android开发
探索Android与iOS的隐私保护机制
在数字化时代,移动设备已成为我们生活的一部分,而隐私安全是用户最为关注的问题之一。本文将深入探讨Android和iOS两大主流操作系统在隐私保护方面的策略和实现方式,分析它们各自的优势和不足,以及如何更好地保护用户的隐私。
|
消息中间件 Android开发
Android Handler的使用方式以及其机制的简单介绍
Handler 是 Android 中实现线程间通信的重要机制,可传递任意两线程数据。常用场景包括子线程向主线程(UI 线程)传递结果,以及主线程向子线程发送消息。其核心涉及四个类:Handler(发送/接收消息)、Message(消息载体)、MessageQueue(消息队列)和 Looper(消息循环泵)。基本流程为:Handler 发送 Message 至 MessageQueue,Looper 从队列中按 FIFO 取出并处理。
391 0
|
Linux Android开发 iOS开发
深入探索Android与iOS的多任务处理机制
在移动操作系统领域,Android和iOS各有千秋,尤其在多任务处理上展现出不同的设计理念和技术实现。本文将深入剖析两大平台在后台管理、资源分配及用户体验方面的策略差异,揭示它们如何平衡性能与电池寿命,为用户带来流畅而高效的操作体验。通过对比分析,我们不仅能够更好地理解各自系统的工作机制,还能为开发者优化应用提供参考。
|
算法 Linux 调度
深入探索安卓系统的多任务处理机制
【10月更文挑战第21天】 本文旨在为读者提供一个关于Android系统多任务处理机制的全面解析。我们将从Android操作系统的核心架构出发,探讨其如何管理多个应用程序的同时运行,包括进程调度、内存管理和电量优化等方面。通过深入分析,本文揭示了Android在处理多任务时所面临的挑战以及它如何通过创新的解决方案来提高用户体验和设备性能。
988 1
|
消息中间件 存储 Linux
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
440 1
|
存储 安全 数据安全/隐私保护
探索安卓与iOS的隐私保护机制####
【10月更文挑战第15天】 本文深入剖析了安卓和iOS两大操作系统在隐私保护方面的策略与技术实现,旨在揭示两者如何通过不同的技术手段来保障用户数据的安全与隐私。文章将逐一探讨各自的隐私控制功能、加密措施以及用户权限管理,为读者提供一个全面而深入的理解。 ####
1101 1
|
Android开发 数据库管理 定位技术

热门文章

最新文章