KDE Frameworks
此条目可参照英语维基百科相应条目来扩充。 (2022年8月16日) |
原作者 | KDE |
---|---|
开发者 | KDE |
首次发布 | 2014年7月1日 |
当前版本 | 6.5.0[1](2024年8月9日,3个月前) |
源代码库 | |
编程语言 | C++ |
操作系统 | Linux、OS X、Microsoft Windows |
类型 | |
许可协议 | GNU宽通用公共许可证(LGPL)[2] |
网站 | www |
KDE Frameworks是一套由KDE社群所编写的函式库及软体框架,是KDE Plasma 5及KDE Applications 5的基础,并使用GNU宽通用公共许可证进行散布。
其中所包含的各种独立框架提供了各种常用的功能,包括了硬体整合、档案格式支援、控件、绘图功能、拼写检查及更多。
KDE Frameworks相当于将KDE Platform 4重写为一套单独且分开、跨平台的模组,可以很容易的提供给所有基于Qt的程式使用。从KDE Platform到KDE Frameworks的转换历时超过3年,由顶尖的技术贡献者们指导[3]。
在KDE Frameworks 5.0释出后,因为没有严苛的底线压力,开发者们将会专注在加入新的功能到KDE Frameworks 5的组件中[4]。像是Firefox与KDE的更佳整合[5]。
KDE Frameworks 5执行时函式库与KDE Platform 4执行时函式库一同安装应该是可行的,这样应用程式就可以选择要用哪一种[6]。
采用
KDE Frameworks中的原始码有一部份在KDElibs 1中就有使用。除了KDE Software Compilation以外,也可能有其他许多的采用者,像是桌面环境,如Razor-qt、LXQt、MoonLightDE或是Hawaii,或是应用程式,像是Amarok、Avogadro等。
开发
因为KDE Software Compilation被分割为KDE Frameworks 5、KDE Plasma 5及KDE Applications 5、每个子专案都可以选择自己的开发步伐。KDE Frameworks 5将会以每个月为基础释出[7]且使用git[8][9]。
应用程式介面及应用二进制介面稳定性
平台发布是开始一个系列(版本号X.0)的主要发布。这些版本可以打破二进制档案和原始码相容性,或者换句话说,所有以下版本(X.1, X.2, ...)将保证原始码和二进制兼容性(应用程序接口及应用二进制接口)。例如,该软体使用KDE 3.0开发将可以工作在所有(未来)发布的KDE 3,相对于应用程序开发使用KDE 2,不保证能够利用KDE 3的函式库。KDE的主要版本号按照Qt的发布周期,这意味著KDE SC 4是基于 Qt 4,而KDE 3是基于Qt 3。
软体架构
结构
Frameworks有著清晰明确的依赖性结构,分为“类型”及“层次”。“类别”是指运行时依赖性:
- 功能项没有运行时依赖性。
- 整合指定的代码可能需要运行时依赖性,取决于使用何种作业系统或平台。
- 解决方案有强制性的运行时依赖性。
“层次”是指编译时对其他Frameworks的依赖性:
- 层次1的Frameworks在Frameworks内没有依赖性,只需要Qt及其他相关的函式库。
- 层次2的Frameworks只能依赖于层次1的Frameworks。
- 层次3的Frameworks可以依赖其他层次3的Frameworks以及层次1及层次2的Frameworks。
组件
KDE Frameworks包含了超过60个软体包。这些在KDE SC 4中包含在一个单一的大软体包中,称为kdelibs,其中一些已经不再是KDE的一部份,但已并入Qt 5.2中[10]。
KDE Frameworks根据其依赖其他函式库的程度分类为四种不同的层次。层次1的Frameworks只依赖Qt或是其他系统函式库。层次2的Frameworks可以依赖层次1的函式库、或是其他系统函式库等等[11]。
Frameworks的完整列表 | |||
---|---|---|---|
名称 | 层次 | 描述 | |
Frameworkintegration | 4 | 将Qt程式与KDE Plasma Workspaces整合。 | |
KActivities | 3 | KDE活动管理员的核心组件。 | |
KApiDox | 4 | 构建标准格式及风格的API文件所使用的指令稿及资料。 | |
KArchive | 1 | 方便读取、创造及操作“压缩档”格式,像是zip及Tar。 | |
KAuth | 2 | 提供一个方便的、系统整合的方法在执行需要提高权限的动作结束后降低回一般使用者权限的小帮手工具。 | |
KBookmarks | 3 | 网路浏览器的书签管理。 | |
KCMUtils | 3 | KDE系统设定模组的实用工具。 | |
KCodecs | 1 | 提供一种使用各种编码的方法来操作字串。 | |
KCompletion | 2 | 字串补完框架。 | |
KConfig | 1 | 储存应用程式设定值的后端。 | |
KConfigWidgets | 3 | 设定对话框的控件。 | |
KCoreAddons | 1 | 核心应用程式的功能及对作业系统的存取的实用工具。 | |
KCrash | 2 | 提供拦截及处理应用程式当机的支援。 | |
KDBusAddons | 1 | ||
KDE4Support | 4 | 提供在KDE Frameworks 5中已经移除的kdelibs4模组及API。 | |
KDeclarative | 3 | ||
KDED | 3 | ||
KDesignerPlugin | 3 | ||
KDESu | 3 | ||
KDEWebkit | 3 | ||
KDNSSDFramework | 2 | ||
KDocTools | 2 | ||
KEmoticons | 3 | ||
KF5Umbrella | 1 | ||
KFileAudioPreview | 4 | ||
KGlobalAccel | 3 | ||
KGuiAddons | 1 | ||
KHTML | 4 | ||
Ki18n | 1 | KDE的国际化支援。 | |
KIconThemes | 3 | KDE的图示主题模组。 | |
KIdleTime | 1 | ||
KImageFormats | 1 | ||
KInit | 3 | ||
KIO | 3 | ||
KItemModels | 1 | ||
KItemViews | 1 | ||
KJobWidgets | 2 | ||
KJS | 1 | ||
KJSEmbed | 3 | ||
KMediaPlayer | 3 | ||
KNewStuff | 3 | ||
KNotifications | 3 | ||
KNotifyConfig | 3 | ||
KParts | 3 | ||
KPlotting | 1 | ||
KPrintUtils | 3 | ||
KPty | 2 | ||
Kross | 3 | ||
KRunner | 3 | ||
KService | 3 | ||
KTextEditor | 3 | ||
KTextWidgets | 3 | ||
KUnitConversion | 2 | ||
KWalletFramework | 3 | ||
KWidgetsAddons | 1 | ||
KWindowSystem | 1 | 允许与视窗系统互动。它提供了一个存取全域状态(这里的所有项目均在根视窗上)的所有关于特定视窗的资讯NETRootInfo。此类型包含了一个视窗管理员及客户端。这是KWin及其他图形壳层,像是工作管理员,的基础。
建基于X11的特有类型,我们有一个方便的API,KWindowInfo,而KWindowSystem提供了与视窗系统无关的API给应用程式使用。 | |
KXMLGUI | 3 | ||
Plasma-framework | 3 | ||
Solid | 1 | ||
Sonnet | 1 | 拼写检查 | |
ThreadWeaver | 1 |
历史
KDE Frameworks第一个版本的版本号是5,代表其整个代码库是继承KDE Platform的事实,但因为KDE Platform的版本号只有到4,而且其大多数代码只是将先前的版本重新包装,所以使用版本号5来代表。
在Frameworks 5中的主要变更为,增加了模组化的程度。在较早的KDE版本中,其函式库被包装为一个单一的大软体包。在Frameworks中,这些函式库会分裂成较小的数个独立的软体包。这有利于其他基于Qt的软体利用这些函式库,因为依赖性可以被保持在最低程度[3]。
而KDE 4是基于第四版的Qt部件工具箱开发,Frameworks 5则是使用第五版的Qt。Qt 5能增加QML的使用量,一个简单的,基于JavaScript的叙述性程式语言,用以设计使用者介面。使用QML的图形渲染引擎可以带来横跨不同装置且更流畅的使用者介面[3]。
参考资料
- ^ 1.0 1.1 KDE Ships Frameworks 6.5.0. 2024年8月9日 [2024年8月20日] (英语).
- ^ First release of KDE Frameworks 5. 2014-07-07 [2014-08-20]. (原始内容存档于2015-09-05).
- ^ 3.0 3.1 3.2 Howard Chan. KDE Release Structure Evolves. KDE. 2013-09-04 [2014-02-27]. (原始内容存档于2020-11-12).
- ^ KF5 Update Meeting Minutes 2014-w28. 2014-07-08 [2014-08-20]. (原始内容存档于2016-03-07).
- ^ Firefox + KDE integration: Getting FF to use Dolphin reliably. 2014-07-03 [2014-08-20]. (原始内容存档于2018-05-15).
- ^ Coinstallability with KDE Platform 4. [2014-08-20]. (原始内容存档于2020-12-01).
- ^ Release schedule for KDE Frameworks 5. [2014-08-20]. (原始内容存档于2020-10-28).
- ^ Git workflow for Frameworks. [2014-08-20]. (原始内容存档于2020-10-20).
- ^ KDE Frameworks5 API documentation. [2014-08-20]. (原始内容存档于2014-08-22).
- ^ Jos Poortvliet. Qt 5.2 - Foundation for KDE Frameworks 5. Dot.kde.org. 2013-12-17 [2014-03-10]. (原始内容存档于2020-11-11).
- ^ Howard Chan. Frameworks 5. Dot.kde.org. 2013-09-25 [2014-03-10]. (原始内容存档于2020-11-26).