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

10 KiB
Raw Permalink Blame History

📦 Инструкция по сборке и запуску CamControl

🔧 Требования к системе

На компьютере разработчика:

  • Android Studio Arctic Fox или новее
  • Java 11 или выше
  • Gradle 8.0+
  • SDK Platform 34 или выше
  • NDK (если требуется)

На устройстве для тестирования:

  • Android 7.0 (API 24) или выше
  • Минимум 200 МБ свободной памяти
  • Камера на устройстве
  • Подключение в Wi-Fi сеть

📝 Пошаговая инструкция

Шаг 1: Клонирование репозитория

cd /home/trevor/AndroidStudioProjects
git clone <repository-url>
cd camControl

Шаг 2: Синхронизация Gradle

Через Android Studio:

  • Откройте проект в Android Studio
  • Дождитесь автоматической синхронизации Gradle
  • Если синхронизация не произошла, нажмите: File → Sync Now

Через командную строку:

./gradlew clean
./gradlew build

Шаг 3: Проверка зависимостей

# Проверить все зависимости
./gradlew dependencies

# Скачать зависимости явно
./gradlew downloadDependencies

Шаг 4: Сборка приложения

Вариант A: Через Android Studio (рекомендуется)

  1. Откройте проект в Android Studio
  2. Build → Make Project (Ctrl+F9)
  3. Дождитесь завершения сборки

Вариант B: Через командную строку

# Debug сборка
./gradlew assembleDebug

# Release сборка (требует подписанный ключ)
./gradlew assembleRelease

# Или напрямую
./gradlew build

Шаг 5: Установка на устройство

Вариант A: Через Android Studio

1. Подключите устройство через USB или запустите эмулятор
2. Run → Run 'app' (Shift+F10)
3. Выберите целевое устройство
4. Нажмите OK

Вариант B: Через командную строку

# Установить debug приложение
./gradlew installDebug

# Или напрямую через adb
adb install -r build/outputs/apk/debug/app-debug.apk

# Запустить приложение
adb shell am start -n com.example.camcontrol/.MainActivity

Шаг 6: Запуск и отладка

# Просмотр логов приложения
adb logcat | grep "camControl"

# Очистить кэш приложения
adb shell pm clear com.example.camcontrol

# Переустановить приложение
./gradlew installDebug --force

⚠️ Устранение проблем при сборке

Проблема: Gradle не может найти зависимости

Решение:

# Удалить кэш Gradle
rm -rf ~/.gradle
rm -rf .gradle

# Пересинхронизировать
./gradlew clean
./gradlew build --refresh-dependencies

Проблема: Конфликт версий SDK

Решение: Отредактируйте build.gradle.kts:

android {
    compileSdk = 34  // Используйте версию, установленную на вашем ПК
    minSdk = 24
    targetSdk = 34
}

Проблема: Приложение не устанавливается

Решение:

# Удалить старую версию приложения
adb uninstall com.example.camcontrol

# Переустановить
./gradlew installDebug

Проблема: Логи не отображаются

Решение:

# Очистить логи
adb logcat -c

# Запустить приложение
adb shell am start -n com.example.camcontrol/.MainActivity

# Просмотр всех логов
adb logcat

🎯 Проверка после установки

После успешной установки проверьте:

# Приложение установлено
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 сборка

# Создать release APK
./gradlew assembleRelease

# Или для Bundle (для Google Play)
./gradlew bundleRelease

Минификация и оптимизация

Отредактируйте build.gradle.kts:

android {
    buildTypes {
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

Подписание APK

# Создать 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 тесты

./gradlew test

Instrumented тесты (на устройстве)

./gradlew connectedAndroidTest

Запуск конкретного теста

./gradlew testDebugUnitTest --tests "*.ExampleUnitTest"

📊 Анализ приложения

Проверка размера APK

# Анализ структуры APK
./gradlew analyzeDebugBundle

# Просмотр размеров
./gradlew debugApkSize

Проверка зависимостей

# Дерево зависимостей
./gradlew dependencies

# Только для debug сборки
./gradlew dependenciesDebug

# Экспорт в файл
./gradlew dependencies > dependencies.txt

🔍 Отладка

Подключение отладчика

  1. В Android Studio выберите Run → Debug 'app'
  2. Установите точки останова в коде
  3. Приложение паузируется на точках останова

Профилирование

# Запустить Profiler через Android Studio
# Run → Open Profiler

# Или через командную строку
adb forward tcp:9999 tcp:9999

Просмотр файловой системы приложения

adb shell
cd /data/data/com.example.camcontrol/

# Просмотр логов приложения
cat files/app.log

# Просмотр кэша
cd cache/
ls -la

Контрольный список перед публикацией

  • Код протестирован на реальном устройстве
  • Логирование отключено или установлено на DEBUG уровень
  • Скрыты все секретные ключи и пароли
  • Версия приложения обновлена
  • Документация актуальна
  • Разрешения в AndroidManifest.xml корректны
  • Нет утечек памяти (проверено Profiler)
  • Размер APK оптимален
  • Подпись для release сборки создана

📚 Дополнительные ресурсы

💬 Получение помощи

Если при сборке возникают проблемы:

  1. Проверьте консоль Gradle (Build → Make Project)
  2. Посмотрите детальные логи (gradle build --info)
  3. Очистите кэш и пересоберите
  4. Проверьте версии инструментов (Preferences → SDK Manager)