[APP][2.3+] Tool - App Icon Detective
A small tool that asks every installed app for its icon and compares the returned with the icon it would expect for that type of display.
Android has a system of specific folders relating to different display densities (ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi).
Also see Android Iconograhy
Android tries to pick the best possible resource out of those folders.
If one resource for a specific density is missing it will pick the closest one and scale it up/down.
A dev puts the Google Play highres (512x512) version of his app icon that is normally for the web,
in the folder (inside the apk) "drawable" (which is treated as mdpi, i.e. 48x48dp for the launcher icon).
The user opens this app on his Nexus5 (which has a screen density of type xxhdpi [factor 3.0 of mdpi] by default).
Android only finds the app icon in the folder "drawable" and scales it up to match the xxhdpi density used on the Nexus5.
This means that the resulting image that gets returned is 512px x 512px scaled up by 3.0, so a 1536px x 1536px image.
(Thats huge in comparison to the 144px x 144px it expected).
Okay, but why?
It's an interesting issue i wanted to look into.
If your App or ROM or Mod or Plugin or WhatEver is not prepared for this it may crash. (Usually due to running out of memory)
If you suspect it could be the cause for a mysterious crash you are experiencing, you can use this app to check for stuff out of the ordinary.
A logcat would have shown "OutOfMemory" exception while mentioning image/appicon related methods in the stacktrace.
(Will post an example when i find one).
How do i interpret the results?
Look at the % displayed in the corner of each row and the color code.
I wouldn't worry about an icon that is ~400% of the expected size, there's room for improvement but its not critical.
But if you get an app with an icon 11377% of the expected size such as in my screenshot, that's a pretty hefty difference.
You could send the dev mail asking him politely if he could check it out.
No one does it with malicious intent, sorting in the drawables in the correct folders is a PITA and you don't notice it later on.
The sourcecode for this app is available on Github