building smaller apk file

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Tova

I already know about parameters for scons command, but I’m not sure how would I determine which modules to disable? And are there any other methods for reducing file size? What would be the lowest possible apk file size (if the exported project was just something trivial)?

:bust_in_silhouette: Reply From: Calinou

As of commit 3f76d2c2f, these are all the possible module flags (list generated with scons p=android -h:


module_assimp_enabled: Enable module 'assimp' (yes|no)
    default: True
    actual: True

module_bmp_enabled: Enable module 'bmp' (yes|no)
    default: True
    actual: True

module_bullet_enabled: Enable module 'bullet' (yes|no)
    default: True
    actual: True

module_csg_enabled: Enable module 'csg' (yes|no)
    default: True
    actual: True

module_cvtt_enabled: Enable module 'cvtt' (yes|no)
    default: True
    actual: True

module_dds_enabled: Enable module 'dds' (yes|no)
    default: True
    actual: True

module_enet_enabled: Enable module 'enet' (yes|no)
    default: True
    actual: True

module_etc_enabled: Enable module 'etc' (yes|no)
    default: True
    actual: True

module_freetype_enabled: Enable module 'freetype' (yes|no)
    default: True
    actual: True

module_gdnative_enabled: Enable module 'gdnative' (yes|no)
    default: True
    actual: True

module_gdscript_enabled: Enable module 'gdscript' (yes|no)
    default: True
    actual: True

module_gridmap_enabled: Enable module 'gridmap' (yes|no)
    default: True
    actual: True

module_hdr_enabled: Enable module 'hdr' (yes|no)
    default: True
    actual: True

module_jpg_enabled: Enable module 'jpg' (yes|no)
    default: True
    actual: True

module_mbedtls_enabled: Enable module 'mbedtls' (yes|no)
    default: True
    actual: True

module_mobile_vr_enabled: Enable module 'mobile_vr' (yes|no)
    default: True
    actual: True

module_mono_enabled: Enable module 'mono' (yes|no)
    default: False
    actual: False

module_ogg_enabled: Enable module 'ogg' (yes|no)
    default: True
    actual: True

module_opensimplex_enabled: Enable module 'opensimplex' (yes|no)
    default: True
    actual: True

module_opus_enabled: Enable module 'opus' (yes|no)
    default: True
    actual: True

module_pvr_enabled: Enable module 'pvr' (yes|no)
    default: True
    actual: True

module_recast_enabled: Enable module 'recast' (yes|no)
    default: True
    actual: True

module_regex_enabled: Enable module 'regex' (yes|no)
    default: True
    actual: True

module_squish_enabled: Enable module 'squish' (yes|no)
    default: True
    actual: True

module_stb_vorbis_enabled: Enable module 'stb_vorbis' (yes|no)
    default: True
    actual: True

module_svg_enabled: Enable module 'svg' (yes|no)
    default: True
    actual: True

module_tga_enabled: Enable module 'tga' (yes|no)
    default: True
    actual: True

module_thekla_unwrap_enabled: Enable module 'thekla_unwrap' (yes|no)
    default: True
    actual: True

module_theora_enabled: Enable module 'theora' (yes|no)
    default: True
    actual: True

module_tinyexr_enabled: Enable module 'tinyexr' (yes|no)
    default: True
    actual: True

module_upnp_enabled: Enable module 'upnp' (yes|no)
    default: True
    actual: True

module_vhacd_enabled: Enable module 'vhacd' (yes|no)
    default: True
    actual: True

module_visual_script_enabled: Enable module 'visual_script' (yes|no)
    default: True
    actual: True

module_vorbis_enabled: Enable module 'vorbis' (yes|no)
    default: True
    actual: True

module_webm_enabled: Enable module 'webm' (yes|no)
    default: True
    actual: True

module_webp_enabled: Enable module 'webp' (yes|no)
    default: True
    actual: True

module_websocket_enabled: Enable module 'websocket' (yes|no)
    default: True
    actual: True

module_xatlas_unwrap_enabled: Enable module 'xatlas_unwrap' (yes|no)
    default: True
    actual: True

Some of these modules refer to format support (such as module_webm_enabled), so you can disable those if you don’t use files in those formats in your project. Others refer to specific features like module_gridmap_enabled; you can disable those if you don’t use GridMaps in your project, for instance.