Настройка и сборка приложений под Android 2.x (Eclair)

Краткий ответ: не нужно собирать проект на «чистом» Android 2.0 — установите современный Android SDK, добавьте пакет платформы Android 2.x (API 7–10), используйте актуальный compileSdkVersion и низкий minSdkVersion, а сборку выполняйте через Gradle или командную строку.

Установка Android SDK и старых платформ

  1. Установите JDK 8 и Android Studio или только Command-line tools.
  2. Через SDK Manager добавьте Platform‑Tools и современную платформу (для compileSdkVersion).
  3. Установите старые платформы (если доступны): Android 2.1–2.3 (API 7–10). Если нужной версии нет в списке, можно подключить скачанный архив старого SDK как отдельный SDK‑путь, но делать это только в изолированной среде.

Сторонние зеркала старых SDK и системных образов небезопасны — используйте их на виртуальной машине или отдельной машине.

Настройте переменные окружения (пример для Unix): bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk export ANDROID_SDK_ROOT=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin

Если IDE не нужна, установите только Command-line tools и собирайте через Gradle — это проще для легаси-проектов.

Перенос старого проекта и конфигурация Gradle

Структура проектов под Eclair обычно не использует Gradle — оптимально создать новый Gradle-модуль и перенести в него исходники, ресурсы и манифест.

Пример минимальной конфигурации в build.gradle: text android { compileSdkVersion 33 defaultConfig { applicationId "com.example.legacy" minSdkVersion 7 // или 8–10 по требованию targetSdkVersion 33 versionCode 1 versionName "1.0" } }

Правила по коду:

  • Не вызывать новые API без проверки Build.VERSION.SDK_INT.
  • Для несовместимых функций реализуйте fallback-версии.
  • AndroidX/новые support-библиотеки часто не поддерживают minSdk < 14 — возможно придётся использовать старые support‑lib или писать свои реализации.

Сборка, подпись и тестирование

Сборка в Android Studio: Build → Build APK(s) или Generate Signed Bundle/APK.
Через консоль: bash ./gradlew assembleDebug ./gradlew assembleRelease

APK появится в app/build/outputs/apk/…

Тестирование:

  • Если есть старое системное изображение, создайте AVD с Android 2.x.
  • Часто проще и надёжнее тестировать на реальном старом устройстве (эмуляторы тех времён медленные/нестабильны).
  • Можно использовать Android‑x86 старых версий в виртуальной машине для приближённых тестов.

Эмуляторы старых образов работают медленно; тестируйте на реальном железе, если критична совместимость.

Частые ошибки

  • Попытка использовать современные библиотеки без проверки minSdk — приводит к ClassNotFound/NoSuchMethodError.
  • Подключение старых SDK из ненадёжных источников и запуск их в основной системе (риск безопасности).
  • Оставлять старый код без документации — новые разработчики теряются при поддержке.

FAQ

  • Нужен ли чистый Android 2.0 SDK для сборки? — Нет: достаточно современного SDK + пакет старой платформы (или близкой по API).
  • Как проверить, какие API доступны? — Смотрите документацию по API‑уровням и используйте Build.VERSION проверки.
  • Можно ли публиковать в Google Play с minSdk = 7? — Технически можно, но практически это бессмысленно: магазины и современные библиотеки ориентированы на более высокие API, и аудитория таких устройств минимальна.

Лучшие практики: держите compileSdk актуальным, фиксируйте причины низкого minSdk в документации, инкапсулируйте платформно‑зависимый код и планируйте постепенное повышение minSdk на основе реальных данных использования.