Самая популярная в мире мобильная ОС — от телефонов и часов до автомобилей и телевизоров.

Добро пожаловать в серию статей Learn Android. Я буду еженедельно рассказывать вам, почему и как начать работу с Android и создать свое портфолио. Я поделюсь с вами пояснениями и фрагментами кода, как реализовать самые важные и базовые вещи в Android.

В предыдущей статье мы узнали о том, как создать новый проект и как запустить его на устройстве. На этом занятии мы узнаем о компонентах, из которых состоит приложение, и углубимся в жизненные циклы активности.

Предыдущая статья: Изучение Android — начало работы

Что касается архитектуры программного обеспечения, Android основан на ядре Linux, которое обрабатывает все низкоуровневые функции, такие как аппаратное обеспечение, управление питанием и драйверы. Над этим слоем находится среда выполнения Android и основные библиотеки. Вдобавок к этому находится Application Framework, на котором работает наш экземпляр приложения. И наше приложение, и все остальные присутствуют на самом верхнем уровне, который называется Прикладной уровень.

Приложение для Android состоит из четырех основных типов компонентов:

  1. мероприятия
  2. Услуги
  3. Поставщики контента
  4. Широковещательные приемники

Все эти компоненты зарегистрированы в файле манифеста Android. Его можно рассматривать как файл метаданных (данные о данных).

Мероприятия

Одноэкранный пользовательский интерфейс, содержащий различные компоненты, с которыми можно взаимодействовать. Проще говоря, это можно описать как «однонаправленное действие, которое пользователь может делать». Если у приложения более одного действия, одно из них должно быть помечено как Launcher или то, которое запускается при запуске приложения. Эта маркировка выполняется в файле манифеста и может быть показана, как показано ниже.

Для пользователя приложение можно рассматривать как ряд действий, связанных вместе для формирования приложения. Эти действия хранятся в стеке, и по мере того, как мы продолжаем выходить одно за другим, мы можем видеть предыдущие действия, через которые мы прошли. Если стек становится пустым, мы видим домашний экран андроида.

Действие состоит из двух основных компонентов — файла Logic (Java или Kotlin) и файла User Interface (XML). Их разделение помогает упростить обслуживание и обновление приложения. Это также помогает нам оптимизировать наше приложение для различных характеристик устройств, языков и размеров экрана.

Взгляды

Любой прямоугольный объект на экране с различными атрибутами, такими как высота, ширина, цвет фона и т. д., который отображает некоторые данные или информационное содержимое. Эти представления составляют макет экрана или пользовательского интерфейса. Этот пользовательский интерфейс можно разбить на самые простые части — представления.

В Android мы используем XML, чтобы описать, как будет выглядеть наш макет. Это решение включает в себя выбор каких элементов для размещения на экране и где их разместить на экране. Файлы макета находятся в каталоге app →res →layout проекта. Примеры представлений включают TextView (используется для отображения текста), ImageView (используется для отображения изображения или значка), Button (чувствительна к прикосновению и выполняет назначенные операции по щелчку) и другие.

XML похож на HTML и использует теги для отображения элементов на экране. Каждый из этих тегов имеет связанные с ним атрибуты, и некоторые из них могут содержать другие теги, точно так же, как работает HTML.

Макеты

Представляют собой набор представлений, которые определяют пользовательский интерфейс. Представления, которые содержат и упорядочивают другие представления для формирования пользовательского интерфейса, называются группами представлений или представлениями-контейнерами. Наиболее распространенные группы просмотра —

  1. LinearLayout — который упорядочивает компоненты внутри себя линейно, то есть один за другим. Это может быть горизонтально или вертикально.
  2. ConstraintLayout — новейший в блоке. Это работает, если компоненты определяют как минимум два ограничения относительно направлений (сверху, справа, снизу и слева).
  3. RelativeLayout — определение положения представления относительно других компонентов представления.
  4. ScrollView — позволяет просматривать содержимое, выходящее за пределы экрана, путем прокрутки в вертикальном направлении.

Если вы посмотрите на Java-код действия. Вы увидите, что в функции onCreate внутри активности мы используем функцию setContentView() и передаем имя XML-файла активности в качестве параметра. Это устанавливает макет для конкретного действия.

Вы, должно быть, думаете, что такое формат R.layout.name. Когда приложение построено и код скомпилирован, Android Studio создает файлы Resource, которые содержат созданные константы, которые позволяют нам идентифицировать различное содержимое папки res. . Подробнее о ресурсах можно узнать здесь.

Классы

В классы Java мы включаем всю логику нашего приложения. В приведенном ниже коде показано необработанное состояние класса Java, созданное с помощью EmptyActivity.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Функция onCreate аналогична функции main в C++ или Java. Он вызывается каждый раз, когда активность запускается или возобновляется. Итак, мы включаем в эту функцию весь код, который нам нужен в начале активности.

Жизненный цикл

Чтобы понять, как работает действие, нам нужно понять состояния жизненного цикла действия —

  1. onCreate() — вызывается, когда система впервые создает активность. В эту функцию мы включаем всю логику, которую нужно запускать только один раз при каждом создании активности. В этой функции мы даже задаем содержимое файла макета.
  2. onStart() — вызывается после функции onCreate(). Это делает активность видимой для пользователя.
  3. onResume() — активность находится в этом состоянии до того, как пользователь выполнит какие-либо действия. Это похоже на состояние ожидания и ожидание ответа пользователя для выполнения определенной задачи.
  4. onPause() — вызывается, когда активность не на переднем плане. Он приостанавливает операции, которые выполняются только в активном состоянии. Ожидается, что активность снова перейдет в состояние onResume().
  5. onStop() — вызывается, когда активность больше не видна пользователю. Его можно вызвать, когда активность завершилась и вот-вот будет завершена.
  6. onDestroy() — вызывается перед уничтожением активности. Это даже вызывается при изменении ориентации экрана. Система Android очищает все ресурсы и данные.

Подробную информацию о жизненных циклах Activity вы можете найти в документации здесь.

В функцию onCreate() передается параметр Bundle. Это что? Когда мы взаимодействуем с активностью и, например, меняем ориентацию активности. Будет вызван метод onDestroy(), и весь прогресс, который мы выполнили в действии, будет уничтожен. Чтобы убедиться, что это не так, система Android сохраняет все состояние данных в пакете с именем instanceState. Поэтому, когда onCreate() вызывается снова, это передается, чтобы при возобновлении активности мы не потеряли ценные данные, с которыми работали ранее.

Далее: Изучаем Android — Создание макетов — 1

Следите за еженедельными обновлениями! Подпишитесь на me и Parsed Inc. чтобы никогда не пропустить другое обновление.

Также давайте дружить на LinkedIn, GitHub и Facebook!

Чтобы узнать больше обо мне и моей работе, посетите мой сайт!

Подписывайтесь на ParsedInc.com. в Facebook, LinkedIn и Instagram!

Если вам понравилась эта статья, не стесняйтесь 👏👏👏 несколько раз и поделитесь ею с другом, чтобы она дошла до тех, кому нужно ее прочитать. Спасибо!