How would you design a robust analytics and event-tracking framework that batch-uploads user interactions without draining the device's battery?