What is best practice to offer same App for low memory and high memory devices?

My datafield is at ~27kB, peak ~29kB. This causes memory crashs on watches with 28kB Memory for datafields, e.g. vivoactive4.

Question1: is there a table/overview of memory for all Garmin devices?

I could delete some functions from the datafield app,  to bring it down this way to 21kB. Then it runs on low memory devices.

Question2: do i need to upload to different apps to IQ store to go this way, or is it possible to keep code in 1 app in the store with a flexible memory consumption?

Top Replies

  • Question1: is there a table/overview of memory for all Garmin devices?

    As you're probably aware, this information is available in the CIQ device library (installed by the SDK manager),…

All Replies

  • We can close this, if found the exclude annotations in the jungle reference guide ;-)
    developer.garmin.com/.../

  • Question1: is there a table/overview of memory for all Garmin devices?

    As you're probably aware, this information is available in the CIQ device library (installed by the SDK manager), in the compiler.json file for each CIQ device. e.g. on Windows, the compiler.json file for vivoactive4 would be found at %appdata%\Garmin\ConnectIQ\Devices\vivoactive4\compiler.json

    {
        "alphaBlendingSupport": false,
        "appTypes": [
            {
                "memoryLimit": 524288,
                "type": "watchFace"
            },
            {
                "memoryLimit": 1048576,
                "type": "watchApp"
            },
            {
                "memoryLimit": 524288,
                "type": "widget"
            },
            {
                "memoryLimit": 32768,
                "type": "datafield"
            },
            {
                "memoryLimit": 524288,
                "type": "audioContentProvider"
            },
            {
                "memoryLimit": 65536,
                "type": "background"
            }
        ],
        ...

    (Note that the VM typically takes up a bit of memory that is not accounted for in the official memory limits. e.g. for vivoactive4, the official data field memory limit is 32 KB, yet the simulator only indicates 28 KB of total memory. Very old CIQ 1 devices such as FR235 typically do not have this overhead)

    You can also see it in the CIQ device reference page (also grouped by device).

    flocsy has a github repo which has CSV files with device memory limits grouped by app type and memory limit (as well as a script for you to generate this information yourself.)

    [https://github.com/flocsy/garmin-dev-tools/tree/main/csv]