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


数据运维技术 » LocalSocket (linux c socket 封装)