diff --git a/开始贡献/openKylin+SDK开发指南V2.0.md b/开始贡献/openKylin+SDK开发指南V2.0.md index 4f659d0e..37627ea3 100644 --- a/开始贡献/openKylin+SDK开发指南V2.0.md +++ b/开始贡献/openKylin+SDK开发指南V2.0.md @@ -6,152 +6,62 @@ openSDK SIG 目录 -1 -概述\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....1 -2 -部署方式\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...2 - -3 系统能力 -SDK\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....2 - -> 3.1 -> 系统信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....2 -> -> 3.1.1 -> 系统时间报时\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....2 -> -> 3.1.2 -> 获取硬件信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....4 -> -> 3.1.3 -> 获取包列表信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....21 -> -> 3.1.4 -> 获取资源信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...23 -> -> 3.1.5 -> 获取操作系统基础信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....33 -> -> 3.1.6 -> 获取网络信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...40 -> -> 3.1.7 -> 获取系统运行时信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...43 -> -> 3.1.8 -> 获取当前地理信息\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....45 -> -> 3.2 -> 电源管理\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...46 -> -> 3.2.1 -> 锁屏设置\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....46 -> -> 3.3 -> 文件管理\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...47 -> -> 3.4 AI -> 能力\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...48 -> -> 3.4.1 OCR -> 文字识别功能\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...48 -> -> 3.5 -> 打印机管理\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....49 - -4 应用支撑 -SDK\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....53 - -> 4.1 QT -> 自研控件模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....54 -> -> 4.1.1 -> 窗体模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....56 -> -> 4.1.2 -> 对话框模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....59 -> -> 4.1.3 -> 输入框模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....73 -> -> 4.1.4 -> 按钮模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....76 -> -> 4.1.5 Bar -> 模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...85 -> -> 4.1.6 -> 滑动条模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....90 -> -> 4.1.7 -> 消息提示模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...92 -> -> 4.1.8 面包屑 -> KBreadCrumb\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...95 -> -> 4.1.9 -> KCommentPanel\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....95 -> -> 4.1.10 -> KListView\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....96 -> -> 4.1.11 -> KTag\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....96 -> -> 4.1.12 -> KTranslucentFloor\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....97 -> -> 4.2 -> Wayland-helper\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....98 -> -> 4.2.1 -> WindowManager\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....99 -> -> 4.2.2 -> WindowInfo\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...102 -> -> 4.2.3 -> UkuiStyleHelper\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....102 -> -> 4.3 -> 应用通用功能模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...103 -> -> 4.3.1 -> 日志模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...103 -> -> 4.3.2 -> 系统相关模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....103 -> -> 4.3.3 d-bus -> 模块------即将废弃\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...105 -> -> 4.3.4 -> 系统信息模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....106 - -5 基础开发 -SDK\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...109 - -> 5.1 -> 日志\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...109 -> -> 5.2 -> 定时器\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....113 -> -> 5.3 C -> 语言字符串扩展\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....116 -> -> 5.4 -> 链表模块\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\....124 -> -> 5.5 -> 配置文件操作\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....128 -> -> 5.6 -> 单位进制转换\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\.....131 +``` +1 概述 +2 部署方式 +3 系统能力 SDK + 3.1 系统信息 + 3.1.1 系统时间报时 + 3.1.2 获取硬件信息 + 3.1.3 获取包列表信息 + 3.1.4 获取资源信息 + 3.1.5 获取操作系统基础信息 + 3.1.6 获取网络信息 + 3.1.7 获取系统运行时信息 + 3.1.8 获取当前地理信息 + 3.2 电源管理 + 3.2.1 锁屏设置 + 3.3 文件管理 + 3.4 AI 能力 + 3.4.1 OCR 文字识别功能 + 3.5 打印机管理 +4 应用支撑 SDK + 4.1 QT 自研控件模块 + 4.1.1 窗体模块 + 4.1.2 对话框模块 + 4.1.3 输入框模块 + 4.1.4 按钮模块 + 4.1.5 Bar 模块 + 4.1.6 滑动条模块 + 4.1.7 消息提示模块 + 4.1.8 面包屑 KBreadCrumb + 4.1.9 KCommentPanel + 4.1.10 KListView + 4.1.11 KTag + 4.1.12 KTranslucentFloor + 4.2 Wayland-helper + 4.2.1 WindowManager + 4.2.2 WindowInfo + 4.2.3 UkuiStyleHelper + 4.3 应用通用功能模块 + 4.3.1 日志模块 + 4.3.2 系统相关模块 + 4.3.3 d-bus 模块------即将废弃 + 4.3.4 系统信息模块 +5 基础开发 SDK + 5.1 日志 + 5.2 定时器 + 5.3 C 语言字符串扩展 + 5.4 链表模块 + 5.5 配置文件操作 + 5.6 单位进制转换 +``` -### **1** 概述 + +# 1 概述 + openKylin 自研开发者套件(以下简称 openSDK)是在 openKylin 社区操作系统上,为生态建设与软件开发提供安全、可靠、快捷、稳定的开发者接口。相比于社区中其他的开发者套件或框架,openSDK 更加聚焦于解决开放麒麟桌面操作系统的兼容、适配、移植、优化等方面的问题。openSDK 当前聚焦三大模块,包括应用支撑 SDK、系统能力 SDK、基础开发 SDK,同时充分考虑 openSDK 的兼容性。 @@ -166,10 +76,7 @@ SDK\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\ | 基础开发 SDK | 聚焦于应用开发过程中,为开发者提供日志管理、封装字符串处理等能力,提升开发效率; | - - -### **2** 部署方式 - +# 2 部署方式 openKylin 社区自研开发者套件下载使用时需提前添加 openSDK 源地址,安装步骤如下: @@ -177,102 +84,70 @@ SDK\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\...\ (1)软件源: - ``` -deb http://archive.build.openKylin.top/openKylin/ yangtze main cross -pty +deb http://archive.build.openKylin.top/openKylin/ yangtze main cross pty -deb http://archive.build.openKylin.top/openKylin/ yangtze-security main cross -pty +deb http://archive.build.openKylin.top/openKylin/ yangtze-security main cross pty -deb http://archive.build.openKylin.top/openKylin/ yangtze-updates main cross -pty +deb http://archive.build.openKylin.top/openKylin/ yangtze-updates main cross pty ``` (2)配置后更新源: -+----------------------+ -| > \$ sudo apt update | -+----------------------+ -+-------+----------------+ -| **3** | > 系统能力 SDK | -+-------+----------------+ +``` +$ sudo apt update +``` +# 3 系统能力 SDK -> 系统能力 SDK 中的每个软件包均表述了一个或一类系统能力,例如操作系 -> -> 统信息、硬件管理、系统内生安全策略、网络管理等; -> -> 安装命令: + 系统能力 SDK 中的每个软件包均表述了一个或一类系统能力,例如操作系统信息、硬件管理、系统内生安全策略、网络管理等; -+---------------------------------------------------------------+ -| > \$ sudo apt-get install libkysdk-system libkysdk-system-dev | -+---------------------------------------------------------------+ + 安装命令: -> **3.1** 系统信息 -> -> 该层设计主要为应用提供与操作系统相关的功能接口,以自研、组合、封 +``` +$ sudo apt-get install libkysdk-system libkysdk-system-dev +``` -装三种方式,将与 OS 相关功能(如文件系统、硬件信息、通信等)以功能为 +## 3.1 系统信息 -> 角度重新实现;屏蔽系统差异、平台差异带来的开发复杂性与调试难度。 + 该层设计主要为应用提供与操作系统相关的功能接口,以自研、组合、封装三种方式,将与 OS 相关功能(如文件系统、硬件信息、通信等)以功能为角度重新实现;屏蔽系统差异、平台差异带来的开发复杂性与调试难度。 -+-----------+----------------+ -| **3.1.1** | > 系统时间报时 | -+-----------+----------------+ +### 3.1.1 系统时间报时 -> 当系统时间在整分或系统时间被修改时,com.kylin.kysdk.TimeServer Dbus -> -> 服务会发出报时信号。 + 当系统时间在整分或系统时间被修改时,com.kylin.kysdk.TimeServer Dbus 服务会发出报时信号。 -+----------------------------------------------------------------------+ -| \$ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev | -| libkysdk-systime libkysdk- | -| | -| > systime-dev | -+----------------------------------------------------------------------+ -> (1)dbus 服务名称:com.kylin.kysdk.TimeServer -> -> (2)路径名称:/com/kylin/kysdk/Timer -> -> (3)Interfaces:com.kylin.kysdk.TimeInterface -> -> (4)信号: -> -> 系统时间修改信号:TimeChangeSignal -> -> 定时报时信号:TimeSignal -> -> 系统时间修改报时 +``` +$ sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libkysdk-systime libkysdk-systime-dev +``` -+----------+------------+--------------------+--------------------+---+ -| > 子模块 | > 编程语言 | 声明 | > 描述 | | -+==========+============+====================+====================+===+ -| 系统时间 | > C | > void | 当系统时间被修改 | | -| | | > Time | | | -| 报时 | | ChangeSignal(const | > 时 , | | -| | | > char\* t) | > | | -| | | | > co | | -| | | | m.kylin.kysdk.Time | | -| | | | | | -| | | | ServerDbus | | -| | | | 服务会发 | | -| | | | | | -| | | | > 出报时信号 | | -+----------+------------+--------------------+--------------------+---+ -| | | > 参数说明 | > 返回值说明 | | -+----------+------------+--------------------+--------------------+---+ -| | | t:当前时间 如: | > 无 | | -| | | | | | -| | | > \"2021/09/26 | | | -| | | > | | | -| | | > 21:13:28\" | | | -+----------+------------+--------------------+--------------------+---+ + (1)dbus 服务名称:com.kylin.kysdk.TimeServer -> 系统时间整分报时 + (2)路径名称:/com/kylin/kysdk/Timer + + (3)Interfaces:com.kylin.kysdk.TimeInterface + + (4)信号: + + 系统时间修改信号:TimeChangeSignal + + 定时报时信号:TimeSignal + + 系统时间修改报时 + +| 子模块 | 编程语言 | 声明 | 描述 | +| :----: | :----: | :----: | :----: | +| 系统时间报时 | C | void TimeChangeSignal(const char* t) | 当系统时间被修改时,com.kylin.kysdk.TimeServerDbus 服务会发出报时信号| +| | | 参数说明 | 返回值说明 | +| | | t:当前时间 如:"2021/09/26 21:13:28" | 无 | + + + + + + 系统时间整分报时 +----------+------------+---------------------------------+-------------------------+ | > 子模块 | > 编程语言 | 声明 | > 描述 |