Middle
Ի՞նչ ճարտարապետական շերտեր է բաժանվում Flutter-ը։
sobes.tech AI
Պատասխան AI-ից
Flutter-ը բաժանվում է հետևյալ ճարտարապետական շերտերի՝
- Embedder: Պատասխանատու է օպերացիոն համակարգի հետ փոխազդեցության համար: Պատրաստում է հատուկ հարթակային մուտքագրում մակերեսների ռենդերացման, հասանելիության ծառայությունների մուտքի, օգտվողի մուտքի և կյանքի ցիկլի կառավարման համար: Embedder-ը գրված է հարմար լեզվով՝ համապատասխան հարթակի համար (Java՝ Android-ի համար, Objective-C/Swift՝ iOS-ի համար, C++՝ Windows/Linux/macOS-ի համար):
- Engine: Ֆրեյմվորկի հիմնական մասը: Գրել է հիմնականում C/C++-ով: Պահպանում է ցածր մակարդակի գործառույթներ՝ Skia (2D գրաֆիկայի գրադարան), Text (տեքստի հետ աշխատելու գրադարան), IO (մուտք/արտահոսք), Dart Runtime, Flutter Engine (աշխատանքների պլանավորում, ռենդերային կառավարման, կոմպոզիցիա):
- Framework: Գրված է Dart-ով: Սա է Dart API-ն, որի հետ Flutter ծրագրավորողները աշխատում են ուղղակի: Բաղկացած է մի քանի մակարդակից՝
- Foundation: Հիմնական դասեր և Utilities:
- Widgets: Flutter-ի UI-ի հիմքը: Widget-ները նկարագրում են ինտերֆեյսի տարրերի կոնֆիգուրացիան:
- Rendering: Աբստրակցիաներ ռենդերացման համար, որոնք ապահովում են ցածր մակարդակի օբյեկտներ ռենդերային ծառեր կառուցելու համար:
- Painting, Gestures, Animation և այլն: Լավագույն մակարդակներ, որոնք ապահովում են նկարելու, ժեստերի մշակման, անիմացիաների և այլն ֆունկցիոնալություն:
- Material/Cupertino Libraries: Widget-ների հավաքածուներ, որոնք իրականացնում են Material Design և iOS Cupertino դիզայնային համակարգերը:
Ահա պարզեցված ներկայացում՝
[Ձեր հավելվածի կոդը (Dart Widget-ներ)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Օպերացիոն համակարգ]
Embedder-ը գործարկում է Engine-ը, որը ապահովում է Dart Runtime և API: Framework-ը, որը գրված է Dart-ով, փոխազդում է Engine-ի հետ Dart API-ի միջոցով: Ձեր հավելվածի կոդը օգտագործում է Framework-ի widget-ները՝ օգտագործողի ինտերֆեյսը կառուցելու համար: Engine-ը, իր հերթին, օգտագործում է Skia՝ տարրերը ռենդերացնելու համար Canvas-ի վրա, որը տրամադրված է Embedder-ի կողմից: