V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Aouyu
V2EX  ›  问与答

请教个 tailscale 的问题, android 中怎么基于 tailscale 二次开发

  •  
  •   Aouyu · 218 天前 · 432 次点击
    这是一个创建于 218 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 Android 开发,tailscale 的 android 项目是 GO 语言的 Gioview 写的,主项目中没找到关键的方法在哪边。安卓原生中怎么设置 URL 及创建后续连接呢?

    3 条回复    2023-09-25 16:36:59 +08:00
    shawndev
        1
    shawndev  
       218 天前   ❤️ 1
    Makefile 中留意 DEBUG_APK 和 AAR 两个 target 。build.gradle 中声明依赖了这个 AAR 。

    App 中调用 IPNService 实现开关 VPN ,实现方法为 native 方法 connect / disconnect / directConnect 。

    这些 native 的方法是现在 cmd/tailscale/callbacks 中。

    当收到对应的 Intent 后,这些 native 方法向对应的 chan 投递一条消息。

    在 AAR 运行之后会从不同的 chan 取对应消息,然后通过 updateTUN 方法调用 VPNService 的对应 java 方法。这里的调用是通过 jni.go 实现的,jni.go 本质上是<jni.h>的 cgo 封装。
    shawndev
        2
    shawndev  
       218 天前   ❤️ 1
    还有一些比如调用 VPNService.protect 来避免路由环路之类的细节。
    Aouyu
        3
    Aouyu  
    OP
       218 天前
    @shawndev 十分感谢大佬回复,我先去折腾下看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1407 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 17:00 · PVG 01:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.