Ich kenne mich jetzt mit Smartphone-Programmierung nur sehr begrenzt aus, denke aber, der App-Programmierer muss die Verschiebung auf die SD-Karte erlauben, d.h. mittels Einträgen in einer Manifestdatei oder ähnlichem ermöglichen. Liest man sich die Beschreibung von App's wie Link2SD durch, dann erfährt man, dass die App von der Sd-Karte auf den internen Speicher verlinkt wird, dem OS also quasi der interne Speicherplatz vorgegaukelt wird.
Die Funktion der so verschobenen App's ist zwar nicht garantiert, aber wohl meistens doch gegeben. Man kann daher unterstellen, die Festlegung auf den internen Speicherplatz wird sehr häufig willkürlich festgelegt, oder beruht auf Unkenntnis oder Unwillen der Programmierer, und ist nicht technisch notwendig. Das ist aber nur eine Vermutung. Die Antwort eines erfahrenen App- Programmierers würde mich daher genauso interessieren.
Nachtrag:
Das Gerät muss es wohl prinzipiell auch unterstützen, wie man diesem Artikel entnehmen kann:
http://www.golem.de/news/android-app2sd-bei-geraeteherstellern-immer-unbeliebter-1402-104662-2.html
Die App2SD-Funktionalität war wohl ursprünglich in Android, und wurde dann von den Geräteherstellern teilweise in die Firmware, ich nehme an in den Speichertreiber, übernommen.
Bei meinen bisherigen Geräten war aber nicht das Problem, dass sich App's generell nicht verschieben lassen, sondern nur manche nicht. Ich gehe daher davon aus, dass die App2SD-Funktion bei diesen Geräten vorhanden ist, das oben gesagte daher auch nicht grundsätzlich falsch.
Mit Android M wird sowieso (hoffentlich) alles besser, zumindest unterstützt Android dann die (verschlüsselte) SD wie internen Speicher, es lassen sich also nicht nur der App-Code dahin speichern, sondern auch die zugehörigen App-Daten.
— geändert am 15.09.2015, 01:57:19