Meine "Locate by SMS" App war ursprünglich (vor 2 Jahren) zwischen 100 und 200kB klein. Zielplattform war Android 4.2, Minimal-Plattform auch Android 4.0.
Exakt der selbe Code ergibt mit dem aktuellen SDK und Android 4.0 als minimum, sowie Android 6 als Zielplattform bereits etwas mehr als 1MB. Das muss ich aber auch so machen, denn ansonsten läuft die App nicht auf Geräten mit Android 7 (und neuere).
Das aktuelle SDK baut automatisch Abhängigkeiten zu Google Play in meinem Quelltext ein. Wenn ich diese Änderungen nicht manuell raus lösche, dann ist die Applikation sogar größer als 4 MB und weiß der Teufel, was sie dann mit dem Google Play anstellt.
Das Android SDK ist mir inzwischen sehr suspekt geworden. Ich sehe hier zwei Knackpunkte:
1) Kompatibilitätslibraries
Damit ein neues Programm auch auf alten Geräten laufen kann, schleppt es zusätzliche Libraries mit sich, die auf neuen Geräten nicht nötig wären. Würde man in den Apps weiterhin die alte API nutzen, dann bräuchte man die Libraries nicht, aber neue Android Versionen müssten dann (wie Windows) wegen ihrer Abwärtskompatibilität immer größer werden und hätten kaum die Chance, als Zöfpe abzuschneiden.
In der Tat wächst Android immer weiter und soweit mir bekannt ist, wurden bislang nur sehr wenige alte Zöpfe abgeschnitten.
Da liegt es also nahe, tatsächlich nur die alte API zum Programmieren zu nutzen. Jedoch möchte man ab und zu mal neue Features nutzen. Manchmal muss man es sogar.
So muss meine App zum Beispiel eine neue Berechtigung Anfordern, wenn sie unter Android 6 gestartet wird. Ab Android 7 muss sie sogar den User interaktiv um Zustimmung bitten. Genau diese interaktive Sache fehlt aber in der alten API, deswegen bin ich gezwungen, das neue SDK mit seinen Kompatibilitäts-Bibliotheken zu benutzen.
2) Abhängigkeiten zu Google Play
Goggle macht mächtig Druck, dass Entwickler gefälligst die Google Play Api nutzen sollen. Zum Beispiel haben Sie die Beispielprogramme und wesentliche Teile der API Dokumentation zur Abfrage der GSP Position entfernt und verweisen stattdessen auf einen Lokalisierungsdienst von Google Play - der natürlich von einer Internet Verbindung abhängt und nach hause telefoniert. Die alte Methode geht trotzdem noch - nur wie lange, daß weiß niemand.
Neue UI Style Vorgaben und Cross-Plattform Frameworks verschlimmern das Problem natürlich auch noch.