- Kotlin + Jetpack Compose (Material 3) - Конвертация в APRS, Maidenhead, DMS форматы - Полноэкранный режим - Иконка приложения - Min SDK: 21, Target SDK: 34 Версия: 1.0.0 Дата: 2026-03-02 Автор: UA1ZBE Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
6.0 KiB
6.0 KiB
Конвертор координат 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 доступ с паролем или ключом
Проверка окружения на сервере:
java -version
# Должно показать: openjdk version "17.x.x"
Инструкция по компиляции на сервере
1. Подключение к серверу
# Подключение по SSH
ssh ua1zbe@192.168.1.46
# Введите пароль: ktdbycrbq1980
2. Загрузка проекта на сервер
Вариант A: Через rsync (рекомендуется)
# С локальной машины
rsync -avz -e ssh /home/ua1zbe/my_aprs_project/vs2/ ua1zbe@192.168.1.46:~/my_aprs_project/vs2/
Вариант B: Через git
# На сервере
cd ~
git clone <repository-url> my_aprs_project/vs2
3. Сборка APK
# Подключение к серверу
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. Проверка сборки
# Проверка существования APK
ls -lh ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk
# Информация о сборке
./gradlew buildEnvironment
Установка на устройство
Вариант A: Через ADB (USB)
# Скачать 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: Прямая установка с сервера
# На сервере (если есть ADB и подключено устройство)
adb install ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk
Вариант C: Через файловый менеджер
- Скачать APK с сервера через SFTP/SCP
- Передать на телефон
- Установить через файловый менеджер
Полезные команды Gradle
# Очистка сборки
./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"
# Остановить Gradle и попробовать снова
./gradlew --stop
./gradlew clean assembleDebug
Ошибка: "minSdkVersion cannot be smaller than version 21"
# Jetpack Compose требует API 21+
# Проверить app/build.gradle.kts:
# minSdk = 21
Ошибка: "resource not found" для иконок
# Проверить наличие директорий mipmap
ls app/src/main/res/mipmap-*/
# Пересоздать иконки при необходимости
Ошибка: "BUILD FAILED - Manifest merger failed"
# Очистить сборку
./gradlew clean
# Проверить AndroidManifest.xml на ошибки
Долгая компиляция
# Использовать daemon (по умолчанию включён)
./gradlew assembleDebug --daemon
# Или увеличить память
export GRADLE_OPTS="-Xmx2g"
Быстрая сборка (one-liner)
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