Каковы основные компоненты Android-приложений (активити / фрагмент / сервис / интент-фильтр)?

Основные компоненты Android-приложения — это строительные блоки, которые система использует для управления UI, фоновыми задачами и взаимодействием между приложениями.


1. Activity

  • Назначение: экран приложения, с которым взаимодействует пользователь.

  • Особенности:

    • Отображает UI через setContentView().

    • Имеет собственный жизненный цикл (onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()).

    • Может запускать другие Activity через Intent.

  • Пример: экран логина, главный экран, экран настроек.


2. Fragment

  • Назначение: часть UI внутри Activity, модульный компонент для переиспользуемого интерфейса.

  • Особенности:

    • Живёт внутри Activity и зависит от её жизненного цикла.

    • Позволяет строить адаптивный UI для разных экранов (например, планшет vs телефон).

    • Может иметь собственные методы жизненного цикла: onCreateView(), onViewCreated(), onDestroyView().

  • Пример: список элементов в одной половине экрана, детальная панель в другой.


3. Service

  • Назначение: выполнение фоновых задач без UI.

  • Особенности:

    • Не взаимодействует напрямую с пользователем.

    • Может работать в фоне даже когда Activity закрыта.

    • Типы сервисов:

      • Started Service: запускается методом startService(), работает пока явно не остановлен.

      • Bound Service: привязывается к компоненту через bindService(), работает пока есть клиенты.

    • Пример задач: загрузка файлов, воспроизведение музыки, синхронизация данных.


4. BroadcastReceiver

  • Назначение: приём и обработка широковещательных сообщений (broadcast) от системы или других приложений.

  • Особенности:

    • Может реагировать на события вроде: смена сети, завершение загрузки, SMS-сообщение.

    • Не имеет UI.

    • Может быть зарегистрирован в AndroidManifest.xml или динамически в коде.

  • Пример: приложение реагирует на подключение к Wi-Fi и начинает синхронизацию данных.


5. ContentProvider

  • Назначение: управление и предоставление доступа к данным приложения другим приложениям.

  • Особенности:

    • Позволяет безопасно читать/записывать данные.

    • Использует CRUD-операции: query(), insert(), update(), delete().

  • Пример: контакты (ContactsProvider), сохранённые заметки, база данных приложения.


6. Intent / Intent Filter

  • Intent: объект, который описывает действие, которое нужно выполнить (запуск Activity, Service или BroadCast).

    • Явный intent: указывает конкретный компонент.

      val intent = Intent(this, DetailActivity::class.java)
      startActivity(intent)
    • Неявный intent: указывает действие, система выбирает подходящий компонент.

      val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com"))
      startActivity(intent)
  • Intent Filter: определяет, какие intent’ы может принимать компонент.

    • Указывается в AndroidManifest.xml.

    • Пример: Activity открывает ссылки https://, Service обрабатывает custom action.


7. Ключевые зависимости

  • Activity и Fragment формируют UI.

  • Service и BroadcastReceiver — фоновые и системные события.

  • ContentProvider — данные, доступные для других приложений.

  • Intent/IntentFilter — механизм связи между всеми компонентами.

Last updated

Was this helpful?