ПЗ (1194863), страница 4

Файл №1194863 ПЗ (Мобильное приложение Coupons) 4 страницаПЗ (1194863) страница 42020-10-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

С помощью данного сервиса осуществлено прототипирование экранов мобильного приложения в соответствии с требованиями заказчика.

Ниже представлены прототипы экранов «Купоны» (рисунок 18, а) и «Магазины» (рисунок 18, б).

а) б)

Рисунок 18 – Экраны приложения «Купоны» и «Магазины»

а) б)

Рисунок 18 – Экраны приложения «Категории»

Выше представлен прототип экрана «Категории» (рисунок 18, а), а также прототип экрана какой-либо выбранной категории (рисунок 18, б). В случае выбора магазина из экрана «Магазины», произойдет переход на экран «Магазин», представленный на рисунке 19.

Рисунок 19 – Экран «Магазин»

2.3 Реализация мобильного приложения

Для реализации мобильного приложения выбрана среда разработки Android Studio. Разработка приложений для Android ведется на языке Java. Для компиляции приложения необходимо установить дополнительное программное обеспечение – Java Development Kit (JDK). JDK – комплект разработчика приложения на языке Java, включающий компилятор, стандартные библиотеки классов, примеры, документацию и исполнительную систему Java Runtime Environment (JRE – минимальная реализация виртуальной машины, в которой запускается и выполняется программный код на Java).

2.3.1 Создание экранов мобильного приложения

В соответствии с созданным прототипом необходимо разработать интерфейс мобильного приложения. Интерфейс включает в себя несколько экранов. Для их реализации необходимо несколько классов Activity.

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

Интерфейс класса называется layout и имеет расширение .xml. Разработчику доступно два режима работы с настройкой интерфейса: design и text. Режим работы design (рисунок 20) позволяет разработчику настроить внешний вид мобильного приложения интерактивно, то есть используя существующие примитивы, доступные в Android Studio: виджеты, текстовые блоки, контейнеры и другие элементы дизайна. При добавлении или изменении элементов интерфейса произойдет автоматическая запись в текстовом представлении интерфейса класса.

Рисунок 20 – Режим работы «design»

Режим текстового изменения интерфейса (рисунок 21) даёт разработчику возможность создавать интерфейс приложения привычным ему способом – непосредственным изменением кода.

Рисунок 21 – Режим работы «text»

Такой способ работы позволяет настроить мелкие детали интерфейса или задать какие-либо параметры элементам интерфейса.

2.3.2 Жизненный цикл приложения

В операционной системе Android все мобильные приложения имеют строго определенный системой жизненный цикл. Каждый раз при запуске какого-либо мобильного приложения система дает ему наивысший приоритет. Это возможно благодаря тому, что каждое приложение запускается в виде отдельного процесса. Например, благодаря этому, при работе с приложениями система не блокирует входящие звонки. После прекращения работы работы с приложением система, система освобождает ресурсы, переводит приложение в разряд низкоприоритетного и закрывает его.

Все объекты Activity, которые есть в приложении, управляются системой в виде стека Activity, который называется back stack. При запуске новой Activity она помещается поверх стека и выводится на экран устройства, пока не появится новая Activity. Когда текущая Activity заканчивает свою работу (например, пользователь уходит из приложения), то она удаляется из стека, и возобновляет работу та Activity, которая ранее была второй в стеке.

После запуска Activity проходит через ряд событий, которые обрабатываются системой и для обработки которых существует ряд обратных вызовов.

Рисунок 22 – Взаимосвязь обратных вызовов

Взаимосвязь между всеми обратными вызовами можно представить схематично (рисунок 22).

2.3.2.1 Метод onCreate()

Данный метод вызывается при создании или перезапуске Activity. Этот метод является обязательным элементом. В нем производится первоначальная настройка Activity. В частности, создаются объекты визуального интерфейса. Метод onCreate() принимает объект Bundle, который содержит прежнее состояние Activity, если оно было сохранено. В случае, если Activity была создана заново, то данный объект имеет значение null.

2.3.2.2 Метод onStart()

В методе onStart() осуществляется подготовка Activity на экран устройства. Как правило, этот метод не требует переопределения, а всю работу производит встроенный код. Сопровождается вызовом метода onResume(), если активность получает передний план, или вызовом метода onStop(), если становится скрытой.

2.3.2.3 Метод onResume()

При вызове метода onResume Activity переходит в состояние Resumed, а пользователь может с ней взаимодействовать. Activity остается в этом состоянии, пока она не потеряет фокус, например, вследствие переключения на другую Activity или просто из-за выключения экрана устройства.

2.3.2.4 Метод onPause()

Данный метод может быть вызван системой в том случае, если пользователь переходит к работе с другой Activity. Происходит свертывание активности. Сохраняются незафиксированные данные. Для увеличения производительности системы останавливается воспроизведение видео, аудио, анимации. Если пользователь решит вернутся к данной Activity, то система вызовет метод onResume() и Activity снова появится на экране. Однако если для работы активных приложений потребуется больше памяти, система может вызвать метод onStop().

2.3.2.5 Метод onStop()

Данный метод вызывается, когда окно становится невидимым для пользователя. Это может произойти как при уничтожении текущей Activity, так и при запуске новой Activity, перекрывшей текущее окно. В этом методе Activity переходит в состояние Stopped. Однако сохраняется состояние всех элементов интерфейса. При повторном открытии Activity восстанавливаются объекты, хранящиеся в памяти. Если пользователь возвращается к текущей Activity, предварительно перейдя на другую, то система вызовет метод onRestart. Однако, если Activity полностью завершила свою работу (например, из-за закрытия приложения), то вызывается метод onDestroy().

2.3.2.6 Метод onRestart()

Данный метод вызывается в случае, если окно возвращается в приоритетный режим после вызова метода onStop(). Это означает, что Activity была остановлена, а затем снова запущена пользователем. Данный метод всегда сопровождается вызовом метода onStart().

2.3.2.7 Метод onDestroy()

Работа Activity завершается вызовом данного метода. При этом удаляются все статические данные Activity. Отдаются все используемые ресурсы. Также данный метод вызывается при изменении ориентации экрана, уничтожая Activity, а затем создавая заново, используя метод onCreate().

Переходы между перечисленными выше методами можно представить в виде простой схемы (рисунок 23).

Рисунок 23 – Переход между состояниями Activity

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

2.3.3 Взаимодействие мобильного приложения с сервером

2.3.3.1 Класс AsyncTask

Одной из операций, выполняемой мобильным приложением, является получение информации с удаленного сервера. Однако, получение информации через интернет может занять некоторое количество времени, зависящее от качества соединения. По этой причине в Android целесообразно использовать асинхронные задачи (AsyncTask).

Асинхронная задача – это вычисление, которое работает в фоновом режиме в отдельном потоке. После выполнения вычислений, результаты передаются в пользовательский интерфейс. AsyncTask позволяет избежать блокировки интерфейса в то время, когда система занята выполнением какой-то «тяжелой» задачи.

Для работы с классом необходимо создать класс-наследник, в котором описывается реализация необходимых методов. При описании класса-наследника в угловых скобках указываются три типа данных:

– тип входных данных;

– тип промежуточных данных;

– тип возвращаемых данных.

Тип входных данных подразумевает под собой данные, необходимые для обработки задачи. Тип промежуточных данных определяет тип объектов, который используется для индикации процесса выполнения задачи. Тип возвращаемых данных – то, что вернет AsyncTask после работы.

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

Метод Execute().

Данный метод вызывается, чтобы начать выполнение задачи. В него передается набор данных определенного типа. Этот тип указан первым в угловых скобках при описании класса AsyncTask.

Метод onPreExecute()

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

Метод doInBackground()

Данный метод непосредственно выполняет задачу. Вызывается в фоновом потоке сразу после того, как завершит работу метод onPreExecute(). Этот метод используется для фоновых вычислений, которые займут значительное время. На данном этапе передаются параметры асинхронной задачи. Результат вычисления должен быть возвращен на этом этапе, и в дальнейшем передан в метод onPostExecute(). Также на этом шаге могут использоваться вызовы publishProgress(), которые посредством дальнейшего выполнения метода onProgressUpdate() позволяют передавать в главный поток информацию о прогрессе выполнения задачи.

Метод onPostExecute()

Данный метод выполняется из главного потока после завершения метода doInBackground(). Результат фонового вычисления передается на этом шаге как параметр.

Помимо вышеуказанных методов существует еще несколько, выполняющих операции при отмене пользователем выполнения фоновой задачи.

В любой момент времени задача может быть отменена посредством вызова метода cancel(boolean). После вызова этого метода вызов isCancelled() будет возвращать true. Также после вызова этого метода вместо метода onPostExecute(Object) будет вызван метод onCancelled(Object) после того, как завершится выполнение метода doInBackground(Object[]).

Характеристики

Тип файла
Документ
Размер
4,87 Mb
Высшее учебное заведение

Список файлов ВКР

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее