init
This commit is contained in:
375
BUILD_INSTRUCTIONS.md
Normal file
375
BUILD_INSTRUCTIONS.md
Normal 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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user