Android Canvas: Building one of the worlds largest Interactive DataViz exp.
summary
A research app called VizInteract runs on an 80" 4K surface and actually works end to end using Android-x86 + PQ Labs IR overlay to run Oreo and support 12 touch points. Implementation abandons chart libs and webviews for a custom Canvas/SurfaceView with a parallel transformation matrix, heavy use of canvas save/restore, region hit tests, and threaded data processing. Kernel driver tweaks reduce jitter and latency but rotation/velocity scaling still needs tuning; PQ Labs driver patch lands upstream for android-x86.
AI-written summary · about
chapters (44)
- 0:00Introduction
- 3:40Device Support
- 4:03Demo
- 5:14Charting Libraries
- 6:22Architecture
- 6:54Learnings
- 7:23Save and Restore
- 7:40Drawing
- 8:48Saving and restoring balance
- 9:34Saving and restoring stack
- 9:58Undo operations
- 10:25List operations
- 11:01Transformation Matrix
- 12:07Canvas Parent View
- 12:29Local Coordinate System
- 13:01Map Points Helper
- 13:24Transform Matrix
- 14:52Canvas Scale Dip
- 16:05Region Objects
- 16:35Scaling
- 17:08Graphics Libraries
- 18:29Data Processing
- 18:56Surface View
- 19:10Locking
- 19:55Surface Holder
- 20:43Slide
- 21:13TextView
- 22:19Android X86
- 24:08Kernel module hack
- 24:58Device driver research
- 26:09Multitouch driver research
- 27:20Input parameter fuzziness
- 27:31Input parameter noise
- 28:31Software considerations
- 28:51Screen size
- 29:17Touch jitter
- 30:06Touch jitter hack
- 30:47Scaling while rotating
- 31:26Scaling between pointer indices
- 31:40Double buffering
- 31:59Primitive count
- 32:44PQ Labs patch
- 33:17Announcement
- 34:37Questions
related talks
37mBuilding One of the World's Largest Interactive Data Visualisation Experiences
01h 01mAn Android Retrospective
37mAndroid Industrial: Real-time data visualization
40mAndroid Large Screen:How your app can power a workstation
13mFrom Dashboard to Driver Display
16mAndroid Graphics
18mAdvanced Android Canvas APIs
49mCustom Drawing with Canvas
