UOG Android 是一个基于 gRPC 的 UDP 代理应用程序,专为 Android 设备设计。
- 在 Android 设备上运行 UDP over gRPC 代理
- 支持多个配置管理
- 前台服务保持长期运行
- 网络状态监控和自动重连
- Kotlin
- Android SDK
- gRPC
- Rust (用于核心代理逻辑)
- JNI (Java Native Interface)
项目主要包含以下部分:
- Android 应用程序 (Kotlin)
- Rust 库 (核心代理逻辑)
- JNI 绑定
主要的 Android 代码文件包括 MainActivity.kt, UotGrpc.kt 和 UogClient.kt。
- Android Studio
- Rust 工具链
- NDK (Native Development Kit)
- Java Development Kit (JDK) 17
-
克隆仓库:
git clone --recurse-submodules https://github.com/your-repo/uog-android.git
-
安装 Rust 工具链和目标:
rustup target add aarch64-linux-android
-
安装必要的 Cargo 工具:
cargo install cargo-ndk cargo install cross --git https://github.com/cross-rs/cross
-
构建 Rust 库:
cd lib-src/uog cross build --target aarch64-linux-android --release --lib
-
复制编译好的库文件:
mkdir -p ../../app/src/main/jniLibs/arm64-v8a cp target/aarch64-linux-android/release/libuog.so ../../app/src/main/jniLibs/arm64-v8a/ cd ../..
-
在 Android Studio 中打开项目
-
构建 APK:
./gradlew assembleRelease
-
签名 APK (需要配置签名密钥): 使用 Android Studio 或者命令行工具进行 APK 签名
本项目使用 GitHub Actions 进行自动构建和发布。当推送带有 'v*' 标签的提交时,会触发构建流程:
- 检出代码和子模块
- 安装 Rust 和 NDK
- 构建 Rust 库
- 设置 JDK 环境
- 构建 Android APK
- 签名 APK
- 创建 GitHub Release 并上传签名后的 APK
详细的自动构建配置请参考项目根目录下的 .github/workflows/apk.yml
文件。
注意: 自动构建和发布需要正确配置 GitHub Secrets 以提供签名所需的密钥和密码。
应用程序支持多个代理配置。每个配置包含以下字段:
- 监听端口
- 密码
- gRPC 端点
用户可以通过应用程序界面添加、编辑和删除配置。
欢迎提交 Pull Requests 来改进这个项目。对于重大变更,请先开 issue 讨论您想要改变的内容。
Apache 许可证 2.0