Users expect apps to be responsive and fast, from app startup and throughout the entire app experience. After you[inspect](https://developer.android.com/topic/performance/inspecting-overview)your app for performance problems, you can fix any issues and improve your app's performance.

## Tools and libraries

Android provides multiple tools and libraries to continually improve the performance of your app in production, where it matters the most.

### Baseline Profiles

Implement Baseline Profiles into your app or library for the most efficient way to improve performance. It can significantly optimize app startup time, reduce slow rendering, and improve performance for end users. To learn more, see[Baseline Profiles](https://developer.android.com/topic/performance/baselineprofiles).

### Startup profiles

Startup profiles is an experimental feature that is similar to Baseline Profiles, but is applied differently and has distinct benefits. Whereas a Baseline Profile optimizes performance as the app is installed on a device, a startup profile is applied at compile-time. It gives the R8 shrinker hints to group commonly used classes together within the DEX file. This can reduce page faults during app startup, and therefore improve startup times. To learn more, see[DEX layout optimizations and startup profiles](https://developer.android.com/topic/performance/baselineprofiles/dex-layout-optimizations).

### App Startup library

The[App Startup library](https://developer.android.com/topic/libraries/app-startup)lets you further optimize the app startup experience. Both library developers and app developers can use the App Startup library to streamline startup sequences and optimize startup operations.

## Optimize for low-RAM devices

Performance improvements begin from the ground-up. By optimizing for entry-level devices, you can improve efficiency across all device categories. Users are more likely to encounter issues such as app startup latency, application not responding (ANRs), or app crashes when using memory-constrained devices. Develop, test, and benchmark your app with this market segment in mind to create a performant foundation for your app to build upon.

[Android (Go edition)](https://developer.android.com/guide/topics/androidgo)is a configuration of the Android platform OS, which provides an optimized experience for low-RAM devices. To learn more about improving stability and performance for entry-level devices, see[Optimize for Android (Go edition)](https://developer.android.com/guide/topics/androidgo/optimize).

## Solve common problems

If the available tools or libraries don't resolve your performance issues, we recommend checking for common problems and solutions in any of these categories:

- [App startup](https://developer.android.com/topic/performance/vitals/launch-time)
- [Slow rendering](https://developer.android.com/training/articles/perf-anr)
- [Memory](https://developer.android.com/topic/performance/memory-overview)
- [Battery and power](https://developer.android.com/training/monitoring-device-state/doze-standby)
- [App size](https://developer.android.com/topic/performance/reduce-apk-size)

## Additional resources

- [Background work overview](https://developer.android.com/guide/background)
- [Performance class](https://developer.android.com/topic/performance/performance-class)
- [App Standby Buckets](https://developer.android.com/topic/performance/appstandby)
- [App hibernation](https://developer.android.com/topic/performance/app-hibernation)