Android系统组件
当我开始研究安卓系统组件时,我想知道从哪里开始。我能够确定几个实际构成安卓栈的组件。我经常不清楚哪个组件负责什么。经过一些研究和实验,我得到了答案,所以我想在这里分享一下,供其他寻找信息的人参考。
以下可以称为安卓的系统组件:
- Binder
- 服务管理器(Service Manager)
- Zygote
- Android运行时(Android Runtime)
- 系统服务(System Services)
Binder
Binder是在安卓的Linux中用于IPC的主要组件。它取代了Linux的传统D-Bus,提供了一个用于进程间通信的平台。安卓为应用程序开发者提供了IPC机制,如Intents、IBinder、AIDL机制和messenger,这些机制在应用程序层面上内部都使用Binders。需要注意的是,这里的Binder指的不是应用程序层常说的Binder,而是作为底层Linux一部分集成的Binder驱动程序。
Binder的加载
Binder作为Linux内核的一部分加载。当Binder需要发送或接收数据时,它会写入或读取驱动程序文件。具体的代码实现可以在binder.c
文件中找到。