Horrible performance on Android


#1

I just tested my app on Android and the performance is a lot worse than IOS. I am considering giving up on Meteor for mobile development because of this bad performance in Android. More specifically, buttons do not act after a few hundreds of miliseconds, laggy screen transitions, etc.

Big question: would this problem go away if I used Crosswalk?


#2

This doesn’t sound like a Meteor-specific problem.

Are you using the Android emulator to test? Because that is known to have fairly bad performance. Or are you running on a device? There is much variety among Android devices, and performance will depend on the hardware specifications and software versions.

Crosswalk could improve browser performance for devices running older Android versions.


#3

Sorry, yes you’re right. I am using Galaxy 5 with the latest version of Android, so I don’t think the hardware of software is the problem. I thought this problem is related to Meteor because being able to port web apps to mobile seamlessly is one of the big selling points of Meteor. I was very happy with its performance on iOS with Meteoric (Meteor + ionic) and quickly disappointed when I saw the lagging performance on Android. However, I believe there must be something that I can do to better the situation, because I know there are production apps built with Cordova. I wanted to give it a try and ask here to see if anyone encountered a similar problem as mine and solved it :smile:


#4

All performance related issues that happened to me on mobile were generally related with a bad data subscription ou internet connection. I’ve always used crosswalk because it turned out to be indispensable when targeting a vast number of Android versions/devices.


#5

What about sliding animations? When you transition from one page to another, does the sliding animation seem laggy for you?


#6

I haven’t used Meteoric on a production app yet, but on all my tests, it seemed ok.


#7

I haven’t used Meteoric yet but have used Ionic (sans Meteor). I found that Ionic had acceptable performance but not quite as silky as native.

Can you download the Blonk app and try out that, particularly the swiping? I ended up rolling my own CSS because at the time none of this existed (Ionic, Meteoric, etc…). This is silky smooth on iOS and pretty much just as smooth on most KitKat and Lollipop phones.

Crosswalk will deliver a huge performance boost to pre-kit-kat phone and also adds stability but if you don’t create separate APKs it can be very large for newer devices.

More specifically, buttons do not act after a few hundreds of milliseconds, laggy screen transitions, etc.

This problem specifically sounds like the double click issue that used to plague mobile web apps. The phone tries to wait to see if it’s going to double tap. Checkout this article: http://blog.ionic.io/hybrid-apps-and-the-curse-of-the-300ms-delay/

Also try turning off all drop shadows… this can cause major slowdowns when animated.

You’ll need to render a frame in something like 16ms in order to hit your 60fps target… this means you may need to change how things render in order to optimize… very app specific. For instance the job cards in blonk are only ever rendering 3 cards at any given time. Rendering tens or hundreds is not do-able without getting choppy.

Hope this helps!


#8

have you include the fastclick package? that should remedy that issue, unless it is a system lag issue.