Google has improved Android features over the years and every new version came with some improvement. Android 13 introduced some new features that have enhanced performance and battery usage. The battery capacity for android devices has been increased by vendors, but the software role is as much as important as the hardware is. Then, Google has been trying to provide better battery management. Battery management has been tied to process/services management and we’re going to cover both of them here. I discussed the other improvements such as security & privacy, user interface and etc in separate posts. Let’s discuss some Android 13 performance improvements.
Stop foreground service via notifications
This new feature lets users stop Foreground Services (FGS) from the notification panel. A list of apps that run foreground services and are labelled as Active apps with a stop button is accessible from the notification panel. By stopping the app the following actions occur:
- The entire app will be stooped and removed from memory. ( Not only the FGS)
- The app’s activity back stack will be removed by the system.
- Any notification associated with FGS will be removed.
- But the app won’t be removed from history.
- Scheduled jobs are preserved.
- Alarms are preserved.
- if there’s any media playback it will be stopped.
There’re 2 exemptions. Some types of apps won’t e listed in the FGS list and some of them won’t have any stop button that let users stop them.
- System apps, safety apps and devices in demo mode are exemptions to e listed in the FGS list.
- Device owner apps, profile owner apps, persistent apps and the apps having ROLE_DIALER role won’t have the stop button.
Android 13 can estimate & prefetch the next job
Android 13 tries to determine the next job and sign it as the prefetch through JoScheduler. So, apps can use prefetch jobs for any work that they want to be done prior to the net launch.
Battery life management
App Standby Bucket was introduced in Android 9 helping the system prioritize the app’s request. There’re 5 priority buckets (Active, Working Set, Frequent, Rare, Restricted). The system decides how an app should be put into a priority bucket based on how recently and how frequently an app has been used. Restricted priority has been added to Android 12. In the conditions below an app qualified to be placed in Restricted:
- The user doesn’t interact with your app for a specific number of days. For Android 13 it’s 8 days.
- Invoking an excessive number of broadcasts and binding during 24H.
There are some exemptions from the conditions above:
- Companion device apps
- Device Owner apps
- Profile owner apps
- Persistent apps
- Devices in Demo mode
- VPN apps
- ROLE_DIALER apps
- etc.