Không có mô tả

lilu a5534f76e2 feat: so编译+联调 4 tháng trước cách đây
app a5534f76e2 feat: so编译+联调 4 tháng trước cách đây
gradle 35a87748e9 feat: init 5 tháng trước cách đây
.gitignore a5534f76e2 feat: so编译+联调 4 tháng trước cách đây
README.md 35a87748e9 feat: init 5 tháng trước cách đây
build.gradle.kts 35a87748e9 feat: init 5 tháng trước cách đây
gradle.properties 35a87748e9 feat: init 5 tháng trước cách đây
gradlew 35a87748e9 feat: init 5 tháng trước cách đây
gradlew.bat 35a87748e9 feat: init 5 tháng trước cách đây
settings.gradle.kts 35a87748e9 feat: init 5 tháng trước cách đây

README.md

v2rayNG项目分析

项目概述

v2rayNG是一款基于Android平台的V2Ray客户端应用程序,支持Xray core和v2fly core,主要用于网络代理和VPN服务。

技术栈

  • 开发语言 :主要使用Kotlin语言开发
  • 构建系统 :Gradle Kotlin DSL (.kts格式)
  • 数据存储 :采用MMKV进行高效键值存储
  • UI框架 :基于AndroidX和Material Design
  • 核心库 :通过JNI集成V2Ray/Xray核心功能
  • 支持架构 :arm64-v8a、armeabi-v7a、x86_64、x86

    核心功能

    1.多种运行模式 :

    • VPN服务模式(通过V2RayVpnService实现)
    • 代理模式(通过V2RayProxyOnlyService实现) 2.支持多种协议 :

    • VMess、VLESS、Trojan、Shadowsocks、Wireguard、HTTP、Socks等

    • 每种协议都有对应的格式化器(如VmessFmt、VlessFmt等) 3.订阅管理 :

    • 支持批量导入服务器配置

    • 自动更新订阅功能 4.路由规则 :

    • 支持自定义路由规则

    • 内置多种路由规则集(白名单、黑名单等)

    • 支持Geoip和Geosite规则 5.分应用代理 :

    • 可以为不同应用单独设置代理策略 6.DNS设置 :

    • 支持自定义DNS服务器

    • 支持Fake DNS功能

      项目结构

      项目采用标准Android应用架构,主要代码位于 V2rayNG/app/src/main/java/com/v2ray/ang/ 目录下,按功能模块划分为多个包:

  • ui :界面相关代码,包括MainActivity、ServerActivity等

  • service :服务相关代码,包括V2RayVpnService、V2RayProxyOnlyService等

  • handler :处理器相关代码,包括V2RayServiceManager、V2rayConfigManager等

  • dto :数据传输对象

  • util :工具类

  • fmt :各种协议格式处理类

    主要工作流程

    1.用户在MainActivity中选择服务器配置 2.点击启动按钮,通过V2RayServiceManager启动对应服务(VPN或代理模式) 3.服务启动时,V2rayConfigManager生成配置文件 4.调用底层V2Ray核心库启动代理服务 5.通过NotificationManager显示通知和连接状态

    特色功能

  • 多语言支持 :包含中文、英文、俄文、阿拉伯文等多种语言

  • 深色模式 :支持系统深色模式

  • 性能统计 :可以显示连接速度等统计信息

  • 智能选择 :支持基于延迟自动选择最优服务器

    构建配置

  • 项目支持两个产品变种(productFlavors):fdroid和playstore

  • 支持多种CPU架构的APK拆分

  • 最低支持Android 5.0(API 21),目标API 35 总体而言,v2rayNG是一个功能全面、架构清晰的Android代理客户端,通过JNI集成V2Ray/Xray核心功能,为用户提供灵活、强大的网络代理解决方案。