Перенос приложения iOS PhoneGap на Android – проблемы с производительностью

Мы работаем в течение нескольких месяцев на довольно существенном приложении iOS, используя PhoneGap 1.8.1 и пользовательский интерфейс Kendo от Telerik. Я бы сказал, что приложение iOS примерно на 90% так же быстро, как и его собственный эквивалент, что вполне приемлемо для нас. Мы взяли ту же самую кодовую базу и заменили в файлах javascript, эквивалентных Android, загрузили наше устройство (Motorola Xoom 4.0.3), а производительность просто ужасна. Хуже всего то, что переходы на страницы – что может занять 0,3 секунды – занимают 2-5 секунд. Производительность такая же, если не хуже на эмуляторах (неудивительно).

Если есть полезный код, я могу опубликовать его, пожалуйста, дайте мне знать. В противном случае, я думаю, мы ищем других людей, которые столкнулись с этой ситуацией и / или предложения по улучшению производительности. На данный момент PhoneGap – это совершенно не стартовая версия для Android для нас.

Solutions Collecting From Web of "Перенос приложения iOS PhoneGap на Android – проблемы с производительностью"

Мы занимаемся кросс-платформенной мобильной разработкой, используя Sencha Touch 2 (без опыта работы с пользовательским интерфейсом Kendo). В последний раз, когда я подробно изучал производительность, Sencha Touch 2 был лучшим исполнением полнофункциональных / зрелых кросс-платформенных мобильных фреймворков (JQuery Mobile, пользовательский интерфейс Kendo и т. Д.). Наш опыт в том, что производительность на Android значительно медленнее, чем у iOS (хотя Sencha Touch 2 считается быстрым). Списки прокрутки, переходы по экрану и т. Д. Все подпадают. Я был поражен разницей в производительности. Производительность Android лучше работает на моем Galaxy Nexus, работающем 4.0, но все же заметно медленнее, чем устройства iOS.

К сожалению, я не вижу способа заставить ваши приложения выполнять то же самое на Android, как на iOS. Это неудачная реальность, с которой я пришел некоторое время назад. Проблема, которую вы видите, связана с производительностью браузеров на разных платформах; Phonegap просто использует UIWebView и WebView для загрузки страниц html и javascript внутри собственной оболочки приложения. Можете ли вы загрузить приложение Kendo UI в браузере на устройствах? Я предполагаю, что производительность будет такой же, как и приложения с нативной оболочкой.

Наше «решение» должно было начаться для Android в первую очередь и получить приложения в том месте, где они работают прилично. Тогда мы знаем, что они будут великолепны на устройствах iOS.

Я не очень хорошо знаком с пользовательским интерфейсом Kendo, но в отношении рекомендаций или трюков мы стараемся как можно меньше поддерживать DOM. Когда приложение запускается, мы создаем как можно меньше в DOM, а затем создаем / уничтожаем объекты по мере необходимости. Кроме того, просто общая оптимизация javascript помогает.

Я думаю, что это грязный маленький секрет этих мобильных фреймворков. Когда вы подходите к ним об этом, их ответ заключается в том, что производительность браузера Android медленная, поэтому приложения будут медленными. Т.е. «не наша вина», но они продолжают изображать фреймворк, который отлично работает на всех платформах.

Для нас Sencha Touch 2 достаточно быстр, когда он дает нашим пользователям приличный опыт работы на устройствах Android, поэтому стоит огромная экономия времени и разработка приложений для туземцев для каждой платформы.

Чтобы уточнить, проблема с производительностью, которую вы видите, не имеет ничего общего с PhoneGap, это производительность браузера на устройствах. PhoneGap по существу просто обертывает WebView в собственной оболочке приложения. Мы видели проблемы с производительностью на Android при использовании как PhoneGap, так и собственной упаковки Sencha Touch.