Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА ORM БИБЛИОТЕКИ ДЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ANDROID

Работа №84379

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы44
Год сдачи2016
Стоимость4285 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
37
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
2. АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ 5
2.1. Методика тестирования 7
3.2. Результаты тестирования 9
4. ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ 13
4.1. JavaPoet 13
4.2. AutoService 13
5. РАЗРАБОТКА БИБЛИОТЕКИ 15
5.1. Разработка ядра библиотеки 16
5.2. Разработка обработчика аннотаций 22
5.3. Разработка ORM 35
6. ТЕСТИРОВАНИЕ БИБЛИОТЕКИ 39
7. ЗАКЛЮЧЕНИЕ 42
8. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

В связи с активным развитием мобильных платформ на них возлагается всё больше и больше задач. Если раньше было достаточным простое отображение содержимого, приходящей с сервера информации, то теперь мобильные приложения становятся всё более и более мощным инструментом, способным решать многие задачи локально, увеличивая тем самым скорость взаимодействия с пользователем и снимая нагрузку с сервера. Для обработки данных мобильное приложение должно их где-то хранить, чтобы пользователь имел к ним постоянный доступ.
В настоящий момент, в приложениях, разработанных для платформы Android, существует несколько решений для организации хранения информации. Один из вариантов - это использование класса SharedPreferences, который работает по принципу ключ-значение. Данный инструмент служит в основном для хранения пользовательских настроек в приложении. SharedPreferences обеспечивает не только надёжное хранение данных и быстрый доступ к ним, по мимо этого, у него есть возможность привязать сохранённую информацию к пользовательскому Google-аккаунту, что позволяет использовать их на других устройствах этого же пользователя, избавляя его от необходимости настраивать приложение под себя по новой. Однако, при всех положительных аспектах технологии SharedPreferences, она абсолютно не приспособлена для хранения большого количества данных, поэтому возникает потребность в использовании мобильной базы данных.
В платформу Android интегрирована база данных SQLite, которая является инструментом, хорошо зарекомендовавшим себя на многих мобильных платформах. SQLite использует примерно те же принципы работы, что и большинство других SQL баз данных. Однако, её настройка и организация взаимодействия с данными занимают большое количество времени у разработчиков, поэтому начали появляться продукты, упрощающие взаимодействие программистов с SQLite на мобильных платформах Android. В связи с тем, что большинство из разработанных предназначены для работы с большими проектами, которое требуют базу данных со сложной архитектурой, произошло и усложнение ORM библиотек. Таким образом, реализуя небольшие приложения, требующие, например, всего лишь кэширование результатов запросов на сервер, разработчики вынуждены проводить сложную настройку для взаимодействия с базой данных. В связи этим в рамках данной дипломной работы было решено разработать ORM библиотеку для платформы Android, предназначенную для проектов с небольшой базой данных со следующим функционалом:
• Возможность быстрого развёртывания на проекте
• Работа с базой данных через compile-time аннотации
• Автоматическая генерация базы во время компиляции
• Запись данных в базу
• Чтение данных из базы
• Возможность работы с вложенными коллекциями
• Поддержка PrimaryKey
• Поддержка ForeignKey
• Поддержка уникальных полей
• Упрощённая работа с SQL запросами
• Обработка конфликтов при работе с базой данных
При этом скорость работы библиотеки должна быть приближена к скорости работы SQLite


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


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



