Binder就是android中的血管。在android中我们所使用的activity,service等组件,都需要和AMS(system_server)通信,这种跨进程的通信都是通过Binder完成。
机制:Binder是一种进程间的通信机制。
驱动:Binder是一个虚拟物理设备驱动。
应用层:Binder是一个能发起通信的Java类。
多进程的优势:
虚拟机分配个各个进程的运行内存是有限制的。LMK也会优先回收队系统资源占用比较多的进程。
所以,我们使用多进程的优势:
1.突破内存限制。比如图库占用内存过多。
2.功能稳定性:独立的通信进程保持长连接的稳定性。
3.规避系统内存泄漏 :比如独立的webview进程
4.隔离风险:对于不稳定的功能,放入独立的进程。避免导致主程序崩溃。
快速使用多进程 在mainfest.xml里,比如service加上android:process =":name"
一个进程分为用户空间+内核空间 。用户空间和内核空间是分离的。但是内核空间和另外一个进程的内核空间是共享的。
用户空间和内核空间通信通过API。 copy_from_user拿用户空间数据。通过copy_to_user是从内核拿数据给用户空间。
AMS服务是实名还是匿名?
答:实名。依据:看他有没有注册SM里面。