While performing more demanding tasks on my phone I would often notice performance dropping as the device heated up. Verifying that wasn't that easy, since most existing applications that can read thermals on Android wouldn't work in the background, while performing the demanding task.
I was looking for a solution similar to something like the RivaTuner Statistics Server (RTSS) on desktops, where the data is displayed as an overlay over other applications.
The final application is able to
monitor all thermal sensor exposed through common methods
monitor CPU frequencies for each core
display the data live as an overlay over other applications
can work without root (on supported devices)
can fallback to using root where required
allows the user to customize the look of the overlay
The application uses a background service that retrieves the data periodically, keeping file handles open where possible to use as little resources as possible, having no noticable impact on battery.
The code and latest build are available on GitHub: https://github.com/saschabrunner/Android-Thermal-Monitor
I created this application as part of my final year project for my Bachelor's degree. As part of this, I wrote up a report describing the research and project planning/management techniques used.
I researched multiple ways of reading thermal data on Android devices and decided to focus on one standardized way to read this data on Linux devices. Through this research I learned a lot of things about efficient code and the importance of thermals on many modern devices.
The full project report can be found here: https://drive.google.com/file/d/1vikLH1YKDeW9406ko2jzoIm8f_Jbnyt4/view?usp=sharing