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

239 天前
 Aouyu

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

459 次点击
所在节点    问与答
3 条回复
shawndev
239 天前
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
239 天前
还有一些比如调用 VPNService.protect 来避免路由环路之类的细节。
Aouyu
239 天前
@shawndev 十分感谢大佬回复,我先去折腾下看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX