aprs-converter/README_SERVER_BUILD.md

233 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Конвертор координат GPS → APRS, Maidenhead
## Описание проекта
Приложение Android для конвертации GPS координат в различные форматы:
- Десятичные координаты (широта/долгота)
- Градусы, минуты, секунды (DMS)
- APRS формат
- Maidenhead (QTH локатор)
**Технологии:**
- Kotlin
- Jetpack Compose (Material 3)
- Android SDK 34
- Min SDK: 21
---
## Структура проекта
```
vs2/
├── app/
│ ├── src/main/
│ │ ├── java/com/example/aprs/
│ │ │ ├── MainActivity.kt # Основной экран
│ │ │ └── LocationUtils.kt # Утилиты конвертации
│ │ ├── res/
│ │ │ ├── values/
│ │ │ │ ├── strings.xml
│ │ │ │ ├── themes.xml
│ │ │ │ └── ic_launcher_background.xml
│ │ │ └── mipmap-*/ # Иконки приложения
│ │ ├── AndroidManifest.xml
│ │ └── build.gradle.kts
│ └── build/outputs/apk/debug/ # Скомпилированный APK
├── build.gradle.kts
├── gradle.properties
├── settings.gradle.kts
└── gradlew # Gradle wrapper
```
---
## Требования к серверу
### Необходимое ПО:
- **Java JDK 17** (`/usr/lib/jvm/java-17-openjdk-amd64`)
- **Git** (опционально)
- **SSH доступ** с паролем или ключом
### Проверка окружения на сервере:
```bash
java -version
# Должно показать: openjdk version "17.x.x"
```
---
## Инструкция по компиляции на сервере
### 1. Подключение к серверу
```bash
# Подключение по SSH
ssh ua1zbe@192.168.1.46
# Введите пароль: ktdbycrbq1980
```
### 2. Загрузка проекта на сервер
#### Вариант A: Через rsync (рекомендуется)
```bash
# С локальной машины
rsync -avz -e ssh /home/ua1zbe/my_aprs_project/vs2/ ua1zbe@192.168.1.46:~/my_aprs_project/vs2/
```
#### Вариант B: Через git
```bash
# На сервере
cd ~
git clone <repository-url> my_aprs_project/vs2
```
### 3. Сборка APK
```bash
# Подключение к серверу
ssh ua1zbe@192.168.1.46
# Переход в директорию проекта
cd ~/my_aprs_project/vs2
# Установка JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
# Очистка и сборка
./gradlew clean assembleDebug
# Или только сборка (быстрее)
./gradlew assembleDebug
```
### 4. Результат сборки
APK файл будет создан в:
```
/home/ua1zbe/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk
```
Размер: ~12-14 MB
### 5. Проверка сборки
```bash
# Проверка существования APK
ls -lh ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk
# Информация о сборке
./gradlew buildEnvironment
```
---
## Установка на устройство
### Вариант A: Через ADB (USB)
```bash
# Скачать APK с сервера
scp ua1zbe@192.168.1.46:~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk /home/ua1zbe/my_aprs_project/vs2/
# Установить на устройство
adb install -r /home/ua1zbe/my_aprs_project/vs2/app-debug.apk
```
### Вариант B: Прямая установка с сервера
```bash
# На сервере (если есть ADB и подключено устройство)
adb install ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk
```
### Вариант C: Через файловый менеджер
1. Скачать APK с сервера через SFTP/SCP
2. Передать на телефон
3. Установить через файловый менеджер
---
## Полезные команды Gradle
```bash
# Очистка сборки
./gradlew clean
# Сборка debug версии
./gradlew assembleDebug
# Сборка release версии
./gradlew assembleRelease
# Запуск тестов
./gradlew test
# Проверка зависимостей
./gradlew dependencies
# Остановка Gradle daemon
./gradlew --stop
# Сборка с логом
./gradlew assembleDebug --info
```
---
## Решение проблем
### Ошибка: "Could not connect to Kotlin compile daemon"
```bash
# Остановить Gradle и попробовать снова
./gradlew --stop
./gradlew clean assembleDebug
```
### Ошибка: "minSdkVersion cannot be smaller than version 21"
```bash
# Jetpack Compose требует API 21+
# Проверить app/build.gradle.kts:
# minSdk = 21
```
### Ошибка: "resource not found" для иконок
```bash
# Проверить наличие директорий mipmap
ls app/src/main/res/mipmap-*/
# Пересоздать иконки при необходимости
```
### Ошибка: "BUILD FAILED - Manifest merger failed"
```bash
# Очистить сборку
./gradlew clean
# Проверить AndroidManifest.xml на ошибки
```
### Долгая компиляция
```bash
# Использовать daemon (по умолчанию включён)
./gradlew assembleDebug --daemon
# Или увеличить память
export GRADLE_OPTS="-Xmx2g"
```
---
## Быстрая сборка (one-liner)
```bash
ssh ua1zbe@192.168.1.46 "cd ~/my_aprs_project/vs2 && export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 && ./gradlew assembleDebug" && scp ua1zbe@192.168.1.46:~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk /home/ua1zbe/my_aprs_project/vs2/ && adb install -r /home/ua1zbe/my_aprs_project/vs2/app-debug.apk
```
---
## Контакты
Автор: UA1ZBE
Дата: Март 2026