1. Raizlabs/AndroidDatabaseLibraryComparison [Электронный
ресурс]. - Режим доступа:
https://github.com/Raizlabs/AndroidDatabaseLibraryComparison (дата
обращения: 07.03.2016, 18:07).
2. SQLite [Электронный ресурс]. - Режим доступа:
https://www.sqlite.org/(дата обращения: 27.03.2016, 07:55).
3. Realm Java [Электронный ресурс]. - Режим доступа: https://realm.io/docs/java/latest/(дата обращения: 06.03.2016, 13:22).
4. realm/realm-java [Электронный ресурс]. - Режим доступа https://github.com/realm/realm-java(дата обращения: 06.03.2016, 16:01).
5. OrmLite - Lightweight Object Relational Mapping (ORM) Java Package [Электронный ресурс]. - Режим доступа: http://ormlite.com/(дата обращения: 09.03.2016, 17:38).
6. ORMLite Android 4.48 API [Электронный ресурс]. - Режим
доступа: http://ormlite.com/javadoc/ormlite-android/(дата обращения:
09.03.2016, 18:59).
7. j256/ormlite-android [Электронный ресурс]. - Режим доступа: https://github.com/j256/ormlite-android(дата обращения: 09.03.2016, 21:48).
8. j256/ormlite-core [Электронный ресурс]. - Режим доступа:
https://github.com/j256/ormlite-jdbc(дата обращения: 09.03.2016, 23:22).
9. GreenDAO: Android ORM for your SQLite database [Электронный ресурс]. - Режим доступа: http://greenrobot.org/greendao/(дата обращения: 08.03.2016, 09:21).
10. greenrobot/greenDAO [Электронный ресурс]. - Режим доступа: https://github.com/greenrobot/greenDAO/(дата обращения: 08.03.2016).
11. Raizlabs/DBFlow [Электронный ресурс]. - Режим доступа: https://github.com/Raizlabs/DBFlow(дата обращения: 07.03.2016, 18:11).
12. Raizlabs. Go With the DBFlow: The Fastest Android ORM Database
Library [Электронный ресурс]. - Режим доступа:
https://www.raizlabs.com/dev/2015/02/go-dbflow-fastest-android-orm-database- library(дата обращения: 07.03.2016 20:24).
13. DBFlow Guide Library [Электронный ресурс]. - Режим доступа:
https://guides.codepath.com/android/DBFlow-Guide/ (дата обращения:
07.03.2016).
14. Little Robots/Little Robots/cupboard [Электронный ресурс]. - Режим доступа: https://bitbucket.org/littlerobots/cupboard(дата обращения: 10.03.2016, 21:54).
15. Easier SQL with Cupboard [Электронный ресурс]. - Режим доступа: https://guides.codepath.com/android/Easier-SQL-with-Cupboard(дата обращения: 10.03.2016, 23:59).
16. pardom/Ollie [Электронный ресурс]. - Режим доступа: https://github.com/pardom/Ollie(дата обращения: 11.03.2016, 12:14).
17. Sugar ORM [Электронный ресурс]. - Режим доступа: http://satyan.github.io/sugar/getting-started.html(дата обращения: 11.03.2016, 13:11).
18. satyan/sugar [Электронный ресурс]. - Режим доступа:
https://github.com/satyan/sugar(дата обращения: 11.03.2016, 10:48).
19. Clean Persistence with Sugar ORM [Электронный ресурс]. - Режим доступа: https://guides.codepath.com/android/Clean-Persistence-with-Sugar-ORM(дата обращения: 11.03.2016, 11:11).
20. ActiveAndroid Guide [Электронный ресурс]. - Режим доступа: https://guides.codepath.com/android/activeandroid-guide(дата обращения: 14.03.2016, 15:17).
21. pardom/ActiveAndroid [Электронный ресурс]. - Режим доступа: https://github.com/pardom/ActiveAndroid(дата обращения: 14.03.2016, 10:14).
22. square/javapoet [Электронный ресурс]. - Режим доступа: https://github.com/square/javapoet(дата обращения: 24.04.2016, 08:32).
23. google/auto [Электронный ресурс]. - Режим доступа: https://github.com/google/auto/tree/master/service(дата обращения: 27.04.2016, 15:10).
24. SQL As Understood By SQLite. ON CONFLICT clause
[Электронный ресурс]. - Режим доступа:
https://www.sqlite.org/lang_conflict.html(дата обращения: 27.03.2016, 18:22).
25. SQLite Foreign Key Support [Электронный ресурс]. - Режим доступа: https://www.sqlite.org/foreignkeys.html(дата обращения: 27.03.2016, 06:59).


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