Minimum android version supported by ionicv2

tested with android 4.2. broke
4.4.x working but buggy
5.x works well
6.x haven’t tested…

this is just from my experience.

4 Likes

Remember that with the cordova-crosswalk plugin you will have newer chrome runtime embedded into your app and the min android version is 4.0

thx… wow… 4.2 broke … 4.4.x buggy lol…
a lot of users still running < 4.4

might be bit different if having crosswalk.
with crosswalk you’ll have much better coverage. including 4.2 and 4.0 even.

but your apk size will be 4 ~ 5 times bigger.

1 Like

I still think using crosswalk is inevitable…
without crosswalk on Android 4.4.2 (i’m using HTC one m7) it’s just sooooooo slow. i can’t use the app.
make me think hybrid app sucks… but with crosswalk i feel like using native app.

1 Like

Ionic 2 supports Android 4.4 and up, if you need to support older versions you could use Crosswalk:

Android 4.0 - 4.3 accounts for only a bit over 20% of the usage and will probably drop significantly in an year.

Well, this depends on the app size. AFAIK Crosswalk adds around 20MB to the APK size. Moreover many apps are taking this approach and the users are more or less used to it already. For all performance improvements and standards compliance that Crosswalk provides, IMHO it’s still a reasonable compromise. If you have app size constraints then you can take a look at Crosswalk Lite - it’s half the size but might be more difficult to install/configure.

3 Likes

Ionic actually supports all the android, but the thing is it uses webview which is supported by only android 4.4 and above.
you may not be able to see the Material design effects in 4.4 and below.
But to make ionic apps run smoothly on all the devices you can you Crosswalk plugin (but it will increase the size of your app).

an the users of android below 4.4 is very less(much less than 20%) and in an year or two they will be absolute so you dont have to worry much. :slight_smile:

1 Like

tested with 4.4.2 android, no material design effects either.
also with crosswalk had better performance.

crosswalk lite doesn’t reduce the size to half of the crosswalk. it reduces only like 5mb.

without crosswalk it’s around 4~ 5mb.
with crosswalk it’s around 20mb (is 4 - 5 times bigger).

1 Like

I haven’t tried it myself but at least it’s advertised this way:

Crosswalk Project Lite is approximately half the size of the regular Crosswalk.

Moreover in the future it should be possible to disable single features to reduce the size:

Long term, we would like to improve Chromium, Blink and Crosswalk to modularize its features, so that specific features (like WebRTC) can be turned on at the time the users build an APK.

IMHO it’s still incorrect to advertise it as 4-5 times bigger. Let’s say that the app is 20MB then the APK would be approx. 40MB, i.e. it’s 2 times bigger - so if someone has such an app he would think that with Crosswalk it’ll get 80-100MB (4-5 times bigger) which is incorrect. As Crosswalk has a fixed size of approx. 20MB I believe that mentioning that it adds ~20MB to the APK size is much closer to the truth.

Yeah. actually you are correct. Adds 20MB is the right approach to say.

I have tested crosswalk lite vs crosswalk with android 4.4.2 and 4.4.4.
without crosswalk, ionic 2 wasn’t functioning well so i would recommend to still use crosswalk to support 4.4.x versions.

Even though the apk size drastically increase, it’s not that bad since now a days device storage is getting larger and larger.

also, with Crosswalk Lite version, i was seeing crashes and when first launching it shows some processing from the crosswalk itself. In my opinion, showing those kind of thing to the end user is not a good thing.

my conclusion is to NOT use the Lite version but to use regular Crosswalk with Android.
If your app is supporting android version above 4.4.x then, you won’t need crosswalk.

Later when we don’t need to support android <= 4.4.x, APK size will drastically reduce. Thanks. Love Ionic 2!!

5 Likes

@ozexpert Thanks a lot for the detailed and informative reply - bookmarked!

1 Like

Thanks to Ionic guys. I actually showed my app developed with Ionic 2 to my app developer friends without telling them that it’s hybrid app. THEY DIDN’T NOTICE IT AT ALL~~~ yay!

Ionic v2 rocks! (I should also cheers to Angular 2).

4 Likes

I am using Android version 4.4.2 and ion-datetime giving me issues in display, and going to crosswalk is only option or is ionic team working on it to fix in future.

