Flutter SDK

repository·master·Indexed 13 days ago

https://github.com/flutter/flutter

Google's open-source SDK for building natively compiled applications for mobile, web, and desktop from a single codebase. This documentation includes guides for releasing apps to Android and iOS, running various micro and macrobenchmarks (including scrolling, startup, and platform views), and utilizing the DeviceLab harness for physical device testing.

Tokens
186.1K
Snippets
493
Records
942
Agent score
100%

What's inside Flutter

  1. What is the Impeller Shader Compiler & Reflector (impellerc)?

    master
    The Impeller Shader Compiler & Reflector (impellerc) is a host-side tool used to process GLSL 4.60 (Core Profile) shaders. It generates libraries that can be consumed by an Impeller backend. Additionally, the reflector component generates the necessary code and metadata required to construct rendering and compute pipelines at runtime.
  2. Overview of Flutter DeviceLab Hardware

    master

    Flutter's DeviceLab is a collection of test beds used to collect performance benchmarks and detect regressions. It consists of various host architectures paired with mobile phones for all supported platforms.

    Key hardware configurations include:

    • Linux Hosts: X64 architecture paired with Android phones.
    • Windows Hosts: X64 and Arm64 architectures, paired with Android phones.
    • Mac Hosts: X64 and Arm64 architectures, paired with iOS phones or used as standalone hosts, and paired with Android phones.
    • Mobile Devices: Android and iOS phones are distributed across these host types.
  3. Overview of the Flutter Engine

    master

    The Flutter Engine is a portable runtime responsible for hosting Flutter applications. It provides the low-level implementation of core libraries that the Flutter Framework relies on. Key responsibilities include:

    • Graphics and Animation: Implementing the rendering pipeline.
    • I/O: Handling file and network operations.
    • Accessibility: Providing support for assistive technologies.
    • Plugin Architecture: Managing the interface between the engine and platform-specific code.
    • Dart Runtime: Hosting the Dart runtime and the compile toolchain.

    While the Engine handles these low-level tasks, most developers interact with Flutter through the Flutter Framework, which offers the reactive UI model, layout systems, and widget sets.

  4. Overview of the Android Platform Embedder

    master

    The Android Platform Embedder provides the glue between the Flutter engine and the Android platform. It is responsible for:

    • Initializing the Flutter engine.
    • Providing a platform view for the Flutter engine to render into.
    • Dispatching events to the Flutter engine.

    The embedder consists of Java sources in io.flutter and Android-specific engine-side C++ code.

  5. Overview of the Android Toolkit

    master

    The Android Toolkit provides type-safe, managed wrappers around Android objects that are typically vended by the NDK.

    Key characteristics:

    • No direct linking required: It does not require linking to libandroid.so.
    • Dynamic symbol resolution: Symbols are resolved via dynamic runtime lookup. This allows the toolkit to be built using an older NDK while maintaining compatibility with modern Android versions and utilizing the latest available features at runtime.
  6. Overview of data_asset_app

    master

    The data_asset_app is a demonstration and testing application designed to showcase and validate the use of Dart data assets within a Flutter application. It serves as a reference implementation for integration testing the Dart data assets feature.

    Key characteristics include:

    • Local Assets: It contains its own local data assets.
    • Package Dependencies: It depends on the data_asset_package, which provides its own set of data assets.
    • Functionality: The app reads and displays the content of these assets to verify correct loading and access.
  7. Overview of Flutter Infrastructure Foundation services

    master

    The Flutter Infrastructure Foundation manages the provisioning, configuration, and maintenance of the DeviceLab environment. This includes owning the DeviceLab provisioning services, maintaining Flutter LUCI service configurations, and providing lab maintenance services. Key services include:

    • SALT: A configuration provisioning service that pushes configurations as code for hosts and devices across all supported platforms.
    • Machine Provider: A configuration management service used to provision, spin up, and tear down virtual machines.
    • LUCI swarming bot: Scripts used to set up and tear down LUCI services on supported platforms.
    • Capacity planning and delivery: Manages budgeting for lab expansions, delivery of new capacity, and decommissioning of end-of-life hardware.
    • Lab maintenance: Handles faulty hardware replacement, hardware recovery, reprovisioning, and lab migration planning/execution.
    • Onboarding of new platforms: Involves creating provisioning SALT scripts and onboarding onto LUCI services.
    • Device doctor: Responsible for phone configuration validation and device recovery.
  8. Overview of android_engine_test

    master

    The android_engine_test suite is an end-to-end testing framework designed to demonstrate the use of the (experimental) _native_ Flutter Driver API. It is used to drive Flutter apps on Android devices or emulators, interact with them, capture screenshots, and perform screenshot comparisons against 'golden' images.

    This suite tests a complex combination of the graphics backend, the Android embedder, the Flutter framework, and Flutter tools. It is primarily used for verifying low-level integration and regression cases.