Электронный учебно-методический комплекс по учебной дисциплине «Разработка программного обеспечения для мобильных платформ» для специальностей 6-05-0612-01 «Программная инженерия», 6-05-0611-01 «Информационные системы и технологии»
.pdfБелорусский национальный технический университет
Международный институт дистанционного образования Кафедра «Информационные системы и технологии»
ЭЛЕКТРОННЫЙ УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
ПО УЧЕБНОЙ ДИСЦИПЛИНЕ
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЧЕНИЯ ДЛЯ МОБИЛЬНЫХ ПЛАТФОРМ
для специальностей:
6-05-0612-01 «Программная инженерия» 6-05-0611-01 «Информационные системы и технологии»
Составитель:
Бумай Андрей Юрьевич, старший преподаватель кафедры
Информационные системы и технологии
МИНСК
БНТУ
2025
1
Разработка
программного обеспечения для мобильных платформ
2
Перечень материалов
Конспект лекций, материалы для лабораторных занятий и контрольных работ, вспомогательный раздел.
Пояснительная записка
Цели данного ЭУМК – повышение эффективности организации учебного процесса с использованием дистанционных технологий; предоставление возможности студентам заниматься самообразованием, пользуясь комплектом учебно-методических материалов по дисциплине «Разработка программного обеспечения для мобильных платформ».
ЭУМК содержит четыре раздела: теоретический, практический, контроля знаний и вспомогательный.
Теоретический раздел представлен конспектом лекций. Лекционный материал подготовлен в соответствии с основными разделами и темами учебной программы.
Практический раздел представлен лабораторными работами, которые помогут освоить теоретический материал дисциплины.
Раздел контроля знаний включает контрольную работу, содержащую индивидуальные варианты заданий, требования к оформлению контрольной работы, вопросы к экзамену. Вспомогательный раздел представлен учебной программой. Данное ЭУМК в первую очередь разработано для студентов МИДО дистанционной (заочной) формы получения образования, однако ЭУМК также может быть полезным студентам дневной формы получения образования и всем, кто заинтересован в освоении дисциплины «Системное прогаммирование».
3
СОДЕРЖАНИЕ |
|
Перечень материалов ................................................................................... |
3 |
Пояснительная записка................................................................................ |
3 |
СОДЕРЖАНИЕ ............................................................................................ |
4 |
РАЗДЕЛ 1 ТЕОРЕТИЧЕСКИЙ ............................................................... |
8 |
ВВЕДЕНИЕ [1] ............................................................................................. |
8 |
1.1 Создание первого Android-приложения [1]......................................... |
9 |
1.1.1 Компоненты приложения [1] ........................................................... |
10 |
1.1.2 Структура проекта [1]....................................................................... |
13 |
1.1.3 Разработка интерфейса приложения [1] ......................................... |
17 |
1.1.4 Запуск приложения [1]...................................................................... |
21 |
1.2Архитектура Android и процесс компиляции мобильного
приложения [1] ........................................................................................... |
23 |
|
1.2.1 Архитектура операционной системы Android [1].......................... |
23 |
|
1.2.2 Процесс сборки Android-приложения [1] ....................................... |
26 |
|
1.3 |
Организация пользовательского интерфейса [1] .............................. |
28 |
1.3.1 Разработка Layout [1] ........................................................................ |
28 |
|
1.3.2 Разработка интерфейса в режиме дизайнера [1] ............................ |
29 |
|
1.4 |
Установка размеров [1]........................................................................ |
30 |
1.5 |
Виды Layout [1] .................................................................................... |
34 |
1.5.1 LinearLayout [1] ................................................................................. |
34 |
|
1.5.2 RelativeLayout [1]............................................................................... |
35 |
|
1.5.3 TableLayout [1]................................................................................... |
39 |
|
1.5.4 FrameLayout [1].................................................................................. |
40 |
|
1.5.5 GridLayout [1]..................................................................................... |
42 |
|
1.5.6 ConstraintLayout [1] ........................................................................... |
44 |
|
1.5.7 ScrollView [1] ..................................................................................... |
54 |
|
1.6 |
Обращение к View [1] .......................................................................... |
54 |
4
1.7 Ресурсы [1] ............................................................................................ |
55 |
||
1.7.1 Группирование ресурсов [1] ............................................................ |
55 |
||
1.7.2 |
Предоставление альтернативных ресурсов и квалификаторы |
||
конфигурации [1]........................................................................................ |
57 |
||
1.7.3 Строковые ресурсы [1] ..................................................................... |
58 |
||
1.7.4 Ресурсы plurals [1] ............................................................................. |
58 |
||
1.7.5 Ресурсы dimension [1] ....................................................................... |
59 |
||
1.7.6 Ресурсы color [1]................................................................................ |
60 |
||
1.7.7 Доступ к ресурсам [1] ....................................................................... |
60 |
||
1.7.8 Добавление layout-файла для смены ориентации экрана [1]....... |
61 |
||
1.8 Обработка нажатий View [1]............................................................... |
64 |
||
1.9 Вывод Log-сообщений [1] ................................................................... |
70 |
||
1.10 |
Всплывающие окна Toast [1] ............................................................ |
73 |
|
1.11 |
Элементы управления [1] .................................................................. |
74 |
|
1.11.1 TextView [1] ..................................................................................... |
74 |
||
1.11.2 EditText [1] ....................................................................................... |
75 |
||
1.11.3 Button [1] .......................................................................................... |
76 |
||
1.11.4 Checkboxes [1].................................................................................. |
76 |
||
1.11.5 RadioButton [1]................................................................................. |
77 |
||
1.11.6 ToggleButton [1] ............................................................................... |
77 |
||
1.12 |
Понятие активности (Activity) [1] .................................................... |
78 |
|
1.13 |
Жизненный цикл Activity [1] ............................................................ |
79 |
|
1.13.1 Стек Activity [1] ............................................................................... |
79 |
||
1.13.2 Состояния Activity [1]..................................................................... |
80 |
||
1.13.3 Отслеживание изменения состояний Activity [1] ........................ |
81 |
||
1.13.4 Сохранение состояния Activity [1] ................................................ |
83 |
||
1.14 |
Добавление Activity [1]....................................................................... |
86 |
|
1.15 |
Понятие Intent [1] ............................................................................... |
88 |
|
1.15.1 Передача и получение значений из Activity [1] ........................... |
89 |
||
5
1.16 |
Запуск Activity для получения результата [1] ................................. |
|
89 |
|
1.16.1 Использование Intent [1]................................................................. |
|
|
89 |
|
1.17 |
Типы объектов Intent [1].................................................................... |
|
|
90 |
1.17.1 Задание неявного объекта Intent [1] .............................................. |
|
|
90 |
|
1.17.2 Определение объекта Intent [1]...................................................... |
|
|
91 |
|
1.18 |
Настройка фильтров для объекта Intent [1] |
..................................... |
|
92 |
1.19 |
Разрешение объектов Intent [1] ......................................................... |
|
|
93 |
1.19.1 Тестирование действия [1] ............................................................. |
|
|
94 |
|
1.19.2 Тестирование категории [1] ........................................................... |
|
|
94 |
|
1.19.3 Тестирование данных [1]................................................................ |
|
|
95 |
|
1.20 |
Принцип работы фильтров [1] .......................................................... |
|
|
96 |
1.21 |
Меню [1].............................................................................................. |
|
|
96 |
1.21.1 Определение меню в файле XML [1] ............................................ |
|
|
97 |
|
1.21.2 Вывод меню на экран [1].............................................................. |
|
|
100 |
|
1.21.3 Обработка нажатий [1] ................................................................. |
|
|
100 |
|
1.21.4 Программное создание меню и изменение пунктов меню во время |
||||
выполнения приложения [1] ................................................................... |
|
|
102 |
|
1.21.5 Создание контекстного меню [1]................................................. |
|
|
103 |
|
1.21.6 Создание всплывающего меню [1].............................................. |
|
|
107 |
|
1.21.7 Создание приложения Блокнот [1].............................................. |
|
|
108 |
|
РАЗДЕЛ 2 ПРАКТИЧЕСКИЙ ............................................................. |
|
|
112 |
|
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО КУРСУ РАЗРАБОТКА |
||||
ПРОГРАММОНОГО ОБЕСПЕЧЕНИЯ |
ДЛЯ |
МОБИЛЬНЫХ |
||
ПЛАТФОРМ ............................................................................................. |
|
|
112 |
|
Лабораторная работа №1. Создание первого Android-приложения ... |
112 |
|||
Лабораторная работа №2. Изучение структуры Android-проекта ...... |
112 |
|||
Лабораторная работа №3. Работа с макетами интерфейса .................. |
113 |
|||
Лабораторная работа №4. Обработка пользовательского ввода......... |
114 |
|||
Лабораторная работа №5. Работа с ресурсами и локализацией .......... |
114 |
|||
6
Лабораторная работа №6. Создание собственного стиля и тем.......... |
115 |
Лабораторная работа №7. Работа с несколькими активностями ........ |
115 |
Лабораторная работа №8. Сборка и запуск приложения. Финализация |
|
.................................................................................................................... |
116 |
РАЗДЕЛ 3 КОНТРОЛЬ ЗНАНИЙ ...................................................... |
118 |
ОБЩИЕ ТРЕБОВАНИЯ К КОНТРОЛЬНОЙ РАБОТЕ ....................... |
118 |
ВАРИАНТЫ ЗАДАНИЯ НА КОНТРОЛЬНУЮ РАБОТУ .................. |
124 |
ВОПРОСЫ ДЛЯ КОНТРОЛЯ ЗНАНИЙ ............................................... |
126 |
РАЗДЕЛ 4 ВСПОМОГАТЕЛЬНЫЙ................................................... |
129 |
УЧЕБНАЯ ПРОГРАММА 6-05-0611-01................................................ |
129 |
УЧЕБНАЯ ПРОГРАММА 6-05-0612-01................................................ |
135 |
ОБЩИЕ ТРЕБОВАНИЯ К КУРСОВОМУ ПРОЕКТУ ........................ |
141 |
ПРИЛОЖЕНИЕ А Титульный лист (пример) ....................................... |
146 |
ПРИЛОЖЕНИЕ Б Лист-задания (пример) ............................................ |
147 |
ПРИЛОЖЕНИЕ В Примерный образец структуры и содержания |
|
пояснительной записки к курсовому проекту....................................... |
149 |
СПИСОК ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ ..................................... |
150 |
7
РАЗДЕЛ 1 ТЕОРЕТИЧЕСКИЙ
ВВЕДЕНИЕ [1]
Android – операционная система для смартфонов, планшетов, электронных книг, цифровых проигрывателей, наручных часов, фитнесбраслетов, игровых приставок, ноутбуков, очков Google Glass, телевизоров и других устройств [1]. Она основана на ядре Linux и собственной реализации виртуальной машины Java от Google. Изначально разрабатывалась компанией Android Inc. (теперь Google).
Каждая версия системы начиная с версии 1.5 получает собственное кодовое имя на тему сладостей. Кодовые имена присваиваются в порядке латинского алфавита (рисунок) [1]. На настоящий момент выпущено 15 версий системы. Исходя из статистики на май 2019 г. [1].
Как показано на рисунке, самой распространенной версией остается Android 6.0, она установлена на 16,9% всех устройств. Следом за ней расположилась система Android 8.1 с 15,4%.
Версии операционной системы Android
8
Для разработки приложений под операционную систему Android нужно скачать и установить SDK. Сейчас существует несколько сред разработки:
NetBeans;
Eclipse;
Intellij DEA;
Android Studio.
Android Studio ориентирована именно под ОС Android, а также не требует установки дополнительных плагинов. Примеры выполнения заданий в данном пособии будут рассматриваться на Android Studio.
Рассмотрим языки разработки нативных приложений.
Java – официальный язык программирования, поддерживаемый средой разработки Android Studio. На Java ссылается большинство официальной документации Google.
Kotlin – язык был официально представлен в мае 2017 г. на Google I/O и позиционируется Google как второй официальный язык программирования под Android после Java. Kotlin совместим с Java и не вызывает снижения производительности и увеличения размера файлов. Отличие от Java в том, что он требует меньше служебного кода, поэтому более легкий для чтения.
Более низкоуровневые языки поддерживаются Android Studio с
использованием Java NDK (Native Development Kit). Это позволяет писать нативные приложения, что может пригодиться для создания игр или других ресурсоемких программ.
Примеры, приведенные в данном учебно-методическом пособии, написаны на языке Java.
1.1 Создание первого Android-приложения [1]
Для создания нового проекта в Android Studio (рис. 1.1) необходимо выбрать шабон приложения.
9
Рис. 1.1. Окно
определения
шаблона
Затем при задании параметра Package name (рис. 1.2) необходимо использовать обратное доменное имя, например by.bstu.fit.фио.
Следующий шаг – установка версии API (рис. 1.2). При выборе более нового API предоставляется небольшой процент поддерживаемых устройств.
1.1.1 Компоненты приложения [1]
Компоненты приложения являются блоками, из которых состоит приложение. Каждый компонент представляет собой отдельную точку, через которую система может войти в приложение. Не все компоненты являются точками входа для пользователя. Однако каждый компонент
– это самостоятельная структурная единица, которая определяет работу приложения в целом. Компоненты приложения можно отнести к одному из пяти типов.
10
