128 lines
4.8 KiB
Markdown
128 lines
4.8 KiB
Markdown
# GPSRelaySentinel
|
||
|
||
## 介绍
|
||
|
||
### GPSRelaySentinel 应用描述
|
||
|
||
#### 中文描述 :
|
||
GPSRelaySentinel 是一款专业的 GPS 定位中继守护工具,支持真实系统 GPS 定位监听与模拟 GPS 坐标仿真双模式运行。应用后台常驻前台服务,实时接收系统 GPS 位置数据,内置订阅者步长阈值判断机制,可对多个 GPS 订阅视图进行定点推送管理。
|
||
提供可视化模拟控制面板,支持选择八大方位、自定义模拟移动距离,自动计算偏移目标经纬度;配备模拟模式勾选开关,可一键切换真实 GPS 工作模式与虚拟仿真模式。模拟状态下系统会接管自定义模拟坐标,忽略原生真实定位数据;普通模式则正常使用设备 GPS 原始位置。
|
||
界面采用深色极简风格,全控件灰色文字与灰色边框统一视觉设计,集成日志实时输出面板,方便调试定位轨迹与订阅推送状态,适合定位开发测试、虚拟位置仿真、GPS 中继转发等场景使用。
|
||
|
||
#### English Description :
|
||
GPSRelaySentinel is a professional GPS relay and guardian tool, supporting dual modes of real system GPS location monitoring and simulated GPS coordinate simulation. It runs as a foreground persistent background service, receives real-time system GPS location data, and builds-in subscriber step threshold judgment mechanism to manage fixed-point push for multiple GPS subscription views.
|
||
It provides a visual simulation control panel, supports eight direction selections and custom simulated moving distance, and automatically calculates offset target latitude and longitude. With a simulation mode checkbox, you can one-click switch between real GPS working mode and virtual simulation mode.
|
||
In simulation mode, the app takes over custom simulated coordinates and ignores original real location data; in normal mode, it uses the device’s native GPS position normally. The UI adopts a dark minimalist design with unified gray text and gray borders for all controls, and integrates a real-time log output panel for debugging location tracks and subscription push status. It is suitable for location development testing, virtual position simulation, GPS relay forwarding and other scenarios.
|
||
|
||
## 技术栈
|
||
|
||
- **编程语言**: Java 7(源码)
|
||
- **编译环境**: Java 11(Gradle 编译)
|
||
- **Gradle 插件**: 7.2.1
|
||
- **安卓 API**:
|
||
- 最低支持: API 26 (Android 8.0)
|
||
- 目标版本: API 30 (Android 11)
|
||
- 编译版本: API 30
|
||
|
||
## 软件架构
|
||
|
||
适配以下安卓开发环境的 Gradle 编译结构:
|
||
- AIDE Pro
|
||
- AndroidIDE
|
||
|
||
## 模块说明
|
||
|
||
本项目采用多模块结构:
|
||
- `gpsrelaysentinel` - 主应用模块
|
||
- `libappbase` - 基础库模块(提供 OkHttp、Gson、JSch 等基础能力)
|
||
- `libaes` - AES 加密库模块(提供权限请求、二维码、拼音搜索等扩展功能)
|
||
|
||
## 核心依赖库
|
||
|
||
### 网络相关
|
||
- OkHttp 4.4.1 / 3.14.9 - HTTP 客户端
|
||
- Gson 2.10.1 - JSON 解析
|
||
|
||
### 终端模拟
|
||
- Termux: terminal-emulator 0.118.0
|
||
- Termux: terminal-view 0.118.0
|
||
- Termux: termux-shared 0.118.0
|
||
|
||
### 功能组件
|
||
- ZXing 3.4.1 - 二维码生成与扫描
|
||
- JSch 0.1.55 - SSH/SFTP 客户端
|
||
- Jsoup 1.13.1 - HTML 解析
|
||
- FastJSON 1.2.76 - JSON 处理
|
||
|
||
### UI 组件
|
||
- Material Design 1.4.0
|
||
- AndroidX 组件库
|
||
- PullRefreshLayout 1.2.0 - 下拉刷新
|
||
|
||
## Gradle 编译说明
|
||
|
||
### 调试版编译
|
||
```bash
|
||
gradle assembleDebug
|
||
```
|
||
|
||
### 阶段版编译(发布)
|
||
```bash
|
||
bash .winboll/bashPublishAPKAddTag.sh gpsrelaysentinel
|
||
```
|
||
|
||
### 版本管理
|
||
版本信息由 `gpsrelaysentinel/build.properties` 管理:
|
||
- `baseVersion` - 基础版本号
|
||
- `stageCount` - 阶段构建次数
|
||
- `publishVersion` - 发布版本号
|
||
- `buildCount` - 构建次数
|
||
|
||
## 使用说明
|
||
|
||
### Termux 应用配置
|
||
|
||
1. 安装 Termux 应用(包名: `com.termux`)
|
||
2. 配置允许外部应用访问:
|
||
```bash
|
||
echo "allow-external-apps = true" > ~/.termux/termux.properties
|
||
```
|
||
|
||
### 权限说明
|
||
|
||
应用需要以下权限:
|
||
- 网络访问权限
|
||
- 存储读写权限
|
||
- 相机权限(二维码扫描)
|
||
- 位置权限(GPS 相关功能)
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
gpsrelaysentinel/
|
||
├── src/main/
|
||
│ ├── java/ # Java 源码(Java 7 语法)
|
||
│ ├── res/ # 资源文件
|
||
│ ├── libs/ # 本地库文件(含 JNI 库)
|
||
│ └── AndroidManifest.xml
|
||
├── build.gradle # 模块构建配置
|
||
└── build.properties # 版本配置文件
|
||
```
|
||
|
||
## 参与贡献
|
||
|
||
1. Fork 本仓库
|
||
2. 新建功能分支 (`git checkout -b feat_xxx`)
|
||
3. 提交代码(作者: ZhanGSKen <zhangsken@188.com>)
|
||
4. 新建 Pull Request
|
||
|
||
## 许可证
|
||
|
||
[待添加许可证信息]
|
||
|
||
## 参考文档
|
||
|
||
- [Android Developer Documentation](https://developer.android.com/)
|
||
- [Termux Wiki](https://wiki.termux.com/)
|
||
- [Gradle User Manual](https://docs.gradle.org/)
|