原作者 | KDE |
---|---|
开发者 | KDE |
首次发布 | 2014年7月1日 |
编程语言 | C++ |
操作系统 | Linux、OS X、Microsoft Windows |
类型 | |
许可协议 | GNU宽通用公共许可证(LGPL)[1] |
网站 | www |
KDE Frameworks是一套由KDE社群所编写的函数库及软件框架,是KDE Plasma 5及KDE Applications 5的基础,并使用GNU宽通用公共许可证进行散布。
其中所包含的各种独立框架提供了各种常用的功能,包括了硬体集成、文件格式支持、控件、绘图功能、拼写检查及更多。
KDE Frameworks相当于将KDE Platform 4重写为一套单独且分开、跨平台的模块,可以很容易的提供给所有基于Qt的程序使用。从KDE Platform到KDE Frameworks的转换历时超过3年,由顶尖的技术贡献者们指导[2]。
在KDE Frameworks 5.0释出后,因为没有严苛的底线压力,开发者们将会专注在加入新的功能到KDE Frameworks 5的组件中[3]。像是Firefox与KDE的更佳集成[4]。
KDE Frameworks 5执行时函数库与KDE Platform 4执行时函数库一同安装应该是可行的,这样应用程序就可以选择要用哪一种[5]。
采用
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将会以每个月为基础释出[6]且使用git[7][8]。
应用程序接口及应用二进制接口稳定性
平台发布是开始一个系列(版本号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中[9]。
KDE Frameworks根据其依赖其他函数库的程度分类为四种不同的层次。层次1的Frameworks只依赖Qt或是其他系统函数库。层次2的Frameworks可以依赖层次1的函数库、或是其他系统函数库等等[10]。
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的软件利用这些函数库,因为依赖性可以被保持在最低程度[2]。
而KDE 4是基于第四版的Qt部件工具箱开发,Frameworks 5则是使用第五版的Qt。Qt 5能增加QML的使用量,一个简单的,基于JavaScript的叙述性编程语言,用以设计用户界面。使用QML的图形渲染引擎可以带来横跨不同设备且更流畅的用户界面[2]。
参考资料
- ↑ First release of KDE Frameworks 5. 2014-07-07 [2014-08-20].
- ↑ 2.0 2.1 2.2 Howard Chan. KDE Release Structure Evolves. KDE. 2013-09-04 [2014-02-27].
- ↑ KF5 Update Meeting Minutes 2014-w28. 2014-07-08 [2014-08-20].
- ↑ Firefox + KDE integration: Getting FF to use Dolphin reliably. 2014-07-03 [2014-08-20].
- ↑ Coinstallability with KDE Platform 4. [2014-08-20].
- ↑ Release schedule for KDE Frameworks 5. [2014-08-20].
- ↑ Git workflow for Frameworks. [2014-08-20].
- ↑ KDE Frameworks5 API documentation. [2014-08-20].
- ↑ Jos Poortvliet. Qt 5.2 - Foundation for KDE Frameworks 5. Dot.kde.org. 2013-12-17 [2014-03-10].
- ↑ Howard Chan. Frameworks 5. Dot.kde.org. 2013-09-25 [2014-03-10].