I should have made a stronger point: "power-aware" is _not_ a good
term for these applications. "power-enabled" would be better but
still not ideal. Maybe "power-permitted"? The definition is that
they are _permitted_ to do something (acquire suspend blockers), not
Arjan's point here is well taken. Even systems that always run on
external power have motivation for conserving energy (e.g., they may
I was agreeing with the requirement but disagreeing with the reason
given for it. Even when buffers are large enough that the danger of
overrunning them is infinitesimal, delays in input event delivery are
Besides, the Android kernel doesn't vary its behavior based on whether
the recipient is power-permitted or power-naive; it _always_ delivers
Then state it immediately after the definition as an implication of
No. There are _no_ requirements on power-permitted (or power-aware if
you prefer) applications, other than that the user decides to give it
the appropriate permission.
Internally, of course, Android may enforce this rule on their own
Change the last phrase to "regardless of the state of power-naive
Indeed! However, my observation is that many of the battery-powered
embedded folks are much more aggressive in pursuit of energy efficiency
than are most of the server/desktop/laptop folks. Both have motivation,
True, the difference between the two classes of applications is in
whether or not the application is permitted to process the event.
I added "and to minimize response latencies" to the requirement.