版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16247851/article/details/73913463
.Android中实现多进程的方法是在清单文件(AndroidMenifest)中指定android:process属性;
而其中的process的命名有两种方式:
<activity
android:name=".moduel.personal.activity.FeedbackActivity"
android:process=":a"
android:launchMode="singleTop"
android:screenOrientation="portrait"/>
<activity android:name=".moduel.personal.activity.FeedbackActivity"
android:process=".a"
android:launchMode="singleTop"
android:screenOrientation="portrait"/>
其中”:a”和”.a”所代表的含义是不一样的,:代表的是在当前的进程名前面加上包名,而且这样表达的进程是属于当前进程的私有进程,其他进程的组件不可以跟它到同一个进程里,而不以:开头的命名的进程属于全局进程,其他应用可以通过相同的ID(系统为每个应用分配一个唯一的ID)和拥有相同签名的方式跑到同个进程里。
- 系统在创建进程的同时分配独立的虚拟机(即代表会多次创建Application)
- 不同进程中组件不能通过共享内存达到共享数据的目的。
- 因为不在同一块内存,线程同步机制将会失效。
- sharepreference数据可能会有误差(sharepreference不允许两个线程同时执行操作,其底层是通过XML文件读写完成)
IPC方式:AIDL,Messenger,Bundle,文件共享,ContentProvider