Binder:
Binder就是Android中的血管。在Android中我们所使用的Activity, Service等组件都需要和AMS(system server)通信, 这种跨进程的通信都是通过Binder完成,进程通讯 IPC
虚拟物理设备驱动
可以发起通信的Java类
每个进程的内存是不共享的,但是内核内存(系统内存)是共享的,
所以进程1 copy_from_user 通过mmap将数据存放在 进程2和内核空间共同开辟的物理内存中,这样进程2就可以直接使用
通俗的说进程之间靠内核通讯
Socket:
Handler:
Handler就是Android中的心脏,管理App线程通信
子线程(生产者):发送一条信息handler.sendMessage->消息进入队列queue.enqueueMessage存放在MessageQueue容器中
主线程(消费者):应用启动时主线程ActivityThread.main函数创建looper ->
循环获取信息looper.loop->queue.next->执行handler.handlerMessage
Android的每一次刷新,点击,生命周期等都是靠Message进行驱动的,就像心脏,所以looper在程序启动初期就在main方法中创建并运行