Документация
ОС Аврора 5.1.5

Портирование приложений с Android

Нативные Аврора-приложения пишутся при помощи фреймворка Qt. Кроссплатформенность Qt позволяет портировать приложения с одной операционной системы на другую. Кроме того, приложения для ОС Аврора можно писать с помощью Flutter.

При разработке Аврора-приложений следует придерживаться рекомендаций к проектам и требований к установочным пакетам.

При портировании Android-приложений нужно учесть следующие детали.

Язык программирования и фреймворки

Адаптация Android-приложения зависит от технологии, на которой оно написано.

Структура проекта

Аврора-приложения обычно обладают следующей структурой.

  • В корне проекта находятся конфигурационные файлы:
    • desktop-файл;
    • конфигурационный файл для сборки проекта. Для Аврора-проектов поддерживаются системы сборки qmake или cmake.
  • В каталоге rpm/ находятся один или несколько spec-файлов.
  • В каталоге qml/ находятся .qml-файлы страниц приложения.
  • В каталоге src/ находятся заголовочные файлы и cpp-файлы.
  • В каталоге translations/ находятся ts-файлы переводов.
  • Каталог icons/ содержит иконки приложения. Изображения должны быть в формате PNG и соответствовать размерам: 86x86, 108x108, 128x128, 172x172. В каталоге icons/ имеются каталоги 86x86/, 108x108/, 128x128/, 172x172/, в каждом из них находится один файл с иконкой соответствующего размера. Имя файла с иконкой соотвествует названию проекта: <Название организации>.<Название приложения>.

Настройка конфигурации

Следует настроить следующие особенности конфигурации Аврора-приложений:

  1. Создать desktop-файл, соответствующий требованиям ОС Аврора.
    • Указать название приложения и название организации. Название приложения должно быть в формате сamelCase. В названии организации нельзя использовать camelCase. Недопустимо первым символом в домене ставить цифру. Дефисы в названиях использовать нельзя.
    • Указать разрешения, которые требуются приложению. Разрешения выдаются для использования библиотек или для доступа к каталогам.
  2. Создать spec-файл, соответствующий требованиям ОС Аврора.
    • Указать зависимости сборки и развёртывания.
    • Указать пути, по которым устанавливается исполняемый файл приложения, исходные файлы приложения, иконки и desktop-файл.
  3. Адаптировать конфигурационный файл для сборки проекта. Обычно для сборки Аврора-проектов используются qmake или cmake.
    • Указать название проекта как <Название организации>.<Название приложения>.
    • Подключить библиотеки auroraapp и auroraapp_i18n.
    • Подключить к проекту spec-файл и desktop-файл.
    • Подключить к проекту иконки.
    • Убедиться, что в проект подключаются только разрешённые библиотеки.

Адаптация кода

Код приложения следует адаптировать:

  1. В точке входа приложения (обычно main.cpp) нужно подключить библиотеку auroraapp: #include <auroraapp.h>, создать экземпляр Аврора-приложения, указать ему название организации и название приложения. Например:

    #include <auroraapp.h>
    #include <QtQuick>
    
    int main(int argc, char *argv[])
    {
        QScopedPointer<QGuiApplication> application(Aurora::Application::application(argc, argv));
        application->setOrganizationName(QStringLiteral("ru.auroraos"));
        application->setApplicationName(QStringLiteral("ApplicationTemplate"));
    
        QScopedPointer<QQuickView> view(Aurora::Application::createView());
        view->setSource(Aurora::Application::pathTo(QStringLiteral("qml/ApplicationTemplate.qml")));
        view->show();
    
        return application->exec();
    }
    
  2. Адаптировать код приложения для Qt 5.6, так как в ОС Аврора поддерживается именно эта версия Qt.

  3. Использовать в проекте только разрешённые библиотеки.

  4. Интерфейс Аврора-приложения пишется на языке QML. Модуль Qt Widgets не поддерживается.

  5. В qml не поддерживается модуль Qt Quick Controls. Его следует заменить на модуль Silica.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.