App size is too large

Hi,

is there a reason/solution why the iOS app size is ~120MB (release) when the Android size is about 20MB? I’m using the libGDX framework.

Thanks,
Marius

Dear Marius,

A MOE application will be usually larger than its Android counterpart, because we have to include the Java VM (ART) and the Java class library in the app. On Android these components are included in the system image, and not in each APK.

To decrease this overhead, ProGuard can be used to remove the parts of the Java class library that are not used in the app. You can enable this using the following setting in build.gradle:

moe {
    proguardLevel 'all'
}

The default ProGuard level is app because it results in faster build times, so it is more suited for development.
You can find more details about ProGuard in MOE here.

Best Regards,
Gergely

Yes, this makes my app quite smaller.

Is it possible to enable multi dex for MOE builds, due to the Dex 64K methods limitation?

The MOE builds use multidex by default (the ‘all’ proguard mode would not work otherwise), so you should not need to set anything.

Okay, but my problem is, that I get a build error in the dex task:

UNEXPECTED TOP-LEVEL ERROR:
FAILED
java.lang.OutOfMemoryError: GC overhead limit exceeded

I have no idea how to heap size in the gradle file. I set it to min 1G and max 5G in the gradle.properties, but that didn’t take effect.

Dear Marius,

you might have this issue, please try the following solution:

Yes it’s working, thank you very much!