关于android_get_control_socket函数的问题

hjw090702 2011-08-26 08:10:18
看RIL的代码,看到一个类似android_get_control_socket("rild")的函数调用,追踪一下android自己的socket实现,发现就是从添加了ANDROID_SOCKET_的前缀,获取系统环境中ANDROID_SOCKET_rild变量的值并返回,这个值就是所要获取的socket的文件描述符(希望没有理解错)。上网搜了一下有讲是在系统初始化时根据init.rc脚本给rild这个服务创建的。

init.rc中相关脚本如下:
service ril-daemon /system/bin/rild
socket rild stream 660 root radio
socket rild-debug stream 660 radio system

我很想知道socket rild stream 660这句脚本是怎么实现的(这个socket怎么创建),如果我想对这个socket创建一个客户端。该怎么获得socket的地址。(网上只有JAVA的获取方式,我想用c++写)。。

android新人。。求高手指个方向。。谢谢!
...全文
2029 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zez 的回复:]
呵呵,楼上真逗
获取服务端 android_get_control_socket(HDMI_SOCKET_NAME)
获取客户端
fd = socket_local_client(HDMI_SOCKET_NAME,
ANDROID_SOCKET_NAMESPACE_RESERVED,
SOCK_STREAM );
[/Quote]
奇怪为什么不是socket_local_server++++socket_local_client配对使用???
TechStone 2011-11-30
  • 打赏
  • 举报
回复
init.rc是由init进程解析的,所以分析一下/system/core/init.c就会知道怎么回事了。
对于socket rild stream 660 root radio,init进程会根据“socket”这个类型从而调用publish_socket(),更细节的LZ可以自己分析一下。
zez 2011-09-09
  • 打赏
  • 举报
回复
呵呵,楼上真逗
获取服务端 android_get_control_socket(HDMI_SOCKET_NAME)
获取客户端
fd = socket_local_client(HDMI_SOCKET_NAME,
ANDROID_SOCKET_NAMESPACE_RESERVED,
SOCK_STREAM );
wenzheng38 2011-08-27
  • 打赏
  • 举报
回复
socket rild stream 660 这个估计是汇编语言了。。。
ch_984326013 2011-08-26
  • 打赏
  • 举报
回复
坐等大虾来到,帮顶

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