2015-01-08 2 views
1

Я разработал приложение, которое использует Android-карту Cordova/Phonegap для отображения карт Open Layers 3.Кордова/медленная работа Phonegap с Open Layers на новом планшете, но отлично работает на новом телефоне

Это очень похоже на этот проект:

https://github.com/netgis/ol3

Я обнаружил, что приложение работает гладко на Samsung Note 4 работает KitKat V4.4.4, и работает отлично на старый S2 работает Jellybean (почти одинаково хорошо на самом деле), но он работает ужасно медленно на отруби новый Galaxy Tab Pro 12.2 работает KitKat V4.4.2.

Мне было интересно, есть ли какой-либо эксперт по Cordova/Phonegap, который может знать почему.

Единственная разница между ними, которую я вижу, - это версия андроида! V4.4.4 и V4.4.2.

Я обнаружил потоки на SO, которые, как правило, говорят о том, что WebView может быть проблемой и вызывать медленную производительность, но я получаю отличную производительность на своем Note 4, а S2 работает лучше, чем планшет с использованием Jellybean.

Я не уверен, что код будет полезен для показа здесь, по сути, у меня есть приложение Android Cordova с одним HTML-документом с встроенной картой Open Layers 3, вот и все.

ответ

2

Проблема заключается в использовании WebView, который использует браузер Android по умолчанию. По какой-то причине этот браузер ограничивает поддержку ЦП, если вы пытаетесь использовать ускорение GPU (включено по умолчанию), но не обеспечивает ускорение GPU (это действительно странно, но верно).

Видимо, у KitKat есть эта проблема до Android V4.4.3. Поэтому, если вы используете V4.4.4, вы не столкнетесь с этой проблемой производительности, поскольку она исправлена ​​(поскольку вместо браузера по умолчанию используется Chromium).

Вот один из многих ссылок, которые я нашел, которые подтверждают это:

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

Некоторые устройства еще не были обновлены до этого уровня, вот мой полностью до даты устройств:

планшет использует Android V4.4.2

S2, использует Android v4.0.2

Примечание 4 использует Andro id V4.4.4

S2 использует Jelly Bean и, следовательно, прекрасно, примечание 4 использует обновленный KitKat, а также отлично работает, но планшет борется с приложением до такой степени, что он непригоден из-за того, что он ниже V4 .4.3.

Для меня большинство предлагаемых решений на SO - отключить аппаратное ускорение, но эти предложения не подходят, поскольку мое приложение действительно требует аппаратного ускорения для эффективного отображения карт.

Решение заключается в том, чтобы полностью устранить эту проблему, заставив использовать Chromium независимо от версии ОС с помощью Crosswalk.

Есть много ресурсов, которые я нашел, чтобы использовать Кордову в синергии с пешеходном:

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

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

Смежные вопросы