A computer implemented method, the method comprising: receiving a call from an application via an application program interface, the call indicating a state of the application; determining, based on the call, an energy consumption reducing action for reducing the energy consumption of hardware on which the application is running; and executing the energy consumption reducing action; wherein determining the energy consumption reducing action for reducing the energy consumption of hardware on which the application is running comprises the steps of: determining whether multiple conflicting actions are to be executed simultaneously at least in part, the multiple conflicting actions resulting from state changes of the application or of different applications running on the hardware; and if it is determined that the multiple conflicting actions are not to be executed simultaneously, determining, by looking up a default setting for the state of the application, the energy consumption reducing action to be a first action; and if it is determined that the multiple conflicting actions are to be executed simultaneously, determining, by looking up alternative settings, the energy consumption reducing action to be a second action during an overlapping time period in which the multiple conflicting actions are executed simultaneously. receiving a call from an application via an application program interface, the call indicating a state of the application; determining, based on the call, an energy consumption reducing action for reducing the energy consumption of hardware on which the application is running; and executing the energy consumption reducing action; wherein determining the energy consumption reducing action for reducing the energy consumption of hardware on which the application is running comprises the steps of: determining whether multiple conflicting actions are to be executed simultaneously at least in part, the multiple conflicting actions resulting from state changes of the application or of different applications running on the hardware; and if it is determined that the multiple conflicting actions are not to be executed simultaneously, determining, by looking up a default setting for the state of the application, the energy consumption reducing action to be a first action; and if it is determined that the multiple conflicting actions are to be executed simultaneously, determining, by looking up alternative settings, the energy consumption reducing action to be a second action during an overlapping time period in which the multiple conflicting actions are executed simultaneously. determining whether multiple conflicting actions are to be executed simultaneously at least in part, the multiple conflicting actions resulting from state changes of the application or of different applications running on the hardware; and if it is determined that the multiple conflicting actions are not to be executed simultaneously, determining, by looking up a default setting for the state of the application, the energy consumption reducing action to be a first action; and if it is determined that the multiple conflicting actions are to be executed simultaneously, determining, by looking up alternative settings, the energy consumption reducing action to be a second action during an overlapping time period in which the multiple conflicting actions are executed simultaneously.