为什么binder如此重要?

62 阅读1分钟

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里面。