LocalSocket (linux c socket 封装)
在Unix域名空间创建一个套接字(非服务端)。
是对Linux中Socket进行了封装,采用JNI方式调用,实现进程间通信。
具体就是Native层Server和Framework层Client之间进行通信,或在各层次中能使用Client/Server模式实现通信。
创建服务器端Unix域套接字,与LocalSocket对应。
Framework层Socket的实现,通过JNI调用系统socket API。
JNI访问接口:
\frameworks\base\core\jni\android_net_LocalSocketImpl.cpp
socket_create
socket_connect_local
socket_bind_local
socket_listen
\system\core\rootdir\init.rc
中:
在启动install服务时,就会为install分配socket文件系统资源:dev/socket/installd
Install服务的Socket资源和名称installd绑定起来。
这些都是在开机初始化化init进程中启动service时完成:
native 层中作为server:\frameworks\base\cmds\installd\installd.c
\frameworks\base\services\java\com\android\server\pm\Installer.java