Optimize for Android (Go edition)
Stay organized with collections
Save and categorize content based on your preferences.
Android (Go edition) has a rapidly growing user base, and with that comes the
need to optimize existing applications to perform well on these low-RAM devices.
Some of the most common challenges around this type of development requires
limiting some app features or capabilities, improving startup time, and handling
memory pressure within your app. That's where optimizing your app for Android
(Go edition) can help.
Approach
Follow the steps below before beginning your app optimization approach. This
guidance helps establish a baseline for identifying potential areas for
improvement and how to resolve your findings.
Phases |
Description |
Define |
Before starting any optimization effort, it's important to define Key
Performance Indicators (KPIs) around areas of improvement that you're targeting
for your app. Some common improvement areas include app startup latency, app
crash rate, or application not responding (ANRs).
Once these KPIs have been
defined, you should establish target thresholds from a minimum user experience
and benchmarking perspective, balancing user experience and technical
complexity.
|
Breakdown |
It's recommended to break these improvement areas into individual signal
metrics. For example, app crash rates can be categorized granularly into reasons
for the crash — such as unhandled errors, high memory usage, or ANRs. |
Benchmark |
Next, you can benchmark the targeted improvement area to identify current
performance. If your targets aren't met, try to identify the bottlenecks by
looking at individual breakdowns.
|
Repeat the process |
After optimizing certain bottlenecks, repeat the benchmarking
process to view potential improvements. If your pre-defined KPI targets
aren't met, then you can repeat the process for a second iteration.
|
Add regular regression tests |
Regular regression tests can run at any frequency you desire for your app to
identify regressions against your KPIs. It's more efficient to identify and
cut off any regressions or bugs before they make their way into your codebase.
Don't publish any changes that fail your KPI goals unless you make the decision
to update your KPI targets.
|
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2023-05-09 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-05-09 UTC."],[],[],null,["# Optimize for Android (Go edition)\n\nAndroid (Go edition) has a rapidly growing user base, and with that comes the\nneed to optimize existing applications to perform well on these low-RAM devices.\nSome of the most common challenges around this type of development requires\nlimiting some app features or capabilities, improving startup time, and handling\nmemory pressure within your app. That's where optimizing your app for Android\n(Go edition) can help.\n\nApproach\n--------\n\nFollow the steps below before beginning your app optimization approach. This\nguidance helps establish a baseline for identifying potential areas for\nimprovement and how to resolve your findings.\n\n| Phases | Description |\n|------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Define | Before starting any optimization effort, it's important to define Key Performance Indicators (KPIs) around areas of improvement that you're targeting for your app. Some common improvement areas include app startup latency, app crash rate, or application not responding (ANRs). \u003cbr /\u003e Once these KPIs have been defined, you should establish target thresholds from a minimum user experience and benchmarking perspective, balancing user experience and technical complexity. |\n| Breakdown | It's recommended to break these improvement areas into individual signal metrics. For example, app crash rates can be categorized granularly into reasons for the crash --- such as unhandled errors, high memory usage, or ANRs. |\n| Benchmark | Next, you can benchmark the targeted improvement area to identify current performance. If your targets aren't met, try to identify the bottlenecks by looking at individual breakdowns. |\n| Repeat the process | After optimizing certain bottlenecks, repeat the benchmarking process to view potential improvements. If your pre-defined KPI targets aren't met, then you can repeat the process for a second iteration. |\n| Add regular regression tests | Regular regression tests can run at any frequency you desire for your app to identify regressions against your KPIs. It's more efficient to identify and cut off any regressions or bugs before they make their way into your codebase. Don't publish any changes that fail your KPI goals unless you make the decision to update your KPI targets. |"]]