【问题标题】:why is cordova slow even for css transforms?为什么即使对于 css 转换,cordova 也很慢?
【发布时间】:2015-02-09 20:41:36
【问题描述】:

我一直在使用 cordova 构建要求苛刻的混合应用程序,并注意到与我在移动 chrome 中运行网站时相比,它通常很慢。我听到的一些对我来说没有意义的论点:

  1. 移动设备中的 css 动画很慢(如果这是真的,那么网站在移动设备 chrome 中也会运行缓慢,这是不正确的)

  2. cordova 建立在 chrome 之上(css 转换应该与 cordova 无关,chrome 应该能够很好地渲染它们)

cordova 默认会限制 gpu chrome 可以使用的数量吗?我可以调整一些设置来提高 CSS 转换性能吗?

【问题讨论】:

  • webview 比浏览器慢,但通常只是 javascript。 Cordova 不是建立在 chrome 之上的,是建立在系统 webview 之上的,只有 android 4.4 及更高版本是基于 chrome 的。
  • @jcesarmobile 我一直在测试 kitkat,所以 cordova 必须使用 chrome 本身。
  • 嗯,它不是真正的 chrome,它是一个基于 chromium 的 webview。并确保您在 androidManifest.xml 上设置了基本 SDK 19 或更高版本

标签: cordova css-transitions css-transforms hybrid-mobile-app mobile-chrome


【解决方案1】:

Chrome 仅在您希望他使用 GPU 时才使用它。

一个例子:

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

不会使用 GPU 进行渲染。相反,要强制 GPU 工作,您可以使用:

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

更多信息我找到了cool article about it

我不知道您是否还能做些什么。

我认为,WebView 只是 kit-kat 之后 chrome 的一部分。此外,当您在 chrome 上调试它而不是“编译”为 cordova 应用程序时,您的应用程序并没有在相同的环境中运行。事实上,cordova 在你的 webview 周围添加了一个包装器,插件添加了 chrome 不必做的功能等等......

希望有所帮助。

【讨论】:

  • 如果我想对高度进行过渡怎么办?
  • 很遗憾,您不能使用 gpu 来转换宽度或高度。
  • @BarbuBarbu 你可以尝试使用transform: scale 样式。
猜你喜欢
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 2011-04-12
  • 2014-04-04
  • 1970-01-01
  • 2021-01-07
相关资源
最近更新 更多