update 开始贡献/openKylin+SDK开发指南V2.0.md.

Signed-off-by: chipo <gugudu@sina.com>
This commit is contained in:
chipo 2022-11-06 09:16:34 +00:00 committed by Gitee
parent 9e635b48ab
commit 53758bace9
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 97 additions and 222 deletions

View File

@ -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 |
+----------------------------------------------------------------------+
> 1dbus 服务名称com.kylin.kysdk.TimeServer
>
> 2路径名称/com/kylin/kysdk/Timer
>
> 3Interfacescom.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\" | | |
+----------+------------+--------------------+--------------------+---+
1dbus 服务名称com.kylin.kysdk.TimeServer
> 系统时间整分报时
2路径名称/com/kylin/kysdk/Timer
3Interfacescom.kylin.kysdk.TimeInterface
4信号
系统时间修改信号TimeChangeSignal
定时报时信号TimeSignal
系统时间修改报时
| 子模块 | 编程语言 | 声明 | 描述 |
| :----: | :----: | :----: | :----: |
| 系统时间报时 | C | void TimeChangeSignal(const char* t) | 当系统时间被修改时com.kylin.kysdk.TimeServerDbus 服务会发出报时信号|
| | | 参数说明 | 返回值说明 |
| | | t当前时间 如:"2021/09/26 21:13:28" | 无 |
系统时间整分报时
+----------+------------+---------------------------------+-------------------------+
| > 子模块 | > 编程语言 | 声明 | > 描述 |