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


Проектирование и разработка библиотеки для взаимодействия с камерой в парадигме реактивного программирования для ОС Android

Работа №85503

Тип работы

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

Предмет

информатика

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

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


1. Введение 3
2. Разработка 5
2.1 Реактивный интерфейс 5
2.2 Объект предпросмотра 8
2.3 Поток отрисовки 20
3. Внедрение 24
4. Заключение 26
5. Литература

Реактивное программирование14] (Rx) — парадигма программирования, ориентированная на потоки данных и распространение изменений. Это означает, что должна существовать возможность легко выражать статические и динамические потоки данных, а также то, что нижележащая модель исполнения должна автоматически распространять изменения благодаря потоку данных. Разработка с использованием данного интерфейса уже активно используется крупными компаниями, такими как Microsoft, Soundcloud, Airbnb, так что он доказал свою полезность.
Парадигма реактивного программирования набирает популярность в системе Android, так как данный подход заметно уменьшает код, делает его чище, безопаснее и более удобным для чтения. Все эти качества концепции заметно ускоряют разработку, что уменьшает стоимость разработки приложения и положительно влияет на весь рынок. Парадигма оценена ведущими мировыми разработчиками, так что на данный момент многие компоненты активно обретают оболочки данного подхода. Для работы с камерой также существует оболочка, она называется RxCamera. Данная библиотека позволяет сделать снимок с камеры буквально в одну строку программного кода. Она также позволяет открывать фотографию из галереи в таком же интерфейсе реактивного программирования. Работает она с помощью системных средств - Intent[5] и является интерфейсом для инкапсуляции посылов и получений намерений системе.
Однако на этом ее преимущества заканчиваются, она не позволяет снимать видео, серию снимков, обрабатывать их во время предпросмотра, не позволяет себя расширять, в общем представляет из себя только Rx обертку системного вызова фотографии с камеры.
Системное API позволяет делать все вышеописанное, однако оно очень сложно в освоении и реализации, разработчику приходится писать много кода. Это нарушает общую функциональную структуру проекта и усложняет разработку.
Таким образом, цель дипломной работы - спроектировать и разработать библиотеку, которая позволяла бы управлять камерой в реактивной парадигме.


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

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

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


В рамках данной дипломной работы была разработка библиотека, которая предоставляет широкие возможности по управлению системной камерой.
Библиотека отличается большей гибкостью, при сохранении легкости управления. Широкие возможности библиотеки определяются следующими особенностями реализации:
• Во-первых, разработчик получает самый большой контроль над камерой и графикой предпросмотра, насколько это позволяет система Android.
• Во-вторых, транслирование предпросмотра (изображения с камеры) идет в текстуру OpenGL, тем самым, предоставляя возможность работы с графической библиотекой. Интерфейс в потоке рендеринга также предоставлен, так что разработчик может модифицировать предпросмотр с камеры на лету, не делая фотографии.
• В-третьих, транслируя текстуру через системный контейнер Surface, библиотека получит возможность манипулировать с данными: как снимать снимки, так и сохранять данные в формате mp4, что добавляет полезный функционал библиотеке.
• В-четвертых, разработчику предоставлен простой и быстроразворачиваемый интерфейс для работы с камерой, построенный на основе набирающих популярных библиотек на известной парадигме программирования
2.0. Исходные коды открыты и могут быть изменены для решения нужд пользователей, если такой функционал не был предусмотрен при разработке библиотеки.



1. Разработка через тестирование [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Pa3pa6oTKa_4epe3_TecTupoBaHue, свободный.
2. OpenGL [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/OpenGL, свободный.
3. OpenGL для встраиваемых систем [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/OpenGL_ES, свободный.
4. Реактивное Программирование [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Peaктивнoe_пpoгpaммиpoвaниe, свободный.
5. Intent [Электронный ресурс] / Режим доступа: http://developer.alexanderklimov.ru/android/theory/intent.php, свободный.
6. Сообщество рективного программирования [Электронный ресурс] / Режим доступа: http://reactivex.io/, свободный.
7. Документация RxJava Android [Электронный ресурс] / Режим доступа: https://github. com/ReactiveX/RxJava/wiki/The-RxJava-Android-Module, свободный.
8. Архитектура низкоровневой графики Android [Электронный ресурс] / Режим доступа: http://source.android.com/devices/graphics/architecture.html, свободный.
9. Шейдер [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Шeйдep, свободный.
10. Документация OpenGL [Электронный ресурс] / Режим доступа: https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml, свободный.
11. Документация Android [Электронный ресурс] / Режим доступа: https://developer.android.eom/reference/android/opengl/GLES20.html#glReadPi xels(int, int, int, int, int, int, java.nio.Buffer), свободный.
12. Пример использованием камеры с использованием системного API
[Электронный ресурс] / Режим доступа:
https://github.com/googlesamples/android-Camera2Basic, свободный.


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




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