Этот этап можно назвать «Фаза Троянского коня». Ваша цель — создать полный набор приложений, которые выглядят и ощущаются как независимая ОС, но работают внутри Android. Это позволит вам отшлифовать UX на 100%, прежде чем вы столкнетесь с суровым миром системных драйверов Linux.
Вот бизнес-план для этой фазы.
Создание экосистемы приложений-заменителей (Replacement Apps) на Qt 6, которые перехватывают основные функции смартфона (звонки, сообщения, запуск приложений), имитируя интерфейс Sailfish OS.
Чтобы код был полезен и в Android, и в будущем Linux, каждое приложение строится по схеме:
- UI Layer (QML): Единый код для всех систем.
- Service Bridge (C++): Интерфейс (интерфейсный класс), который имеет две реализации:
- Android Implementation: Использует
Qt JNIдля общения с API Android (Java). - Linux Implementation: Использует
Qt D-Busдля общения сofono,bluezи т.д.
-
Dialer (Звонилка): Журнал вызовов, номеронабиратель, экран активного вызова.
-
Android-сложность: Запрос разрешений на управление звонками.
-
Messages (SMS): Список диалогов и чат.
-
Android-сложность: Требуется стать «Default SMS App» (в Qt это делается через манифест).
- Gallery & Camera: Просмотр фото с поддержкой жестов Sailfish (свайп для возврата в сетку).
- Contacts: Книга контактов с интеграцией в звонилку.
- Calendar: Специфический виджет «событий дня» в стиле Sailfish.
- Launcher (Рабочий стол): Приложение, которое заменяет стандартный лаунчер Pixel.
- Функция: Отображение сетки приложений + реализация Active Covers (миниатюры запущенных Qt-приложений).
- Риск: В Android сложно реализовать настоящие "Active Covers" для сторонних приложений, поэтому на этом этапе они будут работать только для ваших собственных Qt-утилит.
- Фреймворк: Qt 6.8+ (для лучшей поддержки Android 14/15).
- Компоненты: Форк
glacier-components(QtQuick Controls 3 / Nemo). - Бэкенд:
Qt Android Extras(для JNI вызовов). - Сборочная среда: Fedora + Android SDK/NDK + Qt Creator.
| Приложение | Статус в Android | Статус в Linux (после миграции) |
|---|---|---|
| Звонилка | Работает через JNI | Переключается на D-Bus (ofono) |
| Настройки | Открывает системные настройки Android | Управляет конфигами /etc/ |
| Браузер | WebView (Chromium) | QtWebEngine |
| Музыка | Android Media Store | PulseAudio/Pipewire + Tracker |
-
Риск: Android убивает фоновые процессы Qt.
-
Решение: Написание маленького Service на Java, который держит Qt-библиотеку загруженной.
-
Риск: Невозможность перехватить системные жесты (например, свайп снизу вверх).
-
Решение: Использовать "режим киоска" или просто смириться с тем, что в Android-версии жесты системы и приложения сосуществуют.
Проект считается завершенным в фазе Dual-Stack, если вы можете провести целый день, не выходя из своих Qt-приложений, используя Android только как "ядро" для запуска ваших APK.
Вам нужно создать Базовый проект-библиотеку (Common Library), в которой будут описаны все ваши UI-стили (цвета, шрифты, базовые элементы Silica).
Хотите, я помогу составить структуру папок для такого мульти-платформенного проекта, чтобы вы могли начать писать первый код, который запустится и на Fedora, и на вашем Pixel?