Cordova/Phonegap Open Layers 在新平板电脑上的性能较慢,但在新平板电脑上性能良好 phone

Cordova/Phonegap slow performance with Open Layers on new Tablet, but fine on new phone

我开发了一个应用程序,它在 Android 上使用 Cordova/Phonegap 来显示 Open Layers 3 地图。

和这个项目很相似:

https://github.com/netgis/ol3

我发现该应用程序在运行 Kitkat V4.4.4 的 Samsung Note 4 上运行流畅,在运行 Jellybean 的旧 S2 上运行良好(事实上几乎同样好),但它运行 非常糟糕 在运行 KitKat V4.4.2 的全新 Galaxy Tab Pro 12.2 上慢慢来。

我想知道是否有 Cordova/Phonegap 专家可能知道原因。

我能看出的唯一区别就是android的版本! V4.4.4 和 V4.4.2.

我发现 SO 上的线程通常说 WebView 可能是一个问题并导致性能下降,但我在我的 Note 4 上获得了很好的性能,并且 S2 比使用 Jellybean 的平板电脑运行得更好。

我不确定代码在此处显示是否有用,基本上我有一个 Cordova Android 应用程序,其中包含一个 HTML 文档,其中嵌入了 Open Layers 3 地图,仅此而已。

问题出在 WebView 上,它使用默认的 Android 浏览器。出于某种原因,如果您尝试使用 GPU 加速(默认启用),此浏览器会限制 CPU 支持,但它本身不提供 GPU 加速(这确实很奇怪但确实如此)。

显然 KitKat 在 Android V4.4.3 之前有这个问题。因此,如果您使用的是 运行 V4.4.4,您将不会遇到此性能问题,因为它已得到修复(因为它使用 Chromium 而不是默认浏览器)。

这是我发现的证实这一点的众多参考资料之一:

https://code.google.com/p/chromium/issues/detail?id=315111

有些设备还没有更新到这个级别,这里是我完全最新的设备:

平板使用AndroidV4.4.2

S2使用AndroidV4.0.2

Note 4 使用AndroidV4.4.4

S2 使用 Jelly Bean,因此很好,Note 4 使用更新的 KitKat,也运行良好,但平板电脑与应用程序斗争到无法使用的程度,因为它低于 V4.4.3。

对我来说,SO 上的大多数建议解决方案都是禁用硬件加速,但这些建议并不适用,因为我的应用程序确实需要硬件加速才能有效地渲染地图。

解决方案是通过使用 Crosswalk 强制使用 Chromium 而完全解决这个问题,而不管 OS 版本。

我发现有很多资源可以将 Cordova 与人行横道协同使用:

https://crosswalk-project.org/documentation/cordova.html

https://blog.nraboy.com/2014/10/use-crosswalk-ionic-framework-android-apps/