Ionic version: (check one with "x")
[ ] 1.x
[ ] 2.x
[x ] 3.x
I'm submitting a ... (check one with "x")
[x ] bug report
[ ] feature request
[x ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
When running an Ionic 2 app in Kitkat version 4.4.2 performance is terrible. Pretty much not usable, is this normal? I have had an ionic 1.3 app built in Ionic and on kit Kat and was much more responsive.
For example - I can't even swipe to pull out the side menu, it doesn't work at all. Maybe 1 out of 100 times it will start to pull out. Page loads are extremely slow.
I installed CrossWalk-Webview and it fixes all these problems, but wondering why its so slow VS the previous version of ionic 1.3? Crosswalk is no longer maintained and adding a huge overhead to the app.
Expected behavior:
Performance and usability in early versions of Android, seems a lot of people are still running KitKat.
Steps to reproduce:
Galaxy Tab running version 4.4.2 of KitKat install Ionic.
$ ionic start mySideMenu sidemenu.
Run on Device.
Try swiping out the menu and it never comes out.
Related code:
Its seems your conference demo app is also using CrossWalk, so wondering if this is the expected behavior of Ionics current version?
Other information:
My Ionic Info: Maybe I am missing something here?
ordova CLI: 6.5.0
Ionic Framework Version: 3.1.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.6
ios-deploy version: 1.9.1
ios-sim version: 5.0.13
OS: macOS Sierra
Node Version: v7.8.0
Xcode version: Xcode 8.3.2 Build version 8E2002
Well it is a 3-year old operating system; it's like running an app on an iOS 7 iPhone 4S or 5, it's not going to be great...
Did you run your build/run command with --prod?
Also 1.3 uses AngularJS whereas Ionic 2/3/+ use Angular so it's totally different under the hood as well. It would be the same as trying to run Crysis on a machine made 3 years prior to release.
Hello @pixelone , thanks for opening an issue with us and thanks for your concern about perf on old Android. So Android before 4.4.4 has always been a struggle for us performance wise. Android before 4.4.4 used something called the Android webview which was based on the old Android browser. This webview has a few challenges:
In Ionic 1 we had a bunch of hacks that were specific to this old Android webview like JS scrolling that although it minimally helped performance on old Android, caused performance issues on newer Android which does not need things like JS scrolling. Because of the dominance of newer android now (even my 1st gen Moto G got updated to Android 5.x) we made the decision with Ionic to not use hacks for android that compromise newer Android and instead urge developers to use crosswalk on Android before 4.4.4. While crosswalk is not ideal (it does add a good bit of size to an apk), and it is not actively updated anymore, it is still a better solution for Android < 4.4.4 than the stock android webview that comes with those versions of Android. Also, it does take a little bit of set up, but the ideal solution for Android is to set up a dual APK build which uses crosswalk for < 4.4.4 and does not use crosswalk for Android 4.4.4 and up.
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.
Most helpful comment
Hello @pixelone , thanks for opening an issue with us and thanks for your concern about perf on old Android. So Android before 4.4.4 has always been a struggle for us performance wise. Android before 4.4.4 used something called the
Android webviewwhich was based on the old Android browser. This webview has a few challenges:In Ionic 1 we had a bunch of hacks that were specific to this old Android webview like JS scrolling that although it minimally helped performance on old Android, caused performance issues on newer Android which does not need things like JS scrolling. Because of the dominance of newer android now (even my 1st gen Moto G got updated to Android 5.x) we made the decision with Ionic to not use hacks for android that compromise newer Android and instead urge developers to use crosswalk on Android before 4.4.4. While crosswalk is not ideal (it does add a good bit of size to an apk), and it is not actively updated anymore, it is still a better solution for Android < 4.4.4 than the stock android webview that comes with those versions of Android. Also, it does take a little bit of set up, but the ideal solution for Android is to set up a dual APK build which uses crosswalk for < 4.4.4 and does not use crosswalk for Android 4.4.4 and up.