Карьера
Нам срочно нужны таланты в движке рендеринга браузера/движке рендеринга Flutter, добро пожаловать, Дэниел _Присоединяйтесь к нам_.
предисловие
Можно сказать, что Flutter является самым популярным мобильным кроссплатформенным решением за последние два года.Будь то инновационное приложение или старое флагманское приложение, технология Flutter более или менее испытывается. Основываясь на следующих трех преимуществах, Flutter постепенно сияет:
- В отличие от Weex, RN и других решений, Flutter использует самоотрисовку для достижения высокой согласованности кросс-конечной и кросс-платформенной работы;
- Упрощенный дизайн конвейера рендеринга и экстремальный AOT обеспечивают производительность, сравнимую с Native;
- Google Сильная техническая поддержка и быстрое расширение экологии.
Хотя Флаттер выглядит очень красиво, в конце концов, это всего лишь многообещающий новорожденный. С постепенным углубленным использованием бизнеса студенты-бизнесмены столкнулись с некоторыми трудными проблемами на Flutter, и эти проблемы необходимо оптимизировать и преобразовать с уровня движка. В результате основная команда U4 также начала посвятить себя потоку Flutter, надеясь привнести в бизнес лучший опыт с помощью технологий команды.
Чтобы облегчить общение и дифференциацию, наш механизм настройки Flutter начинается сHummerдля кодового имени. Flutter означает дрожание крыльев, Google означает плавную работу,HummerкоторыйКолибри, самая быстрая птица в мире, машущая крыльями, также является самой маленькой птицей. Мы надеемся, что движок Flutter, настроенный командой ядра U4, будет таким же маленьким и быстрым, как колибри, и в то же время поможет компаниям разрабатывать приложения, столь же красивые, как колибри.
Обзор
Движок Hummer основан на управлении бизнесом в сочетании с многолетним опытом разработки веб-движка основной команды U4 и активно охватывает сообщество.Он в основном проводит глубокую настройку и оптимизацию по четырем аспектам: оптимизация производительности, расширение функций, вспомогательные инструменты. , и решение проблем. Ниже приводится краткое введение в результаты оптимизации, которые мы близки к завершению или уже завершили. Мы поделимся этими результатами с читателями в официальном аккаунте в будущем, так что следите за обновлениями.
Важные результаты
Компилятор AOT на основе LLVM
Хотя продукт Dart AOT оптимизирован до предела, что делает его производительность сравнимой с производительностью старомодных языков, таких как Java и C++, все еще есть место для оптимизации всего конвейера компиляции. Преобразовав компилятор Dart и используя компилятор LLVM для создания небольшого размера кода и высокой производительности, мы можем эффективно уменьшить размер движка и повысить производительность кода.
наша цель:
- Производительность сгенерированного AOT кода увеличилась на 30%
- Размер генерации кода AOT уменьшен на 30%.
В настоящее время ARM32 и ARM64 прошли все тесты и вводят в последний этап оптимизации, и они будут доступны для использования в ближайшее время.
В настоящее время чиновник также уделяет внимание работе по оптимизации нашего компилятора, надеясь внести свой вклад в сообщество после того, как эффект будет достигнут.
Оптимизация решения для разработки гибридного стека
Хотя Flutter официально поддерживает смешанную разработку с Native-приложениями, до сих пор поддержка Flutter для смешанной разработки все еще недостаточно дружелюбна, и некоторые из ее проблем всегда были болью в сердцах разработчиков. Гибридная разработка в основном отражается в трех сценариях:
- В полноэкранном интерфейсе Flutter в некоторых областях встроены собственные элементы управления;
- Взаимное переключение навигации между полноэкранным интерфейсом Flutter и полноэкранным интерфейсом Native;
- Собственный полноэкранный интерфейс, часть области встроена в элемент управления Flutter.
Для первой сцены решаем проблему производительности и совместимости нативных микширующих программ рендеринга и плохой совместимости. В тестовом сценарии частота кадров FlutterView имеет самую высокую28%Оптимизированный встроенный PlatformView имеет самую высокую частоту кадров50%Оптимизация.
В следующем видео левая сторона — это эффект до оптимизации, а правая — эффект после оптимизации.
Для второго сценария группа оценила существующие основные решения и обнаружила, что при последующих обновлениях возникают трудности. В дополнение к предоставлению аналогичных возможностей в отношении существующих решений, последующий Hummer также будет сосредоточен на том, как снизить стоимость обновления Hummer и обеспечить, чтобы Hummer имел возможность следовать последней официальной версии. Для третьего сценария мы объединим официальное решение Multiple Flutters, чтобы начать преобразование на уровне движка, надеясь достичь следующих целей:
- FlutterView может быть гибко использован в различных сценариях, полноэкранном экране, встроенной в вкладку, карту, ячейке и т. Д.;
- Создание 2+ FlutterView небольшое дополнительное использование системных ресурсов и объема памяти, а также меньшие накладные расходы на инициализацию, больше приложений могут безопасно использовать несколько FlutterView;
- Обеспечьте эффективный механизм контроля пиковых нагрузок на память в сложных бизнес-сценариях, уменьшите беспокойство бизнеса по поводу использования памяти и не требуете бизнес-приложения Flutter для изменения кода;
- Предоставьте набор API-интерфейсов в слоях Framework и контейнеров для реализации обмена данными (между приложением Flutter, между Flutter и Native).
Запуск и оптимизация производительности первого кадра
Мы оптимизировали запуск и первую раму двигателя Hummer. Оптимизированный движок значительно повышает производительность реального бизнеса. Реальная бизнес-статистика показывает, что время запуска сокращается на 80%, а время первого кадра — на 60%.
Адаптивная схема DarkMode
Сравнительный анализ самоадаптирующегося решения DarkMode Chromium для обеспечения переключения DarkMode одним щелчком мыши в интерфейсе без изменения темы, что значительно повышает эффективность исследований и разработок со стороны бизнеса.
На рисунке ниже мы используем открытый источникflutter_deerProject, добавить эффект запуска на Hummer после расширенного синтаксиса DarkMode. Заинтересованные читатели также могут самостоятельно проверить эффект DarkMode, реализованный проектом.
Усовершенствования сетевой библиотеки
Механизм Hummer может улучшить сетевые возможности за счет внешних сетевых библиотек, не полагаясь на собственную сетевую библиотеку, и удвоить скорость сетевых запросов.
Связанные PR
Хотя участие в оптимизации движка Flutter прошло не так уж много времени, команда ядра U4 много раз отправляла PR в основную ветку, и большинство PR теперь включены. Таким образом мы надеемся усилить влияние Alibaba в сообществе Flutter, а также способствовать развитию всей экосистемы Flutter, чтобы Flutter мог принести большую пользу бизнесу.
будущее
Команда ядра U4, специализирующаяся на движке рендеринга и технологии виртуальных машин более десяти лет. Являясь важным участником совместного строительства Flutter в экономике Alibaba Group, он активно взаимодействует с сообществом и стремится приносить максимальную пользу бизнесу. Hummer — это наш тщательно настроенный и оптимизированный движок Flutter, который объединяет годы технических усилий команды над веб-движком. Студенты, которые занимаются соответствующими техническими исследованиями или создают приложения на основе Flutter, могут высказать ценные мнения или предложения.
Ядро U4 стремится создать наиболее производительную и безопасную веб-платформу, делающую Интернет всемогущим.
Следите за официальной учетной записью, ищите технологию ядра U4 и получайте последние технические разработки в режиме реального времени.