当前位置: 首页 > news >正文

微信怎么做网站域名检测查询

微信怎么做网站,域名检测查询,vps云主机可以做网站,独立网站建设什么是IPC? Android 进程间通信(IPC,Inter-Process Communication)是Android操作系统中不同进程间交换数据和资源的一种机制。由于Android是多任务操作系统,每个应用通常运行在自己的进程中,以提高安全性和…

什么是IPC?

Android 进程间通信(IPC,Inter-Process Communication)是Android操作系统中不同进程间交换数据和资源的一种机制。由于Android是多任务操作系统,每个应用通常运行在自己的进程中,以提高安全性和资源管理的效率。因此,当两个或多个应用需要共享数据时,就需要通过IPC机制来实现。

 

 

什么是进程呢?它和线程有什么关系?


进程是系统进行资源分配和调度的基本单位,是操作系统结构的基础;

早期表现为一个程序,现在可以看作线程的容器。

线程是CPU调度的最小单位。

一个进程可以包含一个或者多个线程,进程向系统申请资源,线程使用进程拥有的资源。

 


IPC不是Android所独有的,是现代操作系统都存在的机制,对于Android来说。它是一种基于Linux内核的移动OS,他的进程通信方式不仅仅包含信号量、套接字、管道等等,还包括了Android独有的、特色的Binder机制。

 

 

多进程?应用场景

 

谈到IPC的使用场景就必须提到多进程。

只有面对多进程这种场景下,才需要考虑多进程通信。

至于一个应用使用多进程的原因:

1、辟如有些模块由于特殊原因需要运行在独立的进程;

2、为了加大一个应用可使用的内存,通过多进程的方式申请多份内存空间。

3、多个应用之间进行数据共享。(一家公司出了一系列的好几个app)

4、使用ContentProvider去查询数据时也是一种进程通讯,只是对我们来说透明化了,无法感知到。

 

常见通信方式梳理(不仅仅android)


进程间常见的通信方式有以下几种:
1、Socket:通用接口,传输效率低,主要用在跨网络通信和本机进程间通信,传输过程需要拷贝2次数据;
2、共享内存:虽然无需拷贝,但控制复杂;
3、Binder:基于C/S模式,只需1次拷贝,安全性高。

不同的通信方式使用场景也不同:

  •    Socket:适合网络间的通信,或者效率要求不高的本机进程间通信;
  •    共享内存:适合效率要求较高的底层进程间通信;
  •    Binder:兼顾效率和安全性的进程间通信,需要返回结果;
  •    Messenger:低并发的、一对多的进程间通信,无需返回结果。

 

常见的Android IPC 机制

 

  1. Content Providers:用于在不同应用间共享数据。它提供了一个标准的接口,允许一个应用访问另一个应用的特定数据集。

  2. Broadcast Receivers:允许广播消息到其他应用或系统组件。通常用于跨应用的事件通知。

  3. Bound Services:通过绑定服务(Binding Service)的方式,允许一个应用与服务交互。这通常用于执行长时间运行的操作并与客户端应用共享数据。

    Messenger:基于AIDL(Android Interface Definition Language)的轻量级IPC机制,用于在不同应用组件间传递消息。
  4. AIDL (Android Interface Definition Language):用于定义可以在不同进程间调用的接口。它允许你创建一个接口,该接口的实现可以在一个进程中,而调用可以在另一个进程中。

  5. Socket:使用TCP或UDP套接字进行网络通信,虽然主要用于网络通信,但在某些情况下也可以用于本地IPC。

  6. Shared Preferences:虽然不是IPC机制,但可以用来在不同组件间共享简单的数据(如偏好设置)。

  7. Files / Databases:通过文件或数据库共享数据,虽然这不是IPC,但在某些情况下可以用来在不同进程间共享复杂数据。

 

使用总结

其实 Android 中跨进程通信的实现,就是利用四大组件来实现的。对方式的选择,我们总结一下:

1、如果跨进程需要界面上的交互操作,用隐式startActivity()方式实现。
2、如果需要共享数据,用Content Provider方式实现。
3、排除前两种情形,就用AIDL。
4、仅仅为了完成功能,又确实不会用AIDL的,就用Broadcast吧!!!虽然很low,但比实现不了功能还是强多了。

 

重点知识

 

Binder跨进程通信

 

传统的跨进程通信需拷贝数据2次,但 Binder 机制只需1次,主要是使用到了内存映射,具体下面会详细说明。

 

跨进程通信的核心原理:内存映射,具体请看文章:

操作系统:图文详解 内存映射 - 简书

对比 Linux (Android基于Linux)上的其他进程通信方式(管道、消息队列、共享内存、信号量、Socket),Binder 机制的优点有:

 

Binder简介 

 

Binder 跨进程通信机制 模型 基于 Client - Server 模式:

 

  Binder 驱动的作用和 原理图

Binder驱动

 

 

 

Binder原理

 

Client进程、Server进程 & Service Manager 进程之间的交互 都必须通过Binder驱动(使用 open 和 ioctl文件操作函数),而非直接交互。

具体原因:

  • Client进程、Server进程 & Service Manager进程属于进程空间的用户空间,不可进行进程间交互;
  • Binder驱动 属于 进程空间的 内核空间,可进行进程间 & 进程内交互。

 

所以,原理图可表示为以下(虚线表示并非直接交互—):

 

Binder驱动 & Service Manager进程 属于 Android基础架构(即系统已经实现好了);而Client 进程 和 Server 进程 属于Android应用层(需要开发者自己实现)。所以,在进行跨进程通信时,开发者只需自定义Client & Server 进程并显式使用上述3个步骤,最终借助 Android的基本架构功能就可完成进程间通信:

 

AIDL 的全称是 Android Interface Definition Language,即Android接口定义语言,是 Binder 机制实现 Android IPC 时使用比较广泛的工具。

 

 

 

 

 

 

 

 

 

 

 

http://www.dt0577.cn/news/47512.html

相关文章:

  • 企业营销型网站建设公司青岛官网seo
  • 技术支持 合肥网站建设seo推广技术培训
  • 成都网站建设电话咨询app推广80元一单
  • 做公司网站需要有座机吗上海优化网站seo公司
  • 做网站软件是什么行业三亚百度推广开户
  • 公司网站后台维护网络营销软文范例500字
  • 临沂网站建设团队怎么收录网站
  • 一个网站开发关键词优化的发展趋势
  • 深圳做营销网站设计正规网站优化哪个公司好
  • 广州做网站费用百度快照收录
  • 网页装wordpress免费seo排名网站
  • 怎样做网络销售网站合肥网络推广服务
  • 网上拿手工做的网站360免费建站教程
  • 网站首页关键词提高工作效率
  • 网店装修教程免费模板seo资料网
  • 电脑手机网站相互跳转公司想建个网站怎么弄
  • 自身网站的建设和推广力度不足搜索引擎优化seo多少钱
  • 网站月流量什么意思网络营销技巧培训
  • 上海做网站的公司有哪些seo五大经验分享
  • 又一地发现2例阳性广州seo工资
  • 无锡企业网站制作费用seo优化包括什么
  • 电脑维修网站模板下载企业网站推广有哪些
  • php网站 php有什么用google海外推广
  • 现在哪些网站自己做装修2023年的新闻十条
  • 网站图片做多大外贸seo推广
  • 年轻人常用网站磁力猫搜索引擎入口官网
  • 淘宝客做网站可行么软文营销怎么写
  • 非交互式网站可以做商城吗上海网络推广外包公司
  • 怎样开公众号安卓优化大师手机版下载
  • 宝塔面板怎么做多个网站网络广告策划