YABA (Yet Another Battery App) is designed to be a simple way to keep track of your battery status in whatever way is best for you: Home Screen Widget, Notification Bar, the main application screen, or any combination thereof.
HOW IT WORKS:
The Android OS sends out a broadcast to the system whenever the battery state changes. YABA listens for that broadcast and passes the information on to you via the options you have enabled in the Settings. You can configure YABA to listen for system broadcasts in two ways: You can tell YABA to run a service in the background that will hear and respond to the system broadcasts immediately (more resource intensive since it will always be running when you have the Home Screen Widget, alerts, or notifications enabled), or you can specify an interval of time for it to reach out and grab the battery status information from the latest system broadcast (more resource friendly because the service will shut down as soon as it retrieves the latest information).
The YABA main screen offers you a Controls view that can be used to dynamically adjust screen brightness and toggle Autobrightness mode, WiFi, BlueTooth, GPS, and background Data Syncing. The Settings screen allows you to enable and configure alerts and notifications based on battery status, as well as schedule automatic Autobrightness mode and the disabling of WiFi at a particular battery level. The Home Screen Widget can be configured to display the battery level percentage or just the graphic.
Most of the permissions required by YABA are self-explanatory (i.e. toggling BlueTooth, WiFi and GPS states requires permission to access those resources). The "modify global system settings" permission is a little more vague. YABA needs this to adjust the screen brightness. Without this permission, it could only adust the brightness for the YABA screens, and not for the rest of the system (i.e. when you exit YABA). YABA also needs the "automatically start at boot" permission so that when the phone is restarted, it can reschedule the intervals to check battery status if you aren't running the background service (configurable in the Settings screen).