首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jxf2008
V2EX  ›  Android

安卓开发,如何通过电脑连接手机

  •  
  •   jxf2008 · 317 天前 · 2456 次点击
    这是一个创建于 317 天前的主题,其中的信息可能已经有所发展或是发生改变。
    安卓开发,公司提了个新要求,触及我的知识盲区。。。
    要求:安卓手机,通过 USB 线连接电脑,电脑上某一个软件能够和手机的某个 APP 通讯

    手机 APP 是我开发的,然后公司要求开发一个 PC 端的软件和手机 APP 通讯

    然后我不知道手机连接电脑这方面的知识,网上搜索了下,全是如何使用手机助手。。。
    我想问下诸位,有没有这方面的资料
    31 回复  |  直到 2019-03-12 10:46:02 +08:00
    jxf2008
        1
    jxf2008   317 天前
    @catalina
    出来,我要打屎你!!!!
    Juszoe
        2
    Juszoe   317 天前
    jxf2008
        3
    jxf2008   317 天前
    @Juszoe
    这个文章我看过,现在我们 PC 端软件会安卓到客户电脑上,但客户电脑上没有 adb
    要么把 adb 集成到我们的 PC 软件上,但貌似很难做到。。。
    pursuer
        4
    pursuer   317 天前
    集成 adb,像 360 qq 之类的 app 都这么做。或者手机打开 usb 热点然后电脑连上,但是可能会有意外的流量消耗。
    tearslee
        5
    tearslee   317 天前
    好奇,是通过 usb 链接的电脑,也就是说电脑与手机是在同一场景,为什么要通讯.
    如果 usb 不是必须,那直接通过设置服务器,转发两个客户端的消息就行了
    如果是必须 usb,那就是 adb 了,
    Lostars
        6
    Lostars   317 天前
    莫不是做群控的
    a1528026364
        7
    a1528026364   317 天前
    用 USB 连接,然后电脑跟手机通讯?这什么鬼逻辑需求啊
    都有这环境了有必要么
    fan123199
        8
    fan123199   317 天前
    adb 很小的,集合进去不难
    jxf2008
        9
    jxf2008   317 天前
    @tearslee
    是这样的,客户要求把手机 APP 上的数据传给电脑,同时也可以把电脑上的数据传给手机

    我们最初的解决方案,是把手机和电脑连同一个路由(手机通过路由的 wifi ),通过 TCP/UDP 通信,但这里有个问题,手机连上路由后要求设置静态 IP。因为只有知道手机的 IP,电脑软件才能向指定的 IP 发送消息

    客户强烈反对这样做,他们的理由是软件的使用人员,把手机连接 wifi 后不会设置手机静态 IP 地址

    另外还有个问题是,客户他们的使用环境中经常没有 wif
    jxf2008
        10
    jxf2008   317 天前
    @fan123199
    有相关的资料么?我找了半天没找到。。
    jxf2008
        11
    jxf2008   317 天前
    @a1528026364
    参考各种手机助手。。。
    我们的要求是把 APP 上的数据发给电脑,然后电脑上的数据发给手机的某个 APP
    fvckDaybyte2
        12
    fvckDaybyte2   317 天前 via iPhone
    @jxf2008 为什么 WiFi 要知道手机的 ip 才能连,直接广播不行嘛😑
    jxf2008
        13
    jxf2008   317 天前
    @fvckDaybyte2
    客户的环境里很可能没有 wifi..
    反正现在的结论是,只能使用 USB 通信
    manasheep
        14
    manasheep   317 天前
    我做过,adb 可以读到手机 ip 数据,不用 tcpip 的话,可以考虑利用手机文件系统交互,无非就是两方程序写入带时间戳的命令,同时定时监测文件的变化以读取最新的数据,直连通讯方式没有试过,好像是不好弄,可能还不如去搞蓝牙通信方便。
    slamDunkLINk
        15
    slamDunkLINk   317 天前
    参考手机投屏?或者电脑投屏的手机?正好问下有没有如此的软件啊
    jxf2008
        16
    jxf2008   317 天前
    @manasheep
    现在的问题是,客户那边的环境限制,只能用 USB,因为客户那边电脑部分是台式机,且没有 wifi

    使用 USB 网上找了很多文章都没办法绕过 adb,如果使用 adb 又会牵扯到另一个问题,如何把 adb 集成到我们的 PC 软件上
    Nu11Po1nter
        17
    Nu11Po1nter   317 天前
    adb 依赖集成不难的.sdk/paltform-tool 目录下的 adb.exe 和几个 dll 文件就是了
    mouyase
        18
    mouyase   317 天前 via Android
    @jxf2008 内置 adb.exe 外加各种参数,和 cmd 一样用法
    swcat
        19
    swcat   317 天前 via Android
    集成 adb 那个简单啊,把编译好的 adb 放到你的软件的目录下就行了呀,那有什么难得,之前公司就是这样干的
    soulzz
        20
    soulzz   317 天前
    可以参考 https://github.com/Genymobile/gnirehtet
    内置 adb.exe
    fox0001
        21
    fox0001   317 天前 via Android
    adb forward,把手机端口(例如 12345 )映射到 PC 的端口(例如 12346 ),手机那边在开个服务(端口为 12345 )就可以了,PC 这边就跟 127.0.0.1:12346 这个端口通讯
    sunzongzheng
        22
    sunzongzheng   317 天前
    去年大家做的跳一跳外挂,都是内置 adb,然后各语言实现像素分析,直接把 adb 的可执行文件内置就行
    huage2580
        23
    huage2580   317 天前
    集成 adb 是很简单的,或者说,adb 是必须的,至少做端口转发要用。就把文件夹拷贝好,然后命令运行下;你 pc 端的软件,就做个解压然后绝对路径运行命令,so seay
    manasheep
        24
    manasheep   317 天前
    @jxf2008 继承很简单,AdbWinUsbApi.dll AdbWinApi.dll adb.exe 这三个文件整合到你软件目录里就行了,软件调用它们就可以。
    AngryMagikarp
        25
    AngryMagikarp   317 天前
    很久以前我在 Linux 上做过 https://github.com/wiiiky/lucy

    用得是 adb 的端口映射,好像是 adb forward。

    adb 是用 C 写的,我把它集成到了 python 上,然后用 python+GTK 写了个 Linux 的客户端,可以和 Android 手机里的 APP 通信。
    ju5t4fun
        26
    ju5t4fun   317 天前
    AOA 协议?
    openbsd
        27
    openbsd   317 天前
    adb 三个文件 1.6M 左右 打包 tar.gz 才 600 多 K 集成到 PC 端直接调用毫无难度,好用得 1P。可靠性和稳定性和 WIFI 完全不一个量级
    fyyz
        28
    fyyz   317 天前
    这需求太变态了,要用户开启 usb 调试就为了你们这点破需求?

    不如用户在 app 里登录一个帐号,电脑的客户端也登录同一个帐号,然后在服务器进行指令转发?
    linghu1989122
        29
    linghu1989122   317 天前
    mark 楼上的集成 adb 方案不错
    jxf2008
        30
    jxf2008   316 天前
    @fyyz
    1 客户有台式机,且很多环境没有 wifi 和网络,台式机没有蓝牙和 wifi,并且有可能是 window XP 系统
    2 客户的用户水平较低,对于用户群体来说,手机连接 wifi 并查看手机 ip 地址这个非常困哪的操作

    客户要求在考虑以上两点的情况下,完成电脑和手机 APP 的通信
    linhua
        31
    linhua   316 天前
    安装 rndis 驱动,用 usb tethering
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2149 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 14:42 · PVG 22:42 · LAX 06:42 · JFK 09:42
    ♥ Do have faith in what you're doing.