Thanks

It’s hard to say without providing some more details. It could be a device-specific problem as the one described in the following topic (i.e. a low-end device which is probably using a custom unsupported Android-mod). Or it could be a real bug (i.e. it’s easily reproducible on any device) in which case you could open an issue about it.

I’ve tried crosswalk now myself on an old nexus 7 (4.1.2 android) → works!
For all users which needs to access the filesystem to store or retrieve data, you need to care about the crosswalk webview.
Because if you install the crosswalk webview the filesystem access needs to be handled different.

    if (navigator && typeof(navigator.webkitPersistentStorage) != "undefined") {
    //Crosswalk filesystem
    var requestedBytes = 0;
    var isBrowser = true;
    if (isBrowser == true) {
      requestedBytes = 1024 * 1024 * 1024 * 2;
    }
    navigator.webkitPersistentStorage.requestQuota(
      requestedBytes, (grantedBytes) =>{
        windowObj.requestFileSystem(fileSystemType, grantedBytes, (_fs) => {
          this.initFSSuccess(_fs);
        }, () => {
          this.initFSError();
        });
      }, (e) => {
       
      }
    );
  }
  else if (windowObj && typeof(windowObj.webkitStorageInfo) != "undefined") {
    //Crosswalk filesystem
    windowObj.webkitStorageInfo.requestQuota(fileSystemType, 100 * 1024 * 1024, (grantedBytes) => {
      windowObj.requestFileSystem(fileSystemType, grantedBytes, (_fs) => {
        this.initFSSuccess(_fs);
      }, () => {
        this.initFSError();
      });
    }, (e) =>{
     
    });
  }
  else if (windowObj.requestFileSystem) {;
    // normal file access
    windowObj.requestFileSystem(fileSystemType, 0, (_fs) => {
      this.initFSSuccess(_fs);
    }, () => {
      this.initFSError();
    });
  }
  else {
    
  }

This 3 methods are needed because if you run on iOS or Windows-Phone you cant access the first two cases, just the third one (windowObj.requestFilesystem).

So far the app runs good on Android 4.1.2
Great work Ionic!

1 Like

I got a curious solution. First, here is my config:

Cordova CLI: 6.5.0
Ionic Framework Version: 2.1.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.4
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v6.9.4
Xcode version: Not installed

The crosswalk plugin, as discussed, adds to apk size, footprint and internal storage and decreases the performance. I was suffering with the white screen issue with a couple of devices in 4.4.2 and noticed that when you add the crosswalk plugin and use it running ionic build the contend of your project and how it is packaged changes but doesn’t change all back when ir is removed. It keeps generating two apks (x86 and arm7). So I did this:

Install the plugin
-> cordova plugin add cordova-plugin-crosswalk-webview

Use it, so it can download all dependencies and config your project
-> cordova build android

Remove it
-> cordova plugin remove cordova-plugin-crosswalk-webview

Make sure no module content stays back
-> rm -rf node_modules

Reinstall all your modules
-> npm install

Clean residues and check the state of your project
-> cordova clean

Now I have an apk without the issues of size, foorprint and storage that works in android 4.4.2.
Maybe Ionic team could investigate further and the community test this in previous android versions?

1 Like

6.x very nice
I have tested on 6.x and 7.0. its works fine but some feature doesn’t work like any (keypress) event on input.
this thing work fine on chromium but not on android

I think that keypress event is not working as from android 5 upwards.

Has someone found a solution to this issue?

Ashley

This is ionic docs link, there is also ionic v2 mentioned.

Ionic 1
Ionic V1 is focused on building native/hybrid mobile apps rather than mobile websites.

As such, our browser support tends to be whatever Web View API is available to native apps on a given platform. For Ionic 1x, that means UIWebView for iOS 7+, and Android 4.1 and up. We recommend using Crosswalk to improve performance on older devices.

Ionic 2
Ionic 2 is focused on building both native/hybrid apps through Cordova, as well as adding the ability for Progressive Web Apps and Electron .

The following OSs and browsers are supported:

iOS 8+
Windows 10 Universal App
Android 4.4+
Support can be pushed back to 4.1 if Crosswalk is used with Cordova

2 Likes

It’s working fine…thanks