Почему кордова медленная даже для css-трансформаций?

Я создавал требовательное гибридное приложение с использованием Cordova и заметил, что в целом оно медленное по сравнению с тем, когда я запускаю веб-сайт в мобильном Chrome. Некоторые аргументы, которые я слышал, которые не имеют смысла для меня:

  1. css-анимация на мобильных устройствах медленная (если бы это было так, веб-сайт работал бы медленно и в мобильном chrome, что не соответствует действительности)

  2. Cordova построена на основе Chrome (CSS-преобразования не должны иметь ничего общего с Cordova, Chrome должен уметь отображать их очень хорошо)

Кордова по умолчанию ограничивает количество графического процессора, которое может использовать хром? Есть ли какие-то настройки, которые можно настроить для улучшения производительности CSS-перехода?

1 ответ

Chrome использует GPU, только если вы хотите, чтобы он использовал его.

Пример:

.nav-show {
    transform:translate(200px,200px);
    transition: transform 500ms linear;
}

не будет отображаться с графическим процессором. Вместо этого, чтобы заставить графический процессор работать, вы можете использовать:

.nav-show {
    transform: translate3d(200px,200px,0);
    transition: transform 500ms linear;
}

Для получения дополнительной информации я нашел классную статью об этом.

Я не знаю, есть ли что-нибудь еще, что вы можете с этим поделать.

Я думаю, что WebView - это лишь часть chrome после kit-kat. Более того, ваше приложение не работает в том же окружении, когда вы отлаживаете его в Chrome, чем "скомпилированное" как приложение Cordova. На самом деле, Cordova добавляет обертку вокруг вашего веб-просмотра, плагины добавляют функции, которые Chrome не должен делать, и т. Д...

Надеюсь, что поможет.

Другие вопросы по тегам