ВВЕДЕНИЕ 3
1 ТРЕБОВАНИЯ К СИСТЕМЕ 5
Е1 Требования к интерфейсу 5
1.2 Требования к архитектуре 5
ЕЗ Требования к функционалу 6
ЕЗ. 1 Требования к компоненту apm scan 6
1.3.2 Требования к компоненту apm create 7
1.3.3 Требования к компоненту apm emulator 7
1.3.4 Требования к компоненту apm run 8
2 ОПИСАНИЕ КОМПОНЕНТОВ 9
2.1 Общее представление системы 9
2.2 Реализация компонента сканирования системы 10
2.3 Реализация компонента создания проекта 15
2.4 Реализация компонента управления эмулятором 19
2.5 Реализация компонента сборки и запуска приложения 22
3 ПРИМЕР ИСПОЛЬЗОВАНИЯ ИНСТРУМЕНТА 26
ЗАКЛЮЧЕНИЕ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33
ПРИЛОЖЕНИЕ
Количество пользователей мобильных устройств в 2019 году оценивается в 4,68 миллиардов человек [1]. Притом 69,68% всех мобильных устройств работают под управлением мобильной операционной системы Android [2]. Огромная популярность системы отражается в количестве разработчиков.
На сегодняшний день рынок инструментов для Android-разработчиков предлагает единственную актуальную среду для создания приложений - Android Studio. Однако она имеет ряд недостатков:
• Большой размер установочного пакета, равный 1 гб памяти компьютера (для операционной системы Linux).
• Высокие системные требования. В официальном источнике рекомендуемое количество оперативной памяти равно 8 гигабайтам [3]. Экспериментально было выявлено, что для двух одновременно открытых проектов для стабильной работы требуется 16 гигабайт памяти.
• Android Studio обязывает использовать в качестве средства сборки проекта сборщик Gradle, что может не подходить по различным причинам.
Существуют специальные программы - сборщики, такие как Gradle, Maven и Ant, задачей которых является упростить создание и управление проектами. Однако, процесс создания не может быть подвержен изменению со стороны разработчика, что приводит к ограниченности выбора программистом шаблона проекта. Кроме того, Android-проект не может быть создан средствами ни одного из существующих сборщиков.
Создание проекта вручную - это трудоемкий процесс с высоким риском ошибок, которые сложно выявить. В структуру этого процесса входит:
создание 34 директорий с глубиной вложенности не менее 3, как минимум 25 файлов и заполнение их текстом по определенному шаблону.
Таким образом, целью данной работы является разработка консольного приложения для организации создания и управления Android-проектом из командной строки для снижения требований к мощности устройств с любым из доступных средств сборки, либо вообще без него.
Для достижения поставленной цели были определены следующие задачи:
1) разработать интерфейс: определить входные точки в приложение, требуемое поведение и отображение;
2) разработать архитектуру: определить внутреннее устройство,
согласованность отдельных компонентов приложения, степень расширяемости и поддерживаемости;
3) реализовать компонент, ответственный за проверку наличия в системе необходимых зависимостей;
4) реализовать компонент, ответственный за создание проекта;
5) реализовать компонент, ответственный за создание и запуск эмулятора;
6) реализовать компонент, ответственный за сборку и запуск проекта.
В рамках выполнения данной выпускной квалификационной работы было разработано консольное приложение для организации создания и управления Android-проектом из командной строки с целью снижения требований к мощности устройств с любым из доступных средств сборки, либо вообще без него.
Для достижения поставленной цели были выполнены следующие задачи:
1) разработан интерфейс: определены входные точки в приложение, требуемое поведение и отображение - была использована библиотека docopt для оперативного забора параметров командной строки, определены команды и их параметры (см. приложение Б);
2) разработана архитектура: определено внутреннее устройство, согласованность отдельных компонентов приложения, степень расширяемости и поддерживаемости - было решено разделить приложение на 4 модуля (компонента), отвечающих каждый за один вариант использования, структура каждого модуля также является модульной, что является условием расширяемости проекта;
3) реализован компонент, ответственный за проверку наличия в системе необходимых зависимостей;
4) реализован компонент, ответственный за создание проекта;
5) реализован компонент, ответственный за создание и запуск эмулятора;
6) реализован компонент, ответственный за сборку и запуск проекта.
Разработанное консольное приложение обладает следующими функциональными возможностями:
• проверка наличия в системе необходимых компонентов;
• автоматическое создание проекта с возможностью выбора базового сборщика или полного отказа от него;
• создание и запуск эмулятора;
• сборка проекта и запуск проекта на устройстве (эмулятор).
В дальнейшем планируется:
• создать API для свободного расширения функционала
приложения;
• создать возможность динамически подгружать плагины, тем
самым создать инструмент динамического расширения
функционала приложения;
• применить DI-framework для автоматического управления
зависимостями;
• реализовать компонент, позволяющий переносить содержимое
одного пакета в другой с автоматическим изменением
соответствующих инструкций в исходных файлах.
Результаты данной дипломной работы опубликованы в репозитории GitLab и находятся в открытом доступе по ссылке: http: //gititis .kpfu.m/T itov/ apm.