humble_programmer 2018-03-06 02:01 采纳率: 33.3%
浏览 1111
已采纳

ADB的server源码中处理devices命令的部分在哪里?

我查看ADB源码关于处理adb devices命令的流程。发现是client给server发了条消息,内容类似于host:devices。然后接听回来的消息。但是我没找到server中处理devices命令的代码。你知道这段代码在哪里吗?不胜感谢!对了,我说的是Linux版,不是Windows版。

  • 写回答

1条回答

  • nust20 2018-03-08 10:12
    关注

    在函数里面:
    int handle_host_request(char service, transport_type ttype, char serial, int reply_fd, asocket *s)
    处理devices命令的代码:
    // return a list of all connected devices
    if (!strncmp(service, "devices", 7)) {
    bool long_listing = (strcmp(service+7, "-l") == 0);
    if (long_listing || service[7] == 0) {
    D("Getting device list...\n");
    std::string device_list = list_transports(long_listing);
    D("Sending device list...\n");
    SendOkay(reply_fd);
    SendProtocolString(reply_fd, device_list);
    return 0;
    }
    return 1;
    }

    给你打个调用栈:

    #0 handle_host_request (service=0x5555556b8389 "devices", ttype=kTransportAny, serial=0x0, reply_fd=9, s=0x5555556b8020) at system/core/adb/adb.cpp:801
    #1 0x000055555558598c in smart_socket_enqueue (s=0x5555556b8020, p=) at system/core/adb/sockets.cpp:771
    #2 0x000055555558411f in local_socket_event_func (fd=, ev=1, _s=0x5555556b7f80) at system/core/adb/sockets.cpp:362
    #3 0x000055555558c1d4 in fdevent_call_fdfunc (fde=) at system/core/adb/fdevent.cpp:510
    #4 fdevent_loop () at system/core/adb/fdevent.cpp:692
    #5 0x0000555555574225 in adb_main (is_daemon=, server_port=) at system/core/adb/adb_main.cpp:343
    #6 0x0000555555574e35 in adb_commandline (argc=, argv=) at system/core/adb/commandline.cpp:1076
    #7 0x00007ffff6ee6830 in __libc_start_main (main=0x555555574320 , argc=5, argv=0x7fffffffd838, init=, fini=,
    rtld_fini=, stack_end=0x7fffffffd828) at ../csu/libc-start.c:291
    #8 0x0000555555573c59 in _start ()

    !!!!望采纳!!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办