概要
要将您的anyui
项目移植到目标设备:
- 将
generated
代码复制到您的项目并调用setupUI()
初始化UI - 根据需要将SDK代码复制到您的项目
- 根据需要将虚拟实现替换为设备特定代码
概述
虽然anyui
主要专注于UI设计,但生成的UI代码应保持独立于底层硬件和开发工具(如Keil)。
此外,anyui
提供了一个SDK,可用于屏幕管理和硬件通信的扩展。
移植过程
UI代码
所有UI代码都在{root}/generated
目录中生成,包括屏幕实现和转换的资产(图像、字体、Lottie)。
此代码是自动生成的,不应手动修改。
SDK
SDK实现在{root}/sdk
目录中,为屏幕管理和硬件通信提供实用程序。
SDK可以扩展以满足特定需求。
注意
SDK代码可能在未来的版本中更新以提供更多功能。任何自定义修改在更新期间都需要解决冲突。
虚拟代码
虚拟实现在{root}/simulator/dummy.c
中,提供必须替换为设备特定实现的占位符功能。
虚拟代码包括:
- 处理来自UI的通信命令的处理程序
- 用于外部存储的文件系统驱动实现(当使用外部图像文件作为源时)
- 用于时间和电池状态更新的定时器实现(仅用于演示目的;根据需要替换为实际实现或删除)
lv_conf.h
维护设备特定的lv_conf.h
文件副本,至少包含以下配置:
/*
* 必需的配置
*/
#define LV_HOR_RES_MAX (?) // 水平分辨率
#define LV_VER_RES_MAX (?) // 垂直分辨率
#define LV_COLOR_DEPTH 16
/*'lv_mem_alloc()'可用的内存大小(>= 2kB),以字节为单位*/
#define LV_MEM_SIZE (?) // 内存大小(字节)
/*
* 根据需要的可选配置
*/
#define LV_USE_LOG 1 // 启用日志
#define LV_USE_FS_STDIO 1 // 启用文件系统
#define LV_USE_PNG 1 // 启用PNG解码器
#define LV_USE_JPEG 1 // 启用JPEG解码器
#define LV_USE_BMP 1 // 启用BMP解码器
#define LV_USE_GIF 1 // 启用GIF解码器
#define LV_USE_BTN 1 // 启用按钮
#define LV_USE_IMG 1 // 启用图像
#define LV_USE_LABEL 1 // 启用标签
// 根据需要的其他组件
/*
* 设备特定的排除
*/;
//#define USE_SIMULATOR