For the RLE compression, here is the logs for the updates sent for my menu screen, which has 8 animating lotties in those first 8 circles (attempting 60fps) plus a couple of small areas on the top line that update each second:
As you can see, it’s sending between 0.17 and 1.07 bytes per 2 byte pixel in that sample set, so it’s effective and low cost for this type of UI, even though it’s only updating small areas around the label and lottie animations. For the full screen (second set of logs below), with all that contiguous background color, it is significant savings.
[ +10 ms] flutter: INFO: Global: Bytes: 2072, pixels: 3136, bytesPerPixel: 0.6607142857142857
[ ] flutter: INFO: Global: Bytes: 2404, pixels: 3721, bytesPerPixel: 0.6460628863208815
[ ] flutter: INFO: Global: Bytes: 2588, pixels: 6561, bytesPerPixel: 0.39445206523395826
[ ] flutter: INFO: Global: Bytes: 308, pixels: 5041, bytesPerPixel: 0.061098988295973024
[ +58 ms] flutter: INFO: Global: Bytes: 2276, pixels: 6561, bytesPerPixel: 0.346898338667886
[ +2 ms] flutter: INFO: Global: Bytes: 2352, pixels: 3721, bytesPerPixel: 0.6320881483472185
[ +1 ms] flutter: INFO: Global: Bytes: 1468, pixels: 3136, bytesPerPixel: 0.46811224489795916
[ +2 ms] flutter: INFO: Global: Bytes: 2996, pixels: 3136, bytesPerPixel: 0.9553571428571429
[ +2 ms] flutter: INFO: Global: Bytes: 2248, pixels: 3136, bytesPerPixel: 0.7168367346938775
[ +2 ms] flutter: INFO: Global: Bytes: 2704, pixels: 3721, bytesPerPixel: 0.7266863746304757
[ +2 ms] flutter: INFO: Global: Bytes: 2516, pixels: 6561, bytesPerPixel: 0.3834781283340954
[ +8 ms] flutter: INFO: Global: Bytes: 732, pixels: 5041, bytesPerPixel: 0.14520928387224757
[ +1 ms] flutter: INFO: Global: Bytes: 1932, pixels: 2160, bytesPerPixel: 0.8944444444444445
[ +36 ms] flutter: INFO: Global: Bytes: 2288, pixels: 6561, bytesPerPixel: 0.34872732815119645
[ +1 ms] flutter: INFO: Global: Bytes: 2356, pixels: 3721, bytesPerPixel: 0.6331631281913465
[ +2 ms] flutter: INFO: Global: Bytes: 1444, pixels: 3136, bytesPerPixel: 0.4604591836734694
[ +6 ms] flutter: INFO: Global: Bytes: 3376, pixels: 3136, bytesPerPixel: 1.0765306122448979
[ ] flutter: INFO: Global: Bytes: 2520, pixels: 3136, bytesPerPixel: 0.8035714285714286
[ ] flutter: INFO: Global: Bytes: 3024, pixels: 3721, bytesPerPixel: 0.8126847621607095
[ +2 ms] flutter: INFO: Global: Bytes: 2516, pixels: 6561, bytesPerPixel: 0.3834781283340954
[ +2 ms] flutter: INFO: Global: Bytes: 916, pixels: 5041, bytesPerPixel: 0.18170997817893275
[ +40 ms] flutter: INFO: Global: Bytes: 2324, pixels: 6561, bytesPerPixel: 0.35421429660112785
[ +2 ms] flutter: INFO: Global: Bytes: 2460, pixels: 3721, bytesPerPixel: 0.6611126041386725
[ +2 ms] flutter: INFO: Global: Bytes: 1448, pixels: 3136, bytesPerPixel: 0.461734693877551
[ +1 ms] flutter: INFO: Global: Bytes: 3512, pixels: 3136, bytesPerPixel: 1.1198979591836735
[ +2 ms] flutter: INFO: Global: Bytes: 2604, pixels: 3136, bytesPerPixel: 0.8303571428571429
[ +2 ms] flutter: INFO: Global: Bytes: 3188, pixels: 3721, bytesPerPixel: 0.8567589357699543
[ +3 ms] flutter: INFO: Global: Bytes: 2480, pixels: 6561, bytesPerPixel: 0.377991159884164
[ +8 ms] flutter: INFO: Global: Bytes: 864, pixels: 5041, bytesPerPixel: 0.1713945645705217
– Full screen (800 * 480):
[ +30 ms] flutter: INFO: Global: Bytes: 57208, pixels: 148800, bytesPerPixel: 0.38446236559139785
[ +31 ms] flutter: INFO: Global: Bytes: 51012, pixels: 148800, bytesPerPixel: 0.3428225806451613
[ +17 ms] flutter: INFO: Global: Bytes: 34352, pixels: 86400, bytesPerPixel: 0.3975925925925926