Android 多进程开发(IPC)注意事项

本贴最后更新于 2188 天前,其中的信息可能已经时移世改

前言

  • 既然是多进程开发,不可避免就需要进程间通信,此时,我们就需要了解 IPC(Inter-Process Communication),指两个进程间进行数据交换的过程。

  • IPC 的提出并不是 Android,任何一个操作系统都需要相应的 IPC 机制

    windows 上的剪贴板、管道、邮曹等可以用来进行进程间通信
    Linux 上可以通过命名管、共享内容、信号量等来进行进程间通信
    Android 是基于 Linux 内科的移动操作系统。Android 独创了 Binder 来进行进程间通信。当然,Android 也可以通过 Socket 实现进程间通信

  • 在 Android 开发过程中,需要我们通过多进程模式进行开发的业务需求不多,使用的情况有:
    1、如某些模块必须运行在单独的进程中
    2、增大应用的内存,通过多个进程运行,间接增大应用所能使用的内存空间

开启多进程的方法

  • 1、一般情况下我们可以为 Android 的四大组件通过在 xml 文件中制定 android:process 属性来开启多进程模式

注意事项:process 属性后为进程的名称,有两种方式:
(1):进程名 :的含义是指当前的进程,也就是在当前的进程名前面附加上当制定的进程名,这种方式开辟的进程属于当前应用的私有进程,其他应用程序不可以和它处于同一进程中,但是,也不是说只要指定的进程名一样就可以了,还需要 apk 的签名一致才可以。
(2) 进程名

  • 2、比较少见的一种,通过 JNI,在 native 层通过 fork 开启一个新的进程

开启多进程后注意的坑

  • 静态成员和单例模式完全失效,因为静态成员和单例模式的使用基础是处理同一进程中,
  • 线程同步机制完全失效
  • SharedPreferences 可能性降低
  • Application 会多次创建
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • 进程
    15 引用 • 4 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...