一、进程概念

进程就像一个车间,线程就像一条流水线

进程是线程的容器

一个进程里,资源是所有线程共享的
一个进程实际是程序的抽象
 
在Manifest里的application或者Activity中加入标签
android:process="com.test"
即创建了一个名字为com.test的独立进程(全局进程)
如果加了冒号,相当于在原进程的空间里附加了一个进程(私有进程)
 
什么情况下使用多进程?
每个进程都有使用内存限制,开辟多了进程可以扩大APP的使用内存,但进程更多更耗电,需要权衡
 
进程见有内存不可见性,所以各个进程之间是相互独立的
 

二、多进程间通信IPC

多进程,单线程
使用Messenger --> 利用Handler
多进程,多线程
使用AIDL(不建议,除非很复杂的应用)
 

使用Messenger实现多进程通信方法:

使用Messenger进行多线程通信
1.首先创建一个MessengerService
 1     public class MessengerService extends Service {
 2 
 3         // 适合于多进程,单线程,不需要考虑线程安全
 4         Messenger mMessenger = new Messenger(new IncomingHandler());
 5 
 6         static class IncomingHandler extends Handler {
 7             @Override
 8             public void handleMessage(Message msg) {
 9                 super.handleMessage(msg);
10                 // 处理消息
11                 switch (msg.what) {
12                     case 0:
13                         // 动作
14                         break;
15                 }
16             }
17         }
18 
19         @Nullable
20         @Override
21         public IBinder onBind(Intent intent) {
22             return mMessenger.getBinder();
23         }
24     }
点击展开

 

相关文章:

  • 2021-09-08
  • 2021-07-18
  • 2022-12-23
  • 2021-12-22
  • 2021-08-07
  • 2022-02-04
  • 2021-12-27
猜你喜欢
  • 2021-05-27
  • 2021-09-26
  • 2021-05-23
  • 2021-08-31
  • 2022-01-17
  • 2021-11-22
  • 2021-11-18
相关资源
相似解决方案