This commit is contained in:
2025-12-03 19:39:42 +09:00
commit 2bc018a4f7
68 changed files with 5663 additions and 0 deletions

375
BUILD_INSTRUCTIONS.md Normal file
View File

@@ -0,0 +1,375 @@
# 📦 Инструкция по сборке и запуску CamControl
## 🔧 Требования к системе
### На компьютере разработчика:
- Android Studio Arctic Fox или новее
- Java 11 или выше
- Gradle 8.0+
- SDK Platform 34 или выше
- NDK (если требуется)
### На устройстве для тестирования:
- Android 7.0 (API 24) или выше
- Минимум 200 МБ свободной памяти
- Камера на устройстве
- Подключение в Wi-Fi сеть
## 📝 Пошаговая инструкция
### Шаг 1: Клонирование репозитория
```bash
cd /home/trevor/AndroidStudioProjects
git clone <repository-url>
cd camControl
```
### Шаг 2: Синхронизация Gradle
**Через Android Studio:**
- Откройте проект в Android Studio
- Дождитесь автоматической синхронизации Gradle
- Если синхронизация не произошла, нажмите: File → Sync Now
**Через командную строку:**
```bash
./gradlew clean
./gradlew build
```
### Шаг 3: Проверка зависимостей
```bash
# Проверить все зависимости
./gradlew dependencies
# Скачать зависимости явно
./gradlew downloadDependencies
```
### Шаг 4: Сборка приложения
#### Вариант A: Через Android Studio (рекомендуется)
1. Откройте проект в Android Studio
2. Build → Make Project (Ctrl+F9)
3. Дождитесь завершения сборки
#### Вариант B: Через командную строку
```bash
# Debug сборка
./gradlew assembleDebug
# Release сборка (требует подписанный ключ)
./gradlew assembleRelease
# Или напрямую
./gradlew build
```
### Шаг 5: Установка на устройство
#### Вариант A: Через Android Studio
```
1. Подключите устройство через USB или запустите эмулятор
2. Run → Run 'app' (Shift+F10)
3. Выберите целевое устройство
4. Нажмите OK
```
#### Вариант B: Через командную строку
```bash
# Установить debug приложение
./gradlew installDebug
# Или напрямую через adb
adb install -r build/outputs/apk/debug/app-debug.apk
# Запустить приложение
adb shell am start -n com.example.camcontrol/.MainActivity
```
### Шаг 6: Запуск и отладка
```bash
# Просмотр логов приложения
adb logcat | grep "camControl"
# Очистить кэш приложения
adb shell pm clear com.example.camcontrol
# Переустановить приложение
./gradlew installDebug --force
```
## ⚠️ Устранение проблем при сборке
### Проблема: Gradle не может найти зависимости
**Решение:**
```bash
# Удалить кэш Gradle
rm -rf ~/.gradle
rm -rf .gradle
# Пересинхронизировать
./gradlew clean
./gradlew build --refresh-dependencies
```
### Проблема: Конфликт версий SDK
**Решение:**
Отредактируйте `build.gradle.kts`:
```kotlin
android {
compileSdk = 34 // Используйте версию, установленную на вашем ПК
minSdk = 24
targetSdk = 34
}
```
### Проблема: Приложение не устанавливается
**Решение:**
```bash
# Удалить старую версию приложения
adb uninstall com.example.camcontrol
# Переустановить
./gradlew installDebug
```
### Проблема: Логи не отображаются
**Решение:**
```bash
# Очистить логи
adb logcat -c
# Запустить приложение
adb shell am start -n com.example.camcontrol/.MainActivity
# Просмотр всех логов
adb logcat
```
## 🎯 Проверка после установки
После успешной установки проверьте:
```bash
# Приложение установлено
adb shell pm list packages | grep camcontrol
# Разрешения выданы
adb shell pm list permissions -u | grep CAMERA
# Приложение запущено
adb shell ps | grep camcontrol
```
## 📋 Файлы проекта
### Основная структура
```
camControl/
├── .gradle/ # Gradle кэш
├── .idea/ # Android Studio конфигурация
├── app/
│ ├── .gradle/
│ ├── build/ # Скомпилированные файлы
│ │ └── outputs/
│ │ └── apk/
│ │ └── debug/
│ │ └── app-debug.apk # Финальный APK
│ ├── src/
│ │ ├── androidTest/
│ │ ├── main/
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java/com/example/camcontrol/
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── StreamViewModel.kt
│ │ │ │ ├── WebSocketManager.kt
│ │ │ │ ├── VideoStreamingManager.kt
│ │ │ │ ├── CameraManager.kt
│ │ │ │ └── Models.kt
│ │ │ └── res/
│ │ └── test/
│ ├── build.gradle.kts
│ └── proguard-rules.pro
├── gradle/
│ ├── libs.versions.toml # Версии зависимостей
│ └── wrapper/
├── build.gradle.kts # Основной build файл
├── settings.gradle.kts
├── local.properties # Локальные настройки
├── README.md # Документация
├── SETUP_GUIDE.md
├── INTEGRATION.md
└── COMPLETION_SUMMARY.md
```
## 🚀 Оптимизация для производства
### Release сборка
```bash
# Создать release APK
./gradlew assembleRelease
# Или для Bundle (для Google Play)
./gradlew bundleRelease
```
### Минификация и оптимизация
Отредактируйте `build.gradle.kts`:
```kotlin
android {
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}
```
### Подписание APK
```bash
# Создать keystore (один раз)
keytool -genkey -v -keystore my-release-key.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias my-key-alias
# Подписать APK
jarsigner -verbose -sigalg SHA256withRSA \
-digestalg SHA-256 \
-keystore my-release-key.jks \
app/build/outputs/apk/release/app-release-unsigned.apk \
my-key-alias
# Выровнять APK
zipalign -v 4 \
app/build/outputs/apk/release/app-release-unsigned.apk \
app-release.apk
```
## 🧪 Тестирование
### Unit тесты
```bash
./gradlew test
```
### Instrumented тесты (на устройстве)
```bash
./gradlew connectedAndroidTest
```
### Запуск конкретного теста
```bash
./gradlew testDebugUnitTest --tests "*.ExampleUnitTest"
```
## 📊 Анализ приложения
### Проверка размера APK
```bash
# Анализ структуры APK
./gradlew analyzeDebugBundle
# Просмотр размеров
./gradlew debugApkSize
```
### Проверка зависимостей
```bash
# Дерево зависимостей
./gradlew dependencies
# Только для debug сборки
./gradlew dependenciesDebug
# Экспорт в файл
./gradlew dependencies > dependencies.txt
```
## 🔍 Отладка
### Подключение отладчика
1. В Android Studio выберите Run → Debug 'app'
2. Установите точки останова в коде
3. Приложение паузируется на точках останова
### Профилирование
```bash
# Запустить Profiler через Android Studio
# Run → Open Profiler
# Или через командную строку
adb forward tcp:9999 tcp:9999
```
### Просмотр файловой системы приложения
```bash
adb shell
cd /data/data/com.example.camcontrol/
# Просмотр логов приложения
cat files/app.log
# Просмотр кэша
cd cache/
ls -la
```
## ✅ Контрольный список перед публикацией
- [ ] Код протестирован на реальном устройстве
- [ ] Логирование отключено или установлено на DEBUG уровень
- [ ] Скрыты все секретные ключи и пароли
- [ ] Версия приложения обновлена
- [ ] Документация актуальна
- [ ] Разрешения в AndroidManifest.xml корректны
- [ ] Нет утечек памяти (проверено Profiler)
- [ ] Размер APK оптимален
- [ ] Подпись для release сборки создана
## 📚 Дополнительные ресурсы
- [Android Studio Documentation](https://developer.android.com/studio)
- [Gradle Documentation](https://gradle.org/docs)
- [Kotlin Documentation](https://kotlinlang.org/docs)
- [Jetpack Compose](https://developer.android.com/jetpack/compose)
## 💬 Получение помощи
Если при сборке возникают проблемы:
1. Проверьте консоль Gradle (Build → Make Project)
2. Посмотрите детальные логи (gradle build --info)
3. Очистите кэш и пересоберите
4. Проверьте версии инструментов (Preferences → SDK Manager)