导出 Themes¶
当您完成为应用程序创建主题后,您需要将应用程序的 Kanzi Studio 项目中的 Themes 导出为 kzb 文件,并将其部署到目标设备。Kanzi 提供了两种主要方法来在您的应用程序中使用 Themes:非烘焙和烘焙 Themes。您可以结合这些方法以获得所需的结果。
非烘焙 Themes¶
在 Kanzi Studio 中,当您为未烘焙的 Theme 导出 kzb 文件时,Kanzi Studio 会在该 kzb 文件中包含该项目中所有 Themes 的资源。节点使用资源 ID 来获取当前选择的 Theme 的资源。当您将应用程序设置为使用未烘焙的 Theme 时,Kanzi 会更改资源 ID 指向的资源。
在目标设备上,非烘焙的 Themes 比烘焙的 Themes 需要更少的存储空间,但在运行时使用更多的内存。使用非烘焙的 Themes 时,您可以更改应用程序 Theme,而无需加载额外的 kzb 文件。
烘焙的 Themes¶
在 Kanzi Studio,当您为烘焙的 Theme 导出 kzb 文件时,Kanzi Studio 会将该项目中所有节点中的每个资源 ID 替换为资源 ID 所指向的资源。在烘焙的 Theme 中,这些节点不是使用资源 ID 获取资源,而是直接获取资源。
在目标设备上,烘焙的 Themes 需要比非烘焙的 Themes 更多的存储空间,但提供更好的性能并在运行时使用更少的内存。使用烘焙的 Themes 时,只有在加载额外的 kzb 文件后才能更改应用程序 Theme。
选择适当的方法¶
使用 Themes (可以是预烘焙的、非预烘焙的,或结合这两种方法),您可以为您的应用程序设置主题,以更好地适应应用程序的目的和目标设备的性能。
本主题中的过程显示了可用于导出主题项目的不同配置。所有过程均基于一个名为 Cluster 的示例项目,该项目有两个 Theme Group 项目,其中每个 Theme Group 有两个 Themes:
Variant Theme Group 定义了使用集群的汽车变体:
运动 Theme 定义了汽车运动版本的集群。
SUV Theme 定义了汽车的 SUV 变体的集群。
Color Theme Group 定义了汽车的颜色:
蓝色 Theme 定义了蓝色汽车的集群。
红色 Theme 定义了红色汽车的集群。
导出未烘焙的 Themes¶
当您的目标设备有足够的存储容量和内存以适应整个应用程序(包括所有 Themes 中使用的资源)并且您想更改应用程序主题而无需加载额外的 kzb 文件时,请使用这种方法。请参阅 非烘焙 Themes。
要导出非烘培 Themes:
在 Library > Themes 中双击每个 Theme Group,并在 Theme Editor 中确保将所有 Themes 的 Theme 资源导出禁用。
当您启用导出 Theme 资源时,Theme 列中的
图标变为蓝色
,并且 Kanzi Studio 导出该 Theme 中使用的资源。例如:在 Variant 和 Color Theme Group 项中,确保将所有 Themes 的 Theme 资源导出禁用。
小技巧
如果您在 Theme Editor 中没有看到
图标在 Theme 列中,请在 Library > Themes 中选择 Theme Group,并在 Properties 中将 Export Baked Usages 属性设置为禁用。
选择 File > Export > Export KZB。
Kanzi Studio 创建一个 kzb 文件,其中包括应用程序节点树和所有 Theme Group 项目中所有 Themes 的资源,并将 kzb 文件导出到
<ProjectName>/Application/bin目录。将此文件部署到您的目标设备。
导出烘焙的 Themes¶
使用此方法优化您的应用程序以与单个 Theme 一起使用,以便您可以在存储或内存非常有限的目标设备上运行它。使用此方法时,如果想要更改应用程序主题,您必须关闭应用程序,并使用包含您想要运行应用程序的已烘焙 Theme 的 kzb 文件启动它。请参阅 烘焙的 Themes。
要导出烘焙的 Themes:
在 Library > Themes 中,选择包含您要烘焙的 Themes 的 Theme Group 项,并在 Properties 中启用 Export Baked Usages 属性。
例如:在 Library > Themes 中,选择 Color 和 Variant Theme Group 项,并在 Properties 中启用 Export Baked Usages 属性。
选择 File > Export > Export Baked Theme Binaries,并在 Themes and Locales to Bake on Export 窗口中设置:
将 Export Main Kzb 设置为禁用。
对于每个 Theme Group,选择以下任一项:
< All > 以烘焙该 Theme Group 中的所有 Themes。
< Skip Baking > 不在该 Theme Group 中烘焙任何 Themes。
< Theme group default value > 将默认资源和值烘焙到该 Theme Group 中。
特定主题烘焙为其设定的资源和值。
例如,对于 Color Theme Group,选择 < All > 以烘焙该 Theme Group 中的所有 Themes。
单击 Export。
Kanzi Studio 为您在 Themes and Locales to Bake on Export 窗口中选择的每个 Theme 创建一个 kzb 文件,并将 kzb 文件导出到每个 Theme Group 和 Theme 组合的
<ProjectName>/Application/bin/<ThemeGroupName>=<BakedThemeName>目录中。每个 kzb 文件包括该 Theme 的应用程序节点树和烘焙资源。仅将您想要使用的 Themes 或 Theme 组合的 kzb 文件部署到您的设备。
导出未烘焙的 Themes 和 Theme 资源包。¶
Theme 资源包是一个 kzb 文件,其中仅包含所选 Theme 的资源。
当目标设备上的存储空间或内存有限,但您又想在运行时更改应用程序主题,则可使用这种方法,避免加载额外的 kzb 文件。
例如,使用这种方法,您可以从一个 Kanzi Studio 项目应用程序创建两个汽车变体(Sport 和 SUV),其中每个都有两个 Themes (Blue 和 Red),您可以在它们之间切换而无需加载额外的 kzb 文件。
要导出未烘焙的 Themes 和 Theme 资源包:
在 Library > Themes 中,选择包含您要从中创建 Theme 资源包的 Themes 的 Theme Group 项,并在 Properties 中禁用 Export Baked Usages 属性。
例如:在 Library > Themes 中选择 Variant Theme Group,并在 Properties 中禁用 Export Baked Usages 属性。
在 Library > Themes 中双击每个 Theme Group,并在 Theme Editor 中点击
,旁边是您要导出到 Theme 资源包的 Theme 名称的资源。要将 Theme Group 的默认资源导出到 Theme 资源包中,请单击 Default Value 列旁边的
。当您启用导出 Theme 资源时,Theme 列中的
图标变为蓝色
,并且 Kanzi Studio 导出该 Theme 中使用的资源。例如,在 Variant Theme Group 中启用 Sport 和 SUV Themes 的导出。在此示例中,使用此设置,您可以为两个汽车变体(Sport 和 SUV)创建一个应用程序,其中每个变体都有两个 Themes (Blue 和 Red),您可以在它们之间切换,而无需加载额外的 kzb 文件。
选择 File > Export > Export KZB。
Kanzi Studio 创建:
一个 kzb 文件,其中包括应用程序节点树和所有超过一个 Theme 使用的资源(公共资源),并将 kzb 文件导出到
<ProjectName>/Application/bin目录。在 Theme Editor 中为您选择导出的每个 Theme 创建一个 kzb 文件,并将文件存储在
<ProjectName>/Application/bin/Theme_packs目录中。每个 kzb 文件仅包含 Theme 使用的资源,不包括公共资源(这些资源存储在包含应用程序节点树和公共资源的 kzb 文件中)。Kanzi Studio 使用 Theme 名称作为 Theme 资源包 kzb 文件的名称。
使用 Theme 资源包导出烘焙的 Theme Group 项目。¶
当您想要创建具有特定一组烘焙的 Themes 的应用程序时,使用此方法。您可以烘焙那些在汽车变体中不改变的 Themes。例如,使用这种方法,您可以从一个 Kanzi Studio 项目创建可以部署到两个汽车变体(Sport 和 SUV)的应用程序:因为在汽车中您不想切换汽车的变体,所以烘焙 Variant Theme Group,但不要烘焙 Color Theme Group,以便您可以在汽车中更改颜色。在此示例中,您将 Color Themes 存储为 Theme 资源包,您只能在加载包含该 Theme 资源的 kzb 文件后切换颜色 Theme。
此示例结合了导出烘焙的 Themes 和未烘焙的 Themes 与 Theme 资源包。请参阅 导出烘焙的 Themes 和 导出未烘焙的 Themes 和 Theme 资源包。。
要导出烘焙的 Theme Group 和 Theme 资源包:
在 Library > Themes 中,选择您要烘焙资源的 Theme Group 项,并在 Properties 中启用 Export Baked Usages 属性。
例如:在 Library > Themes 中选择 Variant Theme Group,并在 Properties 中启用 Export Baked Usages 属性。
在 Library > Themes 中,选择您想要导出为非烘焙的 Theme Group,在 Properties 中禁用 Export Baked Usages 属性,并在 Theme Editor 中点击
,旁边的 Theme 命名为您想要导出为 Theme 资源包的资源。要将 Theme Group 的默认资源导出到 Theme 资源包中,请单击 Default Value 列旁边的
。当您启用导出 Theme 资源时,Theme 列中的
图标变为蓝色
,并且 Kanzi Studio 导出该 Theme 中使用的资源。例如,在 Color Theme Group 中启用 Blue 和 Red Themes 的导出功能。
选择 File > Export > Export Baked Theme Binaries,并在 Themes and Locales to Bake on Export 窗口中设置:
将 Export Main Kzb 设置为禁用。
对于每个 Theme Group,选择以下任一项:
< All > 以烘焙该 Theme Group 中的所有 Themes。
< Skip Baking > 不在该 Theme Group 中烘焙任何 Themes。
< Theme group default value > 将默认资源和值烘焙到该 Theme Group 中。
特定主题烘焙为其设定的资源和值。
例如,要在 Theme Group 中烘焙所有 Themes,请选择 < All >。
单击 Export。
Kanzi Studio 在
<ProjectName>/Application/bin中为每个 Theme Group 和 Theme 的组合创建一个目录,其中包含:每个 Theme Group 都有一个 kzb 文件,您为其启用了 Export Baked Usages 属性,并在 Themes and Locales to Bake on Export 窗口中选择了导出。此 kzb 文件包括应用程序节点树和所有超过一个 Theme 使用的资源(公共资源),并将其存储在
<ProjectName>/Application/bin/<ThemeGroupName>=<BakedThemeName>目录中。每个您在 Theme Editor 中选择导出的 Theme 都有一个 kzb 文件。每个 kzb 文件仅包含 Theme 使用的资源,不包括公共资源(这些资源存储在主 kzb 文件中),并将文件存储在
<ProjectName>/Application/bin/<ThemeGroupName>=<BakedThemeName>/Theme_packs目录中。Kanzi Studio 使用 Theme 名称作为 Theme 资源包 kzb 文件的名称。
删除导出的文件¶
当您导出 Themes 时,您可能会很快得到大量的文件和目录。要永久删除从项目导出的所有 kzb 文件,请选择 File > Export > Delete Exported Binaries。