I wanted to post this question and also an answer because I found this to be so frustrating to figure out at first. However, this changed my number of supported devices from 499 to 1968. Hopefully this will help more people in the future since it seems to be an obscure topic.
Technique 1: The reason why more devices wouldn't show up was because Google filters more aggressively when you use the <compatible-screens>
tag. In my case, I didn't have enough of the different screen sizes and density combinations, so it filtered out all of the ones I left out (see Technique 2 below).
If you instead ONLY use the <supports-screens />
tags, then you will enable your app to be found by many more devices. So do yourself a favor and remove all of those other tags in the <compatible-screens>
block.
You can use a shortform like this:
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true"></supports-screens>
Quoted from the original article:
Google Play filters the application if the device screen size and density does not match any of the screen configurations (declared by a "screen" element) in the "compatible-screens" element.
Caution: Normally, you should not use this manifest element. Using this element can dramatically reduce the potential user base for your application, by excluding all combinations of screen size and density that you have not listed. You should instead use the "supports-screens" manifest element (described above in table 1) to enable screen compatibility mode for screen configurations you have not accounted for with alternative resources.
Technique 2: Another technique you can use is to be more specific with your <compatible-screens>
tag and get rid of the <supports-screens />
tags. You can base those decisions on your app requirements and also on the latest device distribution numbers.
In the example below, I don't want to support small screens or the ldpi
densities of the normal, large, or xlarge screens, so I left them out.
<compatible-screens>
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<!-- all xlarge size screens -->
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
</compatible-screens>