Files
cam_control_android/BUILD_INSTRUCTIONS.md
2025-12-03 19:39:42 +09:00

376 lines
10 KiB
Markdown
Raw Permalink 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.

# 📦 Инструкция по сборке и запуску 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)