Sobes.tech
Middle

Flutter ба чӣ қабатҳои меъморӣ тақсим мешавад?

sobes.tech AI

Ҷавоб аз AI

Flutter бөлүнөт келесі архитектуралык катмектерге:

  1. Embedder: Операциялык тутум менен өз ара аракеттенүү үчүн жооптуу. Платформага өзгөчө киргизүү камсыз кылат, беттерди чийүү, жеткиликтүүлүк кызматтарына кирүү, колдонуучу киргизүүлөрү жана жашоо циклин башкаруу. Embedder конкреттүү платформага ылайык тилде жазылган (Android үчүн Java, iOS үчүн Objective-C/Swift, Windows/Linux/macOS үчүн C++).
  2. Engine: Frameworkтин негизги бөлүгү. Башкача айтканда, негизинен C/C++та иштелип чыккан. Төмөнкү деңгээлдеги функцияларды камсыз кылат: Skia (2D графика китепканасы), Text (текст менен иштөө китепканасы), IO (киру/чыгаруу), Dart Runtime, Flutter Engine (тапшырмаларды пландаштыруу, рендерингди башкаруу, композиция).
  3. Framework: Dart тилинде жазылган. Бул Flutter иштеп чыгуучулары түздөн-түз иштешкен Dart API. Бир нече деңгээлден турат:
    • Foundation: Негизги класстар жана утилиттер.
    • Widgets: Flutterдеги UIдин негизги бөлүгү. Widgetтер интерфейс элементтеринин конфигурациясын сүрөттөйт.
    • Rendering: Рендеринг үчүн абстракциялар, алар рендеринг дарактарын куруу үчүн төмөнкү деңгээлдеги объекттерди камсыз кылат.
    • Painting, Gestures, Animation жана башка: Чийүү, кыймыл белгилерин иштетүү, анимациялар жана башка функцияларды камсыз кылган деңгээлдер.
    • Material/Cupertino Libraries: Material Design жана iOS Cupertino дизайн системдерин ишке ашырган widgetтердин топтому.

Мына, иерархиянын жөнөкөйлөштүрүлгөн көрүнүшү:

[Өз колдонмо кодуңуз (Dart Widgetтер)]
        |
    [Framework (Dart)]
        |
    [Engine (C/C++)]
      /        \
[Embedder]    [Skia]
   |            |
[Операциялык тутум]

Embedder Engineди иштетет, ал Dart Runtime жана API камсыз кылат. Dartта жазылган Framework, Dart API аркылуу Engine менен өз ара аракеттенет. Колдонмо кодуңуз, UI түзүү үчүн Frameworkтин widgetтерин колдонуп жатат. Engine болсо, Embedder тарабынан берилген Canvas үстүндө элементтерди чийүү үчүн Skiaны колдонуп жатат.