KDE -Frameworks

KDE -Frameworks
KDE Mascot Konqi for KDE Frameworks.png
Originalautor (en) Kde
Entwickler (en) Kde
Erstveröffentlichung 1. Juli 2014; Vor 8 Jahren
Stabile Version
5.96.0[1] Edit this on Wikidata / 9. Juli 2022; Vor 25 Tagen
Repository
Geschrieben in C ++ (Qt)
Betriebssystem Plattformübergreifend (einschließlich "teilweise" Unterstützung für Android,[2][3] Fenster,[4] Mac OS und Haiku)
Typ
Lizenz Gnu weniger allgemeine öffentliche Lizenz (LGPL)[5]
Webseite API.Kde.org/Frameworks/Index.html Edit this on Wikidata

KDE -Frameworks ist eine Sammlung von Bibliotheken und Software -Frameworks leicht für jeden verfügbar Qt-basierte Software -Stapel oder -anwendungen auf mehreren Betriebssysteme.[6] Mit häufig benötigten Funktionslösungen wie Hardware -Integration, Dateiformatunterstützung, zusätzlich Grafische Kontrollelemente, Aufgabe von Funktionen und RechtschreibprüfungDie Sammlung dient als technologische Grundlage für KDE Plasma 5 und KDE -Ausrüstung verteilt unter dem Gnu weniger allgemeine öffentliche Lizenz (LGPL).[7]

Überblick

Aktuelle KDE -Frameworks basieren auf QT 5, was eine weiter verbreitete Verwendung von ermöglicht QML, ein einfacheres JavaScript-Basierte deklarative Programmiersprache für das Design von Benutzeroberflächen. Die von QML verwendete Grafik -Rendering -Engine ermöglicht flüssige Benutzeroberflächen über verschiedene Geräte hinweg.[8]

Ein Quellcode wurde von KDE Frameworks 5 zu Teil von QT 5.2 und später bewegt.

Seit der Trennung der KDE -Software -Zusammenstellung in KDE Frameworks 5,, KDE Plasma 5 und KDE -AnwendungenJedes Unterprojekt kann sein eigenes Entwicklungstempo auswählen. KDE -Frameworks werden monatlich veröffentlicht[9] und benutze Git.[10][11]

Es sollte möglich sein, KDE -Frameworks neben der KDE -Plattform 4 zu installieren, damit Apps eines verwenden können.[12]

API- und ABI -Stabilität

Plattform -Releases sind diejenigen, die eine Serie beginnen (Versionsnummer X.0). Nur diese Hauptveröffentlichungen dürfen brechen binäre Kompatibilität mit dem Vorgänger. Veröffentlichungen in der kleinen Serie (X.1, X.2, ...) garantieren die binäre Portabilität (API & Abi). Dies bedeutet beispielsweise, dass Software, die für KDE 3.0 entwickelt wurde, an allen (zukünftigen) KDE 3 -Releases arbeiten wird. Eine für KDE 2 entwickelte Anwendung kann jedoch nicht garantiert in der Lage sein, die KDE 3 -Bibliotheken zu nutzen. KDE Major -Versionsnummern folgen hauptsächlich dem QT -Release -Zyklus, was bedeutet, dass KDE SC 4 auf QT 4 basiert, während KDE 3 auf QT 3 basiert.

Unterstützte Betriebssysteme

Das Repository jedes Frameworks sollte eine Datei mit dem Namen enthalten metainfo.yaml.[13] Diese Datei dokumentiert den Betreuer des Frameworks, den Typ, das unterstützte Betriebssystem und andere Informationen. Die derzeit unterstützten Plattformen sind Linux, Microsoft Windows, MacOS und Android.

Softwarearchitektur

Struktur

Die Rahmenbedingungen haben eine klare Abhängigkeitsstruktur, die in "Kategorien" und "Ebenen" unterteilt ist. Die "Kategorien" beziehen sich auf Laufzeitabhängigkeiten:

  • Funktionale Elemente haben keine Laufzeitabhängigkeiten.
  • Integration bezeichnet Code, für die möglicherweise Laufzeitabhängigkeiten für die Integration erforderlich sind, je nachdem, was das Betriebssystem oder die Plattform bietet.
  • Lösungen haben obligatorische Laufzeitabhängigkeiten.

