Client-Side Analytics Data Collection via Thread Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developers of mobile applications face challenges in gaining insights into the runtime behavior and user interaction with their applications due to limited client-side data collection capabilities, which are essential for improving application functionality and user experience, while also needing to conserve battery power and reduce performance impact on portable devices.
Innovation Solution
A portable computing device with methodologies for client-side analytic data collection, involving event logging, serialization, encryption, compression, and secure storage in volatile and non-volatile memory, with separate threads for log rotation and upload to minimize performance impact and conserve battery life.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If client-side analytic data collection is implemented in mobile applications, then developers gain insight into application behavior and user interaction, but device performance is impacted and battery power is consumed
Solution Approach 1:
The patent segments the data collection process into separate threads (log rotation thread and data upload thread) that operate independently from the main application threads. This segmentation allows analytic data collection to proceed without blocking or significantly impacting the performance of user-facing application functions, thereby resolving the contradiction between gaining application behavior insight and maintaining device performance.
Solution Approach 2:
The patent introduces an intermediary analytics system that collects, buffers, and processes data locally before uploading. This intermediary layer (comprising the analytics module, log rotation thread, and upload thread) acts as a buffer between the application and the data collection overhead, minimizing the direct performance impact on the main application while still enabling comprehensive data gathering.
2Loss of information
If client-side analytic data collection is implemented in mobile applications, then developers gain insight into application behavior and user interaction, but battery power is consumed
Solution Approach 1:
The patent implements periodic action through the log rotation thread that operates at scheduled intervals rather than continuously. The thread rotates log files periodically and uploads data in batches rather than continuously transmitting, reducing the overall power consumption while still maintaining comprehensive data collection capabilities.
Solution Approach 2:
The analytics system performs self-service by automatically managing its own data collection, rotation, and upload operations through dedicated background threads. This self-managing approach optimizes resource usage by only activating data upload operations when appropriate conditions are met, thereby reducing unnecessary battery consumption while maintaining data collection effectiveness.
3Loss of information
If analytic data is stored and processed on the device, then application behavior can be analyzed, but device memory and processing resources are consumed
Solution Approach 1:
The patent extracts the heavy processing and storage operations into separate background threads that run independently from the main application. By taking out the data collection, rotation, and upload operations into dedicated threads, the system manages memory and processing resources more efficiently without compromising the main application's performance or user experience.
Data Source
AI summary
A portable computing device with methodologies for client-side analytic data collection are described. In one embodiment, for example, a method performed by a portable computing device having volatile and non-volatile memory includes obtaining a plurality of events to be logged; serializing the events to be logged; storing the serialized events in the volatile memory; encrypting the serialized events to produce serialized and encrypted events; storing the serialized and encrypted events in the non-volatile memory; decrypting the serialized and encrypted events to produce serialized and decrypted events; storing the serialized and decrypted events in the volatile memory; compressing the serialized and decrypted events to produce compressed, serialized, and decrypted events; encrypting the compressed, serialized, and decrypted events to produce encrypted, compressed, and serialized events and storing the encrypted, compressed, and serialized events in the non-volatile memory.


