# 基本介绍

LarkSDK 是一款通用 C++ 开发框架。

框架的最终目的是简化应用程序的开发。为达此目的,LarkSDK 也提供了一整套语义直观明晰、设计模块化的 C++ 类库,为用户封装了操作系统平台与硬件差异、提供了开箱即用的基础编程工具。

STL (opens new window)Boost (opens new window) 相比,LarkSDK 可以用于构建图形界面。

MFC (opens new window)GTK (opens new window) 相比,LarkSDK 具备跨平台能力,同一套源码可以同时工作在 Linux 和 Windows 之下。

不得不承认的是 Qt (opens new window) 仍然是一个占据统治地位的产品,但 LarkSDK 更轻量、更简单、更年轻,同时更懂国产生态。我们并不奢望取代 Qt,我们仅仅是为业界提供另一个选择。这条路并不容易,但我们坚信这是一条正确的路,难而正确的路。

再次感谢您选择了解我们的产品。您可以点击这里立即开始体验

# 产品概述

随着自主可控 IT 行业重点部分建设日趋完善,国家现已正式步入产业链改革深水区。其中软件开发平台是 IT 行业的血液,它可以支持各种底层的芯片和操作系统,将下层硬件和操作系统细节封装起来,对上层应用软件提供统一、易用、简洁的开发接口与工具,是打通芯片、操作系统与应用软件的关键,更贯穿了应用软件的设计、开发、测试与维护全生命周期。

目前,国内在软件开发平台领域的缺失,导致国内软件行业在开发软件时不得不大量使用国外厂商的开发平台,从而遭遇信息安全存在隐患、国产操作系统环境适配性差、维护服务没有支持、版权使用存在风险等重要问题,没有国产软件开发平台支持,软件开发环节效率低、软件开发成果不稳定也成为国内软件行业普遍存在的问题。国产 C++ 软件开发平台的目的,是打造通用跨平台的国产化基础开发套件,提供对应用程序的关键共性运行逻辑的支持,进而构建完整的国产化软件集成开发环境,以构建完整的基于 C++ 语言的国产应用程序开发生态。

# 产品特点

LarkSDK 在设计之初就是致力于跨平台的,它封装了不同操作平台的特性和底层调用,隐藏了各个操作系统平台的不同之处,让用户可以专注于业务开发而无需过多关心平台差异;同时,LarkSDK 也并非单纯的浅层 UI 库,它覆盖了从底层的操作系统事件监听与分发,到通用的跨平台用户组件的外观与行为定制;它既提供各种各样的底层代码工具,如常见元素容器和加解密算法,以提升 C++ 的开发效率和体验,又能够通过自带的用户界面框架直接构建图形用户程序,未来还将提供界面编辑器及自动化测试工具等,从而完成应用软件开发的全生命周期闭环。

和 Qt Framework 一样,LarkSDK 是一款单纯而完整的 C++ 开发框架。万丈高楼平地起,除必要的基础轮子外,LarkSDK 并不依赖任何其他框架而存在。

# 为什么使用 LarkSDK

由于一些原因,目前国内的软件行业语境下,对于诸如语言、框架、工具、平台等技术概念,存在一定程度上的混淆使用(我们专门撰写了一篇文章用于澄清这些概念)。虽然不太愿意这么表达,但是在国内 LarkSDK 确实是唯一的一款通用基础开发框架,技术上并没有真正意义的竞品。这也是我们所看到的绝大部分需要使用 C++ 开发应用软件的场合都是 Qt 的原因。

而合迅智灵是一款全国产的、自主可控的、拥有完全自主知识产权的基础软件开发平台。LarkSDK 则是平台为应用软件开发者提供的底层软件开发框架。我们致力于成为 Qt 之外的第二选择。

不过值得一提的是,站在市场层面解决实际需求的视角下,确实存在一些产品,和 LarkSDK 存在一定的功能覆盖,例如:

# 统信 DTK (opens new window)

DTK(Development ToolKit)是统信基于 Qt 开发的一整套简单且实用的通用开发框架,处于统信 UOS 操作系统中的核心位置。其提供丰富的开发接口与支持工具,满足日常图形应用、业务应用、系统定制应用的开发需求,提供 30 余个预定义组件,如统信 UOS 浏览器、音乐、邮件等 40 余款 UOS 应用均使用 DTK 开发。

其本质上是一个在 Qt 的基础之上构建的扩展组件库。利用 Qt 框架与操作系统底层对接,借助 Qt 的能力实现各种具体的用户组件。用户本质上还是在使用 Qt 开发。其具备的跨平台能力本质上也是 Qt 本身的能力。

# 华为 ArkUI (opens new window)

ArkUI 是一套用于构建图形用户界面的声明式 UI 开发框架。它使用极简的 UI 信息语法,提供丰富的 UI 组件及包含实时界面预览工具在内的集成开发环境等。提供基于 ArkTS 开发语言的应用程序接口,支持各种 HarmonyOS 设备。

严格说 ArkUI 和 LarkSDK 在技术上并无关联,其本质是一套专门用于鸿蒙 HarmonyOS 生态的开发工具链的一部分,完整的鸿蒙 HarmonyOS 生态包含 ArkTS (基于 TypeScript 的开发语言)、ArkUI (基于 ArkTS 的一套界面组件语言)、ArkCompiler (用于处理 ArkTS 的编译工具),以及 DevEco Studio (基于 VSCode 构建的集成开发环境),构成完整的生态工具链。也即是说,ArkUI 是生态专有生态的开发工具,和直接面向操作系统底层的通用开发工具 LarkSDK 并不处于一条技术路线上。

# 致远电子 AWTK (opens new window)

AWTK 全称为 Toolkit AnyWhere,是 ZLG 倾心打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎,支持跨平台同步开发,一次编程,到处编译,跨平台使用。

然而 AWTK 本质上也是一套基于 SDL (opens new window) 构建的 GUI 库。其主要能力,如图形渲染、跨平台与底层交互等,均由 SDL 框架提供。