Портирование приложений с Android
Нативные Аврора-приложения пишутся при помощи фреймворка Qt. Кроссплатформенность Qt позволяет портировать приложения с одной операционной системы на другую. Кроме того, приложения для ОС Аврора можно писать с помощью Flutter.
При разработке Аврора-приложений следует придерживаться рекомендаций к проектам и требований к установочным пакетам.
При портировании Android-приложений нужно учесть следующие детали.
Язык программирования и фреймворки
Адаптация Android-приложения зависит от технологии, на которой оно написано.
- Qt-приложения можно адаптировать по инструкции ниже, изменив его структуру, конфигурацию сборки и запуска и код.
- Flutter-приложения можно адаптировать, воспользовавшись документацией.
- Приложения, написанные на Kotlin и прочих языках программирования/фреймворках, необходимо переписать с помощью Qt или Flutter.
Структура проекта
Аврора-приложения обычно обладают следующей структурой.
- В корне проекта находятся конфигурационные файлы:
- desktop-файл;
- конфигурационный файл для сборки проекта. Для Аврора-проектов поддерживаются системы сборки qmake или cmake.
- В каталоге
rpm/
находятся один или несколько spec-файлов. - В каталоге
qml/
находятся .qml-файлы страниц приложения. - В каталоге
src/
находятся заголовочные файлы и cpp-файлы. - В каталоге
translations/
находятся ts-файлы переводов. - Каталог
icons/
содержит иконки приложения. Изображения должны быть в формате PNG и соответствовать размерам: 86x86, 108x108, 128x128, 172x172. В каталогеicons/
имеются каталоги86x86/
,108x108/
,128x128/
,172x172/
, в каждом из них находится один файл с иконкой соответствующего размера. Имя файла с иконкой соотвествует названию проекта:<Название организации>.<Название приложения>
.
Настройка конфигурации
Следует настроить следующие особенности конфигурации Аврора-приложений:
- Создать desktop-файл, соответствующий требованиям
ОС Аврора.
- Указать название приложения и название организации. Название приложения должно быть в формате сamelCase. В названии организации нельзя использовать camelCase. Недопустимо первым символом в домене ставить цифру. Дефисы в названиях использовать нельзя.
- Указать разрешения, которые требуются приложению. Разрешения выдаются для использования библиотек или для доступа к каталогам.
- Создать spec-файл, соответствующий требованиям
ОС Аврора.
- Указать зависимости сборки и развёртывания.
- Указать пути, по которым устанавливается исполняемый файл приложения, исходные файлы приложения, иконки и desktop-файл.
- Адаптировать конфигурационный файл для сборки проекта.
Обычно для сборки Аврора-проектов используются qmake
или cmake.
- Указать название проекта как
<Название организации>.<Название приложения>
. - Подключить библиотеки auroraapp и auroraapp_i18n.
- Подключить к проекту spec-файл и desktop-файл.
- Подключить к проекту иконки.
- Убедиться, что в проект подключаются только разрешённые библиотеки.
- Указать название проекта как
Адаптация кода
Код приложения следует адаптировать:
-
В точке входа приложения (обычно
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(); }
-
Адаптировать код приложения для Qt 5.6, так как в ОС Аврора поддерживается именно эта версия Qt.
-
Использовать в проекте только разрешённые библиотеки.
-
Интерфейс Аврора-приложения пишется на языке QML. Модуль
Qt Widgets
не поддерживается. -
В qml не поддерживается модуль
Qt Quick Controls
. Его следует заменить на модуль Silica.