Neptune 3 UI - 应用开发

当您在Neptune 3 UI上开发应用程序时,您必须遵循以下规则以确保您的应用程序可在系统中使用

Manifest文件

manifest文件必须重命名为:info.yaml,并包含以下内容

formatVersion: 1
formatType: am-application
---
id:      'com.pelagicore.temp'
icon:    'icon.png'
code:    'Main.qml'
runtime: 'qml'
name:
  en: 'Template'

categories: [ 'app' ]

关于manifest文件的更多信息,请参阅Qt应用管理器Manifest文件

应用根QML元素

以下表格定义了在开发应用程序时应使用的应用根QML元素

根元素描述
ApplicationCCWindow可用于所有类型的应用程序。
ApplicationICWindow可用于所有类型的应用程序,在仪表盘中显示内容。

以下QML代码演示了如何将ApplicationCCWindow用作根元素

import QtQuick 2.10
import shared.controls 1.0
import shared.utils 1.0

ApplicationCCWindow {
    id: root
    Background {
        anchors.fill: parent
    }
    Content {
        x: root.exposedRect.x
        y: root.exposedRect.x
        width: root.exposedRect.width
        height: root.exposedRect.height
    }

}

接口

您可以在应用开发中使用以下接口

接口描述
NotificationInterface提供请求通知的接口。使用Notification组件,并基于org.freedesktop.Notifications D-Bus接口。
ApplicationRequestHandler提供接口以支持Neptune 3中的应用请求概念,以便在Neptune 3中的应用之间进行通信。

点击这里查看Neptune 3 UI中可用的组件和接口的更多详情。

最佳实践

当您使用Qt Automotive Suite开发车载UI应用程序时,建议遵循最佳实践

  • 将应用程序的每个视觉部分(例如应用程序屏幕)实现为独立的、独立的组件。
  • 当它们在设备启动时不可见或不需要时,按需加载UI组件和后端。
  • 将应用程序逻辑与可视UI组件分离。使用模型来存储方法、属性和后端连接。

如果您需要监控应用程序启动性能,请读取日志输出。日志标题必须包含应用程序ID。日志内容应如下所示

== STARTUP TIMING REPORT: com.pelagicore.temp ==
0'020.000 entered main
0'115.359 after logging and qml register initialization
0'120.385 after application config initialization
0'127.403 after quick launch qml initialization
0'176.884 after application interface initialization
0'176.889 after dbus initialization
0'191.890 starting application
0'192.046 after loading plugins and import paths
0'974.908 after engine loading main qml file
0'974.914 after creating and setting application window
0'974.949 after showing application window
0'974.996 component loading and creating complete.

注意:只有在你将 AM_STARTUP_TIMER 值设置为 1 时,多进程模式下日志输出才可用。

你可以将检查点添加到你的QML代码中。以下示例演示了如何在插件加载时将检查点添加到应用程序QML代码中的方法

StartupTimer.checkpoint("plugin xxx loaded");
StartupTimer.createReport("Plugin xxx report");

©2019 Luxoft Sweden AB。本文件内包含的文档贡献为各自所有者的版权。
提供的文档依据由自由软件基金会发布的 GNU自由文档许可版本1.3 的条款进行许可。
Qt及其相关标志是芬兰Qt公司及其在世界各地的商标。所有其他商标均为各自所有者的财产。