Детальная информация

Название: Портирование библиотеки для оптического распознавания нотных текстов Audiveris на платформу Android: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Федоров Сергей Алексеевич
Научный руководитель: Кузнецов Андрей Николаевич
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2022
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: портирование; релокация; porting; relocation
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2023/vr/vr23-1185
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\21192

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Мы решаем проблему распознавания музыкальных символов оптическим образом на Android-устройстве. Мы обнаружили готовые библиотеки. Из всех библиотек выбрали Audiveris, потому что она выглядит наиболее перспективной. Основная часть работы сфокусирована на том, чтобы эту библиотеку заставить работать на платформе Android.В процессе работы мы проанализировали причины, по которым данная библиотека не работает на платформе Android. Выяснили, что в основном это из-за пакета java.awt. Далее, мы опробовали различные подходы, которые включают в себя модификацию исходного кода и модификацию байт-кода. В конечном итоге остановились на решении с релокацией пакетов. После этого мы написали недостающие реализации для платформы Android и выполнили релокацию. Провели тестирование нашего приложения с использованием оригинальных тестов. В конечном итоге получили работающую библиотеку.

We solve the problem of recognizing musical symbols optically on an Android device. We found ready-made libraries. Of all the libraries, Audiveris was chosen because it looks the most promising. The main part of the work is focused on making this library work on the Android platform.In the process of work, we analyzed the reasons why the library does not work on the Android platform. Found out that this is mainly due to the java.awt package. Next, we tried various approaches, including modifying the source code and modifying the bytecode. In the end, we settled on solving the problem of package relocation. After that, we wrote the missing implementations for the Android platform and performed the relocation. We tested our applications using original tests. Eventually got the job of traffic.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
  • ВВЕДЕНИЕ
  • 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1. Обзор предметной области
    • 1.2. Библиотека Audiveris
    • 1.3. Среды разработки
    • 1.4. Операционная система Android
    • 1.5. Итоги раздела
  • 2. ПОСТАНОВКА ЗАДАЧИ
    • 2.1. Формулирование требований
    • 2.2. Решаемые задачи
    • 2.3. Итоги раздела
  • 3. ВЫБОР ПОДХОДА ДЛЯ ПОРТИРОВАНИЯ БИБЛИОТЕКИ
    • 3.1. Изменить исходный код.
    • 3.2. Изменить байт-код.
    • 3.3. Итоги раздела
  • 4. РЕАЛИЗАЦИЯ ПОРТИРОВАНИЯ БИБЛИОТЕКИ
    • 4.1. Попытка реализации первого подхода
    • 4.2. Определение платформенно-зависимых классов
    • 4.3. Паттерн Abstract Factory (Абстрактная фабрика)
    • 4.4. Паттерн Proxy (Заместитель)
    • 4.5. Создание классов-заместителей
    • 4.6. Замена наследования делегированием (Replace inheritance with delegation)
    • 4.7. Структурный поиск с заменой (Structural search and replace (SSR))
    • 4.8. Основные идеи второго подхода
    • 4.9. Релокация классов
    • 4.10. Реализация классов для платформы Android
    • 4.11. Паттерн проектирования Фасад (Facade)
    • 4.12. Результат распознавания
    • 4.13. Реализация класса ImageLoading
    • 4.14. Статический анализ
    • 4.15. ProGuard
    • 4.16. Тестирование портированной библиотеки
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 1. ABSTRACT FACTORY
  • ПРИЛОЖЕНИЕ 2. КЛАСС IMAGELOADING
  • ПРИЛОЖЕНИЕ 3. РЕПОЗИТОРИЙ

Статистика использования

stat Количество обращений: 13
За последние 30 дней: 0
Подробная статистика