Android中IPC方式
1.bundle
2.文件共享
3.Messenger
4.AIDL
5.ContentProvider
6.Socket
<activity
......
android:process=":remote"
/>
<activity
......
android:process="com.test.helloworld.remote"
/>
以上代码是两种创建进程的方式。
区别:1.以“:”开头的进程属于当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程中。而进程名不以“:”开头的进程属于全局进程,其他应用通过ShareUID方式可以和他跑在同一个进程中。
我们知道Android系统会为每个应用分配一个惟一的UID,具有相同UID的应用才能共享数据。这里要说明的是,两个应用通过ShareUID跑在同一个进程中是有要求的,需要这两个应用有相同的ShareUID并且签名相同才可以。在这种情况下他们可以互相访问对方的私有数据,比如data目录,组件信息等,不管他们是否跑在同一个进程中。当然如果他们跑在同一个进程中,那么除了能共享ata目录,组件信息,还可以共享内存数据。
多进程造成的问题
1.静态成员和单例模式完全失效
2.线程同步机制完全失效
3.SharePreferences的可靠性下降(sp不支持两个进程同时去执行写操作,否则数据会有一定几率丢失)
4.Application会多次创建
网友评论