【发布时间】:2010-12-15 17:15:08
【问题描述】:
是否有人使用过诸如 PhoneGap 或 Titanium Mobile 之类的“跨平台移动应用程序框架”?
与原生 Java(适用于 android)或 Objective-C(适用于 iPhone)相比,性能差异有多大?
【问题讨论】:
标签: android performance mobile
是否有人使用过诸如 PhoneGap 或 Titanium Mobile 之类的“跨平台移动应用程序框架”?
与原生 Java(适用于 android)或 Objective-C(适用于 iPhone)相比,性能差异有多大?
【问题讨论】:
标签: android performance mobile
在性能方面存在很大差异...但是有了一些知识...(阅读一个晚上)...您可以与它们作斗争并利用您在 HTML/JS/CSS 方面的知识来让应用程序快速启动和运行.
这里有一些掘金:
PhoneGap/Mobile Web 性能提示
* How Diary.com increased the performance of their PhoneGap app running Sencha: http://www.phonegap.com/2011/06/21/building-the-diary-com-ios-app-using-pg-sencha-touch/
* http://floatlearning.com/2011/03/developing-better-phonegap-apps/
* http://jslint.com/ - to debug your javascript
* http://zeptojs.com/ and http://xuijs.com/ - minimal alternative frameworks to jquery and jqtouch
* Disable the accelerometer and location http://blogs.nitobi.com/jesse/2009/10/28/running-jqtouch-in-phonegap/
* set “EnableAcceleration” to false in PhoneGap.plist
* set "AutoRotate" to false in PhoneGap.plist
* http://mir.aculo.us/2010/06/04/making-an-ipad-html5-app-making-it-really-fast/
* http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone
* Demo: http://cubiq.org/dropbox/clickdelay.html
* FastClick v TouchStart: http://groups.google.com/group/phonegap/browse_thread/thread/f5f5c78e26513821?pli=1
* http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
* http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
* http://www.developer.nokia.com/Community/Wiki/JavaScript_Performance_Best_Practices
* http://evolvingwe.com/building-an-iphone-app-part-3-7-dev-tips/
* http://evolvingwe.com/upgrading-to-phonegap1-0/
* VIDEO Performance Tips for Sencha Touch: http://vimeo.com/17882927
* It covers performance features in Sencha, which are great principles we can reapply. We may even be able to cut code from certain pieces of Sencha to reapply for Skej.
* It states that we MUST destroy anything that is not visible on the DOM. And that the DOM must be kept as small as possible at all times, with as few listeners as possible. (I.e attach one listener to the parent item of a list, rather than to each list item.)
* It also has practical CSS3 tips for me to apply... Basically, dont use many of the new transitions and shadows/round corners because the currently use CPU, and not yet GPU.
* Event Delegation in Sencha Touch: How to design lists with a single listener, and not one on every line. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
* Optimizing DOM Memory Usage in Sencha Touch: Sliding from a List to a Details panel and killing the list, and then sliding from Details to a List and killing the details panel. Minimizing elements on your screen, your DOM. http://www.sencha.com/blog/sencha-touch-optimizing-memory-usage/
* DESTROY ANYTHING THAT IS NOT VISIBLE ON YOUR DOM!
* Use CSS Animations instead of jQuery
* http://nyroo.com/l/B7UN5c
* http://www.ferretarmy.com/css-animation-examples/
* Be careful... these are tricky when they don't leverage the GPU, and bog down the CPU.
启用新功能
* Enable Retina Display: http://evolvingwe.com/create-retina-display-images-in-mobile-web-themes-and-phonegap-apps/
* Swipe to delete: http://www.codesta.com/blog/2011/5/23/sencha-touchphonegap-tips-and-tricks.html
* Disable accelerometer and location: http://iamcam.wordpress.com/2009/10/29/phonegap-up-to-speed/
* Cut jQuery and Hand-code: http://cubiq.org/do-you-really-need-jquery-for-mobile-dev
* Display Contact List in Mobile Safari: http://cubiq.org/contact-list-on-webkit-for-iphone
* iScroll4: Create a header, scroll within a fixed size div, pinch and zoom, pull up/down refresh. http://cubiq.org/iscroll-4 (Includes tips on rubber-band effect.)
* PhoneGap's GitHub repo: Includes interesting examples like DatePicker, SMSComposer, ApplicationPreferences, Splashscreen, NetworkActivityIndicator... https://github.com/phonegap/phonegap-plugins
架构
在 Ext JS 4 中构建您的应用程序:http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
【讨论】:
亲眼看看Phonegap应用程序的简单方法是简单地使用两部手机上的浏览器来查看您的应用程序,一个很棒的演示应用程序是jquery mobile demo,地址为http://jquerymobile.com/test/
我相信 Titanium 的速度更快,但代价是必须学习他们的 Javascript 框架,因为它确实可以编译为本机代码。
【讨论】: