(内容来源于Anroid开发艺术探索)
IPC:Inter-Process-Communication的缩写,进程间通信或者跨进程通信。进程和线程的区别:线程是CPU调度的最小单元,进程指一个执行单元,一个进程中可以包含多个线程。个人认为进程可以比作一个任务,线程是完成这个任务的多种方式。
Android是一种基于Linux内核的移动操作系统,实现进程间通信的方式有自己独特的方式——Binder。同样也支持Socket间的通信。
1、实现Android中多进程的方式:在AndroidMenifest中为4大组件方式:android:process属性。
<activity
android:name="first."
android:process=":remote"
>
<activity>
-----------------------------
<activity
android:name="second..."
android:process=":remote"
>
<activity>
假定该Acitivity的包名为com.test.guo 那么first的进程名为com.test.guo :remote 而second的包名为com.test.guo .remote/2如果没有指定process属性,那么他们默认的进程名为包名。
2、命名方式区别的含义
(1):的含义是指要在当前的进程名前面加上当前的包名,而second process的命名方式是一种完整的命名方式,不会再前面加上包名。
(2) “:”的命名方式代表私有进程,其他的组件不可以和他在同一个进程中跑
“.”的命名方式代表全局进程,其他的应用可以通过ShareUID方式和它再同一个进程中跑。
IPC实现的一些概念 Serializable接口
它是一个序列化的接口,一类想要实现序列话的步骤是在该类中加入一个
private static final long serialVersionUID=8711368828919983944L;
这个ID是用来辅助序列话的。当序列化的数据中的ID只有和当前类的ID一致,才能正常的反序列化。如果不指定,一旦当前类再反序列化之前有所改变,程序可能出现反序列化失败。失败原因是因为UID不一致。
并且让该类实现Serializable接口。
注:可以不为该类加入一个serialVersionUID,实现接口后,系统会自动完成序列化的操作,但会影响反序列化。
Parcelable
同样是实现类序列化的一种方式。