In my previous post I showed the comparative ease with which the execution times of methods can be monitored using the Timer class of the Android logging framework. Apart from monitoring the time, the next obvious question on a mobile device is: how much power does my application/thread/instruction consume on execution?
Monitoring power consumption is, of course, not only interesting for my little application and ontology loading, but also for on-device data processing and reasoning. Particularly in the context of the internet-of-things, this will be very important: constantly sending data back and forth between a device and a server for data processing and retrieval of processed data will soon explode any network capacity we may have. On-device processing is one way of mitigating against this.
So I went hunting for some information concerning how power consumption can be monitored on Android devices and was somewhat disappointed with what I found. The bottom line is: there is nothing provided by the Android framework itself. Functionality along the lines of "Settings > ... > Battery Usage" are not programatically available via the official APIs.
There are a number of open-source and academic applications such as PowerTutor, but on the whole these seem to suffer from unreliable support and in many cases haven't been maintained for too long or are device specific.
if your Android device happens to run on a Qualcomm Snapdragon processor, you may be able to use the Trepn power monitoring tool provided by Qualcomm both as a .apk and a plugin to Eclipse. The only Android device I currently have is the 2012 Nexus 7, which runs on an NVIDIA Tegra 3 processor, though the 2013 model does indeed have a Snapdragon.
The most interesting tool I have seen so far - and I haven't had a chance to test it - is a commercial tool by Little Eye Labs, called - surprisingly - "Little Eye". The tools is free to evaluate for 30 days, but after that, will cost 50 USD PER MONTH for a single pro licence making it prohibitively expensive for a hobby programmer.
I haven't found much else - as always I am grateful for any comments and pointers to other solutions.