Process

Shipping on Android: The Device Fragmentation Survival Guide

Android fragmentation is manageable once you decide what you support. Here is how to pick a device matrix, set a floor, and test properly without buying forty phones.

Vectra Play 7 min read
An Android phone

Android fragmentation breaks four things: performance on weak hardware, layout on unusual screens, graphics on specific chipsets, and behaviour across operating system versions. Deciding your minimum specification early converts an unbounded problem into a testable one. A matrix of five real devices covers most of it.

Why this matters

Android reaches most of the world's mobile players, and a large share of them are on hardware several years old.

A game tuned on a recent flagship can be unplayable on the devices that make up the bulk of its installs, and the resulting reviews arrive before anybody diagnoses the cause.

Fragmentation is manageable. It is only overwhelming when the supported range was never defined.

What fragmentation actually breaks

Four categories, in order of how often they cause problems.

  1. Performance. Older chips, less memory, and aggressive thermal limits.
  2. Layout. Aspect ratios from squarish to very tall, plus notches, punch holes, and rounded corners.
  3. Graphics. Different GPU families with different driver behaviour, particularly around shaders and compression formats.
  4. Platform behaviour. Memory management, background rules, permissions, and back navigation vary across versions and manufacturers.

Notice that art quality is not on the list. Fragmentation problems are engineering and layout problems.

Fragmentation is unbounded until you write down a floor. After that it is a test plan.

Choosing a device matrix worth testing

Five physical devices give good coverage for a casual mobile game.

SlotWhat it represents
Floor deviceThe oldest, weakest hardware you commit to supporting
Volume deviceA mid-range phone typical of your main markets
Tall screenAn extreme aspect ratio with a notch or cutout
Alternative GPUA different chipset family from the others
Current flagshipThe upper bound, and what reviewers will use

Two rules. Buy the floor device first, because it drives more decisions than the rest combined. And choose the volume device from your actual install data once you have some, rather than from general market data.

Emulators are useful for layout and useless for performance and thermal behaviour. Both matter, so physical hardware is not optional.

Minimum spec, and how to set it

Set it deliberately, early, and in writing.

Base it on three things: the operating system version, available memory, and a GPU generation. Then express it as a named device so the whole team can picture it.

Three inputs to the decision.

Then enforce it. Set the minimum version in the manifest so unsupported devices cannot install rather than installing and failing, which protects your reviews.

Revisit it once a year. Floors that never move quietly become the largest constraint on the project.

Screen sizes, notches, and safe areas

Layout is the most visible failure and the easiest to fix.

For gameplay, decide whether extra vertical space shows more of the world or is used for interface. Both are valid; deciding accidentally is not.

GPU and driver differences

The category that produces the strangest bugs.

Common failures include shaders that compile on one chipset and fail on another, texture compression formats that are unsupported on older hardware, precision differences producing visual banding, and driver-specific issues with particular rendering features.

Four practices reduce this.

  1. Keep shaders simple, per Shader Basics for Devs. Complex shaders are where driver differences surface.
  2. Use a widely supported compression format, with a fallback for older devices.
  3. Test on at least two GPU families, which is why the matrix includes an alternative chipset.
  4. Watch for precision issues on the floor device specifically, since mobile precision defaults differ.

Platform behaviour across versions

Less glamorous and a common source of one-star reviews.

Save-on-pause deserves emphasis. On a low-memory device an app can be killed without further warning, and progress lost that way is indistinguishable to a player from a save bug. The techniques are in Save Systems That Do Not Corrupt.

Testing without owning 40 phones

Three approaches, used together.

Buy five. The matrix above, secondhand where possible. This is the foundation and it is not expensive.

Use a device farm for breadth. Cloud services run automated launches and screenshots across many devices, which catches layout and launch crashes well. They are weaker for performance and feel.

Use pre-release testing channels. A closed test with real players on real devices, before a wide release, surfaces the long tail you cannot buy. Watch crash reporting closely during it.

Add automated launch testing to your build process: install, launch, reach the first playable moment, screenshot, exit. Run it across the farm on every release candidate. It catches the most damaging class of bug, which is a game that will not start on a common device.

What we would do

Buy the floor device in the first week and keep it on the desk. Every performance decision becomes concrete once there is a specific phone that has to run it.

Write the minimum specification into the project plan, enforce it in the manifest, and revisit it annually.

Then automate launch testing across a device farm and read crash reporting daily from the first pre-release build. Between those two, most fragmentation problems are found before players find them.

The short version

Buy your floor device this week and keep it on the desk. If you want a fragmentation pass before release, send us the build.

Related reading: Unity Mobile Performance, Mobile Game QA: How It Works, and Cut Your Unity Build Size in Half.

#Android#Mobile#QA#Process
Your turn

Got a game idea? We build it.

You bring the concept. We design, build, test and launch it, and you own 100% of the finished game.

Share Your Game Idea  →