Android常用的IPC通信

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android常用的IPC通信脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、AndROId中常用的IPC通信

  • 管道
  • Socket
  • 共享内存
  • 信号

二、管道

  管道是一种IPC通信方式,分为有名管道和无名管道,无论是有名管道还是无名管道其原理都是在内核开辟一块缓存空间,这段缓存空间的操作是通过文件读写方式进行的。

  管道为分双工和全双工:

    • 半双工:半双工管道是单向通信,进程1只能向管道写数据,进程2只能从管道读取数据。只有一个代表读或者写的FD(文件描述符)。
    • 全双工:全双工管道是双向通信,有两个文件描述符,代表读和写。

  有名管道与无名管道:

    • 有名管道:有名管道的通信可以通过管道名进行通信,进程间不需要有关系。
    • 无名管道:无名管道就是匿名管道,匿名管道通信的进程必须是父子进程。

  半双工:

Android常用的IPC通信

   全双工:

Android常用的IPC通信

 

   在Linux实现piPE

public static void main(String[] args) {
    int fd[2];
    char buffer[SIZE];

    pipe(fd);

    pid_t pid = fork();
    if (pid == 0) {
        close(fd[1]);
        read(fd(0), buffer, SIZE);
    } else if (pid > 0) {
        close(fd[0]);
        wrITe(fd[1], "Hello", 5);
    }
}

 

三、Socket

  Socket提供一套网络通信的接口。Socket网络IPC通信是全双工的,进程间不需要有关系。

  在Android中amS与Zygote通信采用的socket通信

四、共享内存

  共享内存是IPC通信性能最好的方式,进程间通信只需要一次拷贝,适合进程间大数据通信。

  在Android中应用的Surface与SurfaceFlinger的IPC通信采用的共享内存方式实现的。

  在Android中共享内存有一个工具类MemoryFile。

五、信号

脚本宝典总结

以上是脚本宝典为你收集整理的Android常用的IPC通信全部内容,希望文章能够帮你解决Android常用的IPC通信所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。