前言
-
既然是多进程开发,不可避免就需要进程间通信,此时,我们就需要了解 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 会多次创建
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于