Подтвердить что ты не робот

PhoneGap 1.4 wrapping Sencha Touch 2.X - Как насчет производительности?

Я создаю планшетное приложение с несколькими платформами, обертывающее его с помощью Phonegap 1.4, используя только его веб-просмотр, затем я работаю с магией с помощью рамки Sencha Touch 2. По мультиплатформенной я имею в виду iOS 5.X + и Android 3.0+ (на данный момент).

Это приложение отлично работает до сих пор, все его функции работают на обеих системах, но... На планшете Android (Samsung GalaxyTab) очень медленно. Что происходит? Могу ли я что-то сделать с этим, или просто ограничить андроид?

Спасибо

Рикардо Перре: http://edgecodetechology.blogspot.pt/


**** EDIT **** (я пытаюсь сделать этот пост несколько полезным для сообщества sencha)

Sencha Touch, как и многие другие Javascript Framework, не лучший пример производительности из-за самого javascript.

Тогда зачем использовать Sencha Touch?

  • В моем случае: Мультиплатформенный (iOS, Android, Windows Phone, Blackberry, Windows, Mac OSX, Linux. Общий доступ к 80-90% кода)

Mitigating performance issues due to lack of visual pre-process in Android systems:

  • Тяжелый визуальный процесс CSS3:

    • Избегать градиентов
    • Избегайте теней
    • Избегайте преобразований и анимаций
  • Хорошие методы MVC:

    • Не используйте больше просмотров и фактически показываете
    • Предварительная визуализация/Предварительная выборка данных, когда это возможно, чтобы избежать процесса визуализации и данных одновременно.
  • Для любых просмотров прокрутки на Android необходимо отключить прокрутку. Я тестировал множество приложений Sencha Touch 2 на устройствах Android, а чрезмерная прокрутка вызывает неприятные ощущения из-за задержек и задержек. (тестируется на Galaxy Tab, Nexus S и некоторых HTC) от Thiem Nguyen (я добывал ваши сообщения, извините, dude: P)

4b9b3361

Ответ 1

То же самое здесь. Я тестировал многие из своих приложений Sencha Touch 2 на Samsung GalaxyTab, и производительность действительно ужасна. Там факт (который, возможно, является частью фактической причины), что iOS делает много предварительных процессов и вычислений перед рендерингом, чтобы сделать его более гладким для пользователя, и в то время как Android имеет тенденцию визуализировать и обрабатывать одновременно на ходу.

В целом, можно сказать, что для всех кросс-платформенных мобильных приложений, построенных на Javascript, таких как Sencha Touch, производительность iOS значительно лучше, чем у Android. Тем не менее, команда Sencha Touch dev пытается изо всех сил улучшить это, надеюсь, в следующих выпусках было бы лучше. Вы можете увидеть эту статью о сравнении производительности iOS и Android.

http://www.sencha.com/blog/sencha-touch-2-developer-preview/

PS: Хотя это очень важно для ограничения ОС, вы также можете оптимизировать свое приложение, чтобы он лучше работал на устройствах Android. По моему опыту, наилучшей практикой является:

  • НЕ используйте CSS3 слишком много.
  • Держите DOM как можно меньше.

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

Ответ 2

Я вообще не разработчик phoneGap или Sencha, но я стараюсь не отставать от того, что касается производительности и эволюции браузеров.

У вас есть так много уровней абстракции (sencha touch, phonegap, android, webkit, fffuuu) для вашего приложения, что может быть очень сложно понять, где проблемы с производительностью.

Насколько я могу получить дизайн телефонных разговоров, он не встраивает какую-либо реализацию webkit, что он делает (на android), чтобы использовать android.webkit.WebView. Я обнаружил, что многие люди жалуются на то, как веб-просмотр получил ужасную производительность через браузер веб-браузера Android. это может быть трудно улучшить здесь, так как вы используете телефонную развязку, а испорченность с помощью sroid sroid может сделать вас переносимость переноса, если это важно для вас.

То, что я вижу в качестве проблемы с производительностью в телефонном разговоре, зависит не только от аппаратного обеспечения, но и от реализации браузера ОС.

Если вы хотите настроить производительность, вы можете улучшить код js/css. Это может быть просто, поскольку кеширование узлов DOM в js (запросы DOM медленны), поддерживать DOM минимально или может быть более сложным, поскольку поскольку телефонная книга нацелена на различные реализации браузеров, вам может потребоваться настроить ваш код на эти браузеры, чтобы улучшить производительность.

Ответ 3

Я не совсем уверен, связана ли проблема с ОС, как будто приложение работает на Android, iOS и т.д.

Если вы протестируете пример Sencha Touch 2 Kitchen Sink на аппаратном устройстве с низким и средним уровнем производительности, например Samsumg Galaxy, вы столкнетесь с небольшими проблемами производительности.

Однако, если вы перейдете на более совершенные аппаратные устройства, такие как HTC Desire 2 (что-то ближе к iPhone 4S), вы увидите, что производительность становится лучше.

Я не думаю, что Android имеет ограничения на Sencha Touch 2 относительно производительности по сравнению с iOS. Я просто думаю, что некоторые устройства лучше других (iOS всегда работает на высокопроизводительных устройствах, iPhone/iPad).

И для наших страданий люди склонны владеть более низкой ценой и аппаратными способностями.

Ответ 4

У меня есть несколько фундаментальных вопросов о производительности приложений на базе SenchaTouch. Пожалуйста, обратитесь к этой статье командой LinkedLN о том, как они улучшили производительность своего приложения HTML5 с помощью ручного кодирования DOM Manipulations: -

http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5

В контексте этой статьи я вижу две проблемы с Sencha Touch: -

  • Sencha Touch создает свой пользовательский интерфейс, конвертируя объекты javascript в Dom Nodes и добавляя их в Dom Tree. Chrome Tools покажет, что он добавляет относительно большое количество DIV и других элементов DOM в дерево Dom. Не повлияло бы это на производительность.

  • Большинство узлов Dom в интерфейсе Sencha создаются кодом Sencha API, а не разметкой. Если мы пишем код для непосредственного управления этими элементами Dom, можем ли мы быть уверены, что он не будет вызывать побочных эффектов?