Komponenten

Das KDE Frameworks -Bundle besteht aus über 70 Paketen. Diese existierten als einzelnes großes Paket, genannt Kdelibs, in KDE SC 4. Kdelibs wurden in mehrere einzelne Frameworks aufgeteilt, von denen einige nicht mehr Teil von KDE sind, sondern in integriert wurden QT 5.2.[14]

KDE -Frameworks werden nach Abhängigkeit von anderen Bibliotheken in vier verschiedenen Ebenen gruppiert.[15][16]

Stufen von Frameworks
Tier 1 - hängt meistens nur von abhängig von Qt, sehr tragbar
Tier 2 - Abhängig von Stufe 1, aber Abhängigkeiten sind immer noch überschaubar
Tier 3 - Komplexe Abhängigkeiten, einschließlich Stufen 1-2 usw.
Tier 4 - Meist Plugins, die zusätzliche Funktionen wie Plattformunterstützung bieten; kann ignoriert werden


Kirigami

Kirigami ist a QML Anwendungsrahmen[18] entwickelt von Marco Martin[19] Dadurch können Entwickler Anwendungen schreiben, die nativ auf Android, iOS, Windows, Plasma Mobile und einer klassischen Linux -Desktop -Umgebung ohne Codeanpassungen ausgeführt werden.

Es wird beispielsweise von verschiedenen Anwendungen verwendet Linus Torvalds und Dirk Hahndels 'Scuba Diving Application Untergrund, The Messenger Client Banji,[20] der Kaidan Messenger,[21] Vvave Music Player und das KDE Software Center Discover.

Softwarepakete

Linux -Verteilung Verwenden Sie einige Paketverwaltungssystem So verpacken Sie die Software, die sie verteilen. Debian zum Beispiel verteilt Kglobalaccel Unter dem Paketnamen libkf5globalaccel,[22] während Fedora Linux Verteilt es unter dem Namen kf5-kglobalaccel.[23]

Bindungen

Während sie hauptsächlich in C ++ geschrieben sind, gibt es viele Bindungen für andere Programmiersprachen verfügbar:[24][25]

  • Python
  • Rubin (Korundaufgebaut auf Qtruby)
  • Perl
  • C# (Das aktuelle Framework für die Bindung an C# und andere .NET -Sprachen wurde jedoch veraltet und der Ersatz wird nur unter Windows zusammengestellt.)[26]

Diese und andere Bindungen verwenden die folgenden Technologien:

Viele Bindungen wurden nicht auf QT5 und KF5 oder erst später im Release -Zyklus aktualisiert.

Geschichte

Vor der 5.0 -Veröffentlichung ging eine technologische Vorschau, zwei Alpha -Veröffentlichungen und drei Beta -Veröffentlichungen voraus.[27][28][29]

Der Quellcode von KDE Frameworks gibt es seit Kdelibs 1. Die erste Version als KDE -Frameworks war mit Version 5, um die Tatsache zu berücksichtigen, dass die Codebasis die von KDE Plattform Version 4 war (die einzige Hauptversion von KDE -Plattform).

Der Übergang von KDE -Plattform Zu KDE Frameworks begann im August 2013, geführt von Top KDE -technischen Mitwirkenden.[8]

Nach der ersten Veröffentlichung von KDE Frameworks 5.0 konzentrierten sich die Entwickler darauf, den Komponenten in KDE Frameworks 5 neue Funktionen hinzuzufügen.[30] Ein Beispiel ist eine bessere Integration von Feuerfuchs in kde.[31]

Die Hauptverbesserung von Frameworks 5 ist die Modularisierung. In früheren KDE -Versionen wurden die Bibliotheken als einzelnes großes Paket gebündelt. In Frameworks wurden die Bibliotheken in einzelne kleinere Pakete aufgeteilt. Dies erleichtert die Nutzung der Bibliotheken durch andere QT-basierte Software, da Abhängigkeiten mindestens aufbewahrt werden können.[8]

Während KDE 4 auf Version 4 der Qt Widget Toolkit, Frameworks 5 basiert auf Version 5.

KDE4 -Transformation

Während KDE SC 4, die damals sogenannte KDE -Plattform bestand aus allen Bibliotheken und Diensten, die für KDE -Plasma und die Anwendungen benötigt wurden. Beginnend mit QT 5 wurde diese Plattform in eine Reihe von Modulen umgewandelt, die jetzt als KDE -Frameworks bezeichnet werden. Diese Module umfassen: Fest, Nepomuk, Phononusw. und werden entweder unter der LGPL, BSD -Lizenz, lizenziert, MIT -Lizenz oder x11 Lizenz.[32]

Annahme

neben dem KDE -Software -ZusammenstellungEs gibt andere Adoptierer wie die Desktop -Umgebungen Lxqt, Moonlightde oder Hawaii.

Version 3.0 von Krita, der Raster -Grafikredakteur der Raster Calligra Suite, das am 31. Mai 2016 veröffentlicht wurde, hängt von KDE Frameworks 5 und QT 5.2 ab.

Bei Kirigami wird auch die Verwendung von Anwendungen wie z. B. erhöht Amarok, Avogadro, Trojitá oder Untergrund.

Verweise

  1. ^ "KDE Frameworks 5.96.0".
  2. ^ "Veröffentlichung von KDE Frameworks 5.24.0". 9. Juli 2016.
  3. ^ "Android - KDE Community Wiki".
  4. ^ "KDE API Homepage"".
  5. ^ "Erste Veröffentlichung von KDE Frameworks 5". 2014-07-07.
  6. ^ "Die KDE -Frameworks". API -Dokumentation.
  7. ^ "KDE Frameworks". Techbasis.
  8. ^ a b c Howard Chan (2013-09-04). "KDE -Freisetzungsstruktur entwickelt sich". Kde. Abgerufen 2014-02-27.
  9. ^ "Veröffentlichungsplan für KDE Frameworks 5".
  10. ^ "Git Workflow für Frameworks".
  11. ^ "KDE Frameworks5 API -Dokumentation". Archiviert von das Original Am 2014-08-22.
  12. ^ "Coinstallierbarkeit mit KDE Plattform 4".
  13. ^ "metainfo.yaml von kconfig".[Permanent Dead Link]
  14. ^ Jos Poortvliet (2013-12-17). "QT 5.2 - Foundation für KDE Frameworks 5". Dot.kde.org. Abgerufen 2014-03-10.
  15. ^ Howard Chan (2013-09-25). "Frameworks 5". Dot.kde.org. Abgerufen 2014-03-10.
  16. ^ "API -Dokumentation". api.kde.org. Abgerufen 2021-10-02.
  17. ^ "KwindowSystem in Frameworks 5". 6. Februar 2014.
  18. ^ "Kde Kirigami". Kde. Abgerufen 25. November, 2018.
  19. ^ "Mitwirkende zu KDE/Kirigami". GitHub.
  20. ^ Archiviert bei Ghostarchive und die Wayback -Maschine: "Banji (Ring-KDE) Neue Haut auf Desktop Linux und Android". Youtube.
  21. ^ "Kaidan - Ein benutzerfreundlicher XMPP -Client für jedes Gerät!". GitHub. 4. Juli 2021.
  22. ^ "Kglobalaccel in Debian".
  23. ^ "Kglobalaccel in Fedora".[Permanent Dead Link]
  24. ^ "Die KDE -Entwicklungsplattform". Abgerufen 2010-11-26.
  25. ^ Entwicklung/Sprachen - KDE Techbase. Techbase.kde.org (2012-07-12). Abgerufen am 2013-07-17.
  26. ^ "Qyoto". Abgerufen 2015-01-18.
  27. ^ "Frameworks 5 Technology Preview". Kde. 2014-01-07.
  28. ^ "KDE wird zuerst Alpha von Frameworks 5 verschickt". Kde. 2014-02-14.
  29. ^ "KDE wird das zweite Alpha von Frameworks 5". Kde. 2014-03-03.
  30. ^ "KF5-Update-Meeting-Protokoll 2014-W28". 2014-07-08.
  31. ^ "Firefox + KDE -Integration: FF dazu bringen, Delphin zuverlässig zu verwenden". 2014-07-03.
  32. ^ "KDE -Lizenzpolitik". Abgerufen 2010-11-06.

Externe Links