Hi Team,
I'm experiencing a consistent and reproducible app freeze that occurs exclusively on the CIQ 4.0 devices. The same application code runs perfectly on the Fenix 6 Pro simulator and other older devices.
System & Bug Details
-
Device: Fenix 7 Pro (Simulator)
-
Connect IQ SDK Version: 8.2
-
The Issue: The simulator completely freezes for several minutes after any
WatchUi.requestUpdate()
is called. My debugging shows that myonUpdate()
method completes successfully, and the freeze happens immediately after it returns, suggesting an issue in the system's rendering pipeline or Garbage Collector (GC).
The freeze happens when a pageview with Bitmap is shown.
Key Debugging Findings
We have performed extensive debugging and have confirmed the following:
-
Simple apps work: Basic SDK samples and a minimal test app with the same core structure work correctly. This proves that drawing bitmaps or the general app structure is not the fundamental problem.
-
It is not the amount of free memory: We refactored the entire application to use a highly memory-efficient data structure ("Array of Arrays" instead of "Array of Dictionaries"), which cut the main data object's memory usage by over 50%. Memory dumps confirmed plenty of free memory. This refactoring did not solve the freeze.
-
The trigger is app complexity: The freeze only occurs in our full, real-world application, which has multiple views, loads several JSON and bitmap resources, and has a more complex object graph.
One strange thing I noticed comes from comparing the compiler.json
files from the SDK:
-
Fenix 6 Pro
watchApp
Memory Limit: 1,310,720 bytes -
Fenix 7 Pro
watchApp
Memory Limit: 786,432 bytes
The Fenix 7 Pro simulator is configured with significantly less memory for a watch app than its predecessor. This appears to be the root cause. While a simple app works fine, a complex app's total "weight" (even with low data usage) seems to put the Fenix 7 Pro simulator's memory manager or GC into a frozen state that it cannot recover from quickly.
Could the team please investigate this memory limit discrepancy for the Fenix 7 Pro simulator? It seems to be incorrectly configured and is making it very difficult to develop complex applications for this device family.
I am happy to provide the source code for the full failing app and the working minimal app to help with debugging.
Thank you.
BTW, the app I'm developing is a UltraTrail companion, if someone has a Fenix 7 or newer and want to test the app on real watch I'll gladly send the APP compiled for a Trail of your choice if a GPX track is provided.