I'm developing games for Android, and because very varying nature of Android devices (From Samsung Galaxy Y
to Google Nexus 10
) I've decided to use "multiple APK"-feature of Google Play. I've decided to create 4 different packages, each with assets scaled to different size.
Smallest of them is just about 10 megabytes, and has graphical assets scaled way down to 240p (to conserve very limited memory on Galaxy Y), while the largest is almost 50 megabytes with assets scaled to ~1500p to provide sharp graphics for Nexus 10.
I'm using <compatible-screens>
to filter each version to different devices. I'm using screenSizes small
, normal
, large
and xlarge
, and screenDensities ldpi
, mdpi
, hdpi
and xhdpi
.
I have each screenSize-screenDensity combination mentioned here covered in one of the four APK. The problem is that Google NEXUS 7
does not belong to any of these! It uses
<screen android:screenSize="large" android:screenDensity="213" />
Now, it's easy to manually add these to one of the four APKs, but the real question is... do I have to keep updating my APKs at the pace Google decides to keep adding these seemingly arbitrary screen density categories? Or i*s there a better way to filter APKs?*
Android API docs suggest using <supports-screens>
instead, but it mentions that it doesn't really use it for filter.