13
Занятие 4 (2-й год) Повторение - Что такое AVD? - Что такое SDK? - Что такое Gradle? - Что такое MVC? - Что такое VPN? - на какой платформе создан Android? (Linux) - как называется внешний вид экрана? (макет) - в файле с каким расширением содержится макет? (xml) - как называется класс, содержащий логику Android-программы? (активность) - как называется пакет разработчика Android-приложений? (SDK Android Software Dment - совпадает ли нумерация версий Android и API(библиотек)? (нет, например 4.1-16) - какие 2 редактора доступны при создании макета? (визуальный и текстовый) - как называются элементы управления, размещаемые на макете приложения? (виджеты) - какой метод вызывается при первом создании активности? (onCreate()) - какое расширение имеет файл проекта под Android? (apk) - при запуске Android-программы что запускается в первую очередь: активность или макет? Жизненный цикл активности Приложения для Android не имеют метода main. Их запуск, приостановка и прекращение происходит в соответствии с методами жизненного цикла активности, которые содержатся в классе AppCompatActivity.

(2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Занятие 4 (2-й год)

Повторение

- Что такое AVD?

- Что такое SDK?

- Что такое Gradle?

- Что такое MVC?

- Что такое VPN?

- на какой платформе создан Android? (Linux)

- как называется внешний вид экрана? (макет)

- в файле с каким расширением содержится макет? (xml)

- как называется класс, содержащий логику Android-программы? (активность)

- как называется пакет разработчика Android-приложений? (SDK – Android Software Dment

- совпадает ли нумерация версий Android и API(библиотек)? (нет, например 4.1-16)

- какие 2 редактора доступны при создании макета? (визуальный и текстовый)

- как называются элементы управления, размещаемые на макете приложения? (виджеты)

- какой метод вызывается при первом создании активности? (onCreate())

- какое расширение имеет файл проекта под Android? (apk)

- при запуске Android-программы что запускается в первую очередь: активность или

макет?

Жизненный цикл активности

Приложения для Android не имеют метода main.

Их запуск, приостановка и прекращение происходит в соответствии с методами

жизненного цикла активности, которые содержатся в классе AppCompatActivity.

Page 2: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

МИНУТКА НЕНАВИСТИ ANDROID-РАЗРАБОТЧИКА

РАЗБИРАЕМ САМЫХ ЧАСТЫХ ПРОБЛЕМ КОДИНГА (Хакер, №5, 2018)

1. Если ты программируешь под Android, то наверняка видел схему жизненного цикла

активности. А знал ли ты жизненный цикл окошка с кнопочками, которое создавал

компилятор старого и доброго Delphi? Я думаю — нет, не знал, и знать тебе это было не

нужно. Интересно, как бы на тебя посмотрели олдскульные дельфисты‐паскалисты, если

бы ты им сказал: «когда пользователь перевернет свой экран, нам надо пересоздать все

формы и восстановить состояние всех компонентов». Скорее всего, они бы пальцем у

виска покрутили. И не только потому, что переворачивать старые мониторы и системные

блоки было не принято. :)

А меж тем Android именно так и устроен: повернул экран — начинай все сначала.

Конечно, в настройках ты можешь отключить поворот экрана, но это не всегда удобно, да

Выполнение

(видимо, на переднем

плане)

Приостановка

(видимо)

Остановка

(невидимо)

Не существует

onPause()

onStop()

onDestroy() onCreate()

onStart()

onResume()

Page 3: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

и рядовые пользователи не знают и десяти процентов возможностей своего смартфона.

Поэтому сейчас имеем мы то, что имеем, и единственное, что ты можешь сделать при

разработке, — это отключить в манифесте пересоздание Activity, добавив свойства

android:configChanges="keyboardHidden|orientation|screenSize

Конечно, «знающие люди» так делать не рекомендуют, но такой костыль используют

даже серьезные социальные приложения. Если не веришь — посмотри сам манифесты из

их APK (вот инструкция).

Дело осложняют и сами производители устройств — каждый из них адаптирует ОС к

своим устройствам, меняя в том числе ее поведение. Например, традиционно

рекомендуется сохранять данные при событии onStop(). Пользователь свернул

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

вызов этого метода не гарантирован. В таком случае нужно сохранять все, что можешь, в

методе onPause(). Правда, он вызывается не только при выходе из активити, но и при

показе диалогового окна, поэтому нужно предвидеть этот момент и предусматривать

проверки на показ диалога.

Файл манифеста

Основной файл с настройками для целого приложения.

Разработка игры «Угадай число» для Android

В Android Studio выберем Start A New Android Studio Project.

Стоит выбрать более раннюю версию Android, чтобы программа могла работать не только

на новейших устройствах.

В качестве шаблона выберем Empty Activity.

Page 4: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Разработка макета программы

GUI будем создавать в activity_main.xml.

Для разработки макета удобно пользоваться конструктором (вкладка Design).

Элементы управления в Андроид называются виджетами и имеют расширенные

возможности.

Свойства каждого выделенного виджета отображаются на панели справа:

Для удобства разработчика по умолчанию отображаются только основные свойства

виджета:

- идентификатор

- текст

- привязка

Но можно перейти в расширенный режим, нажав кнопку View All Attributes:

Page 5: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Практическая работа

Разработать макет игры.

ВАЖНО

- текст виджетов не менять

- установить размеры текста

- установить привязки (ConstraintLayout)

Page 6: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Самое важное, что надо знать о каждом виджете, это его идентификатор ID.

Идентификатор служит для связи элементов макета с Java-программой.

Идентификаторы виджетов отображаются в дереве компонентов:

И в основных свойствах, где их можно изменить:

Page 7: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Идентификаторы можно приравнять к названиям переменных в Java.

Важно давать осмысленные названия. Изменим идентификаторы, подтверждая связь

через файл ресурсов:

Результат:

Строковые ресурсы

Тексты для отображения пользователям являются ресурсами.

Их выносят в отдельный файл ресурсов:

Page 8: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Добавим нужный нам текст для виджетов.

Пример

Виджет textGame должен содержать текст:

Высокоинтеллектуальная игра "Угадай число"

Этот текст можно ввести прямо в поле свойства

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

Page 9: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

В результате все разговоры с пользователями будут собраны в одном месте:

Это действительно очень удобно!

Задание

Изменить текст для остальных виджетов:

Page 10: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

Примечание:

- не располагайте элементы ниже середины макета, так как виртуальная клавиатура будет

их перекрывать.

- почти все свойства виджетов интуитивно понятны. Но не все :) За выравнивание отвечает

свойство gravity:

- свойства, которые уже использовались автоматом переносятся наверх панели.

Обработчик событий

Элементы управления в Android обрабатываются также, как в любых других средах - с

помощью слушателя событий. Код слушателя событий - это java-код.

Слушатель событий подключить очень просто - для этого есть свойство виджета onClick. В

нем надо написать название метода, в котором будет происходить обработка события.

Например:

Так как этого метода в реальности не существует, то программа выдаст соответствующую

ошибку:

Этот метод можно создать

Page 11: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

- вручную

- с помощью мастера

Воспользуемся услугами мастера :)

Перейдем на вкладку Text, найдем строку с ошибкой и нажмем на красную лампочку:

В результате получим сгенерированный код в ActivityMain.java

Пусть нажатие кнопки будет выводить на экран временное уведомление для

пользователя – toast.

Уведомление создается с помощью метода makeText() класса Toast.

Сначала добавим выводимый текст в файл строковых ресурсов:

Page 12: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml

А теперь добавим код в слушатель кнопки:

Результат:

Page 13: (2-й год) Повторение Что такое AVD? Что такое SDK? · Разработка макета программы GUI будем создавать в activity_main.xml