Регистрация / Вход
Прислать материал

Создание встраиваемого модуля управления проектами в среду программирования Android Studio

Сведения об участнике
ФИО
Мясоутов Рамиль Хамзяевич
Вуз
Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Волгоградский государственный университет"
Тезисы (информация о проекте)
Область наук
Информационные технологии и вычислительные системы
Раздел области наук
Информационные технологии
Тема
Создание встраиваемого модуля управления проектами в среду программирования Android Studio
Резюме
Большинство современных мобильных android-приложений используют базы данных для хранения информации. Android для работы с базами данных использует известную библиотеку SQLite.
В процессе разработки каждый программист сталкивается с реализацией однотипных классов, предназначенных для работы с базой данных. Эти классы, зачастую, реализуют базовые функции для работы с каждой таблицей базы данных. К базовым функциям относят: вставку – insert, обновление – update, удаление – delete и выборку - select данных в таблице.
Цель данной работы состоит в создании функционала, способного исключить однотипной работы программистов, позволяя генерировать Java код для работы с базами данных SQLite.
Ключевые слова
генерация кода, создание плагинов, Android Studio, Intellij IDEA, java, программное обеспечение, базы данных, SQLite
Цели и задачи
Основная цель данной работы заключается в создании встраиваемого модуля для сред разработки Android Studio и Intellij IDEA. Данный модуль должен иметь функционал способный генерировать программный код для работы с базами данных и редактировать содержимое баз данных.
Введение

Во время разработки какого - либо программного продукта для операционной системы Android, для любой команды разработчиков так или иначе встает вопрос хранения данных. Android использует популярную библиотеку SQLite для хранения данных на мобильном устройстве. В процессе разработки каждый программист сталкивается с реализацией однотипных классов, предназначенных для работы с базой данных. Эти классы, зачастую, реализуют базовые функции для работы с каждой таблицей базы данных. Так как классы реализуют однотипные функции, то процесс написания данных классов можно автоматизировать. Создание системы, способной автоматизировать процесс написания классов для работы с базами данных, позволит исключить рутинную работу программистов.

Методы и материалы

Для реализации подобной системы, было принято решение о разделении проекта на три основные части:

  1. Редактор базы данных
  2. Проводник для мобильных устройств
  3. Генератор кода

Редактор базы данных включает в себя редактор структуры таблиц, полей и прочих элементов: транзакции, индексы и представления. Так же содержит древовидную структуру для просмотра всех элементов базы данных. Имеет функционал, позволяющий редактировать содержимое таблиц, и функционал, позволяющий работать с SQL-запросами. Интересной особенностью данного редактора является возможность работы с базой данной, расположенной на мобильном устройстве. Таким образом, созданный редактор способен решать широкой спектр задач при работе с базами данных SQLite.

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

Генератор кода является главной особенностью созданного плагина. Генератор состоит из двух основных частей: окна для ввода параметров генерации и алгоритма генерирования. Принцип работы алгоритма заключается в сборе необходимой информации о структуре базы данных, на основе введенных параметров генерации, и преобразовании этой информации в Java код.

Описание и обсуждение результатов

Рассмотрим подробнее принцип работы генератора кода с точки зрения пользователя. Необходимый набор параметров для получения рабочего кода состоит из:

  1. Списка таблиц, необходимых для работы пользователю
  2. Папки, в которую будут помещены классы
  3. Имени пакета(package), содержащего все классы
  4. Имени главного класса
  5. Выбора кода: Java + Android SDK или Java + sqlite-jdbc
  6. Создания дополнительных элементов базы данных в методе onCreate() при работе с Android SDK

Передав данный набор параметров плагину, пользователь получит сформированный код. Рассмотрим сгенерированный код подробнее  на примере Android SDK:

                                                           Рис. 1

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

В ходе работы был проведен сравнительный между созданным модулем и модулем Database Navigator. В результате было выявлено, что оба модуля имеют схожие функциональные возможности, но Database Navigator, в отличии от разработанного модуля, способен работать с несколькими видами баз данных, а так же имеет более функциональный редактор баз данных. В свою очередь, созданный модуль способен генерировать программный код, а так же имеет возможности работы с базами данных расположенными на мобильных устройствах напрямую. В целом, можно отметить, что разработанный модуль уступает модулю Database Navigator, но имеет ряд уникальных возможностей.

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

В итоге, был создан легковесный и многофункциональный встраиваемый модуль для сред Android Studio и Intellij IDEA, способный решать широкий спектр задач при работе с базами данных SQLite, а так же способный генерировать код для работы с этим базами данных.

Используемые источники
1. Ryan Hodson, Android Programming Succinctly, 2014.
2. Mike Owens and Grant Allen, The Definitive Guide to SQLite (2nd edition, 2010)
3. Sibsankar Haldar, SQLite Database System Design and Implementation, 2015.
4. Александр, Разработка плагина Intellij IDEA Часть 1.[Электронный ресурс]. Режим доступа: URL: https://habrahabr.ru/post/187106/
Information about the project
Surname Name
Myasoutov Ramil
Project title
Creating embeddable module for project management to development environment Android Studio
Summary of the project
Most of today's mobile Android - applications use databases to store information. Android uses the well-known SQLite library to work with databases.

During the development every programmer has to implement the same type of classes that should to work with databases. These classes frequently implement basic functions for each database table. There are insert, update, delete and select.

The main purpose of this work is to create some functional, which able to rule out the same type job of programmers, allowing you to generate Java code to work with SQLite database.
Keywords
code generation, plugin development, Android Studio, Intellij IDEA, java, software, databases, SQLite