Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Phonegap - cordova is laggy and slow on android and iOS devices

I just now started with my first PhoneGap project using zend studio. But, after i build and deploy it, the application is quite slow. Both on android and iOS. The scrolling is lagging, and if i press a button, it's slow to goto the next page. Is there any way to improve it's performance ? Thanks in advance

like image 558
Sibi Avatar asked Sep 16 '13 10:09

Sibi


4 Answers

Since version 4.0.4, there is a known "bug" where if hardware acceleration is on, it will actually slow down screen redraw events. This is why scrolling is slow.

On the Samsung Galaxy III and IV, canvas would not render anything at all until we turned off hardware acceleration. Once we did canvas drawing performed well.

You can turn off hardware acceleration for your webview with this line of code in your app java file:

super.appView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

This may be fixed as of 4.4 (KitKat uses Chromeview rather than webview).

like image 134
Peter Drinnan Avatar answered Jan 04 '23 01:01

Peter Drinnan


Yes,you can add fastclick.js file to your html file.

like:

<script src="../fastclick.js"></script>

& refer this documentation to improve your phonegap app.

like image 22
Bhoomika Brahmbhatt Avatar answered Jan 03 '23 23:01

Bhoomika Brahmbhatt


Several reasons could be the root cause. You should give more info to help you further.

Possible quick and simple solutions. A) disable your page transitions and check the effect.

What kind of operations are you performing on your page? Are you using additional libraries? I am not familiar with Zen studio, but how are ypu building your UI?

The scroll could be slow or lagging if you are scrolling over a list or buttons or links and in each touch the page is triying to react to change to the hover state but it is not fast enough to match the scrolling speed. Once I had that problem and disable the hover state and the scroll speed improved a lot. Double check that in the meantime.

like image 26
VicM Avatar answered Jan 03 '23 23:01

VicM


In Android KitKat you can use DevTools to debug performance of your application. This is a great video to get to grips with the tools: https://developers.google.com/live/shows/840309825

You should experiment with turning off hardware acceleration on the WebView, but would recommend experimenting on Pre-KitKat and KitKat seperately. The KitKatWebView is based on Chrome and as a result has very different performance characteristics.

like image 32
Matt Gaunt Avatar answered Jan 04 '23 01:01

Matt Gaunt