Was offenbaren Market-Statistiken über Apps?
Sicher: Die meisten Statistiken enthalten eine gewisse Portion „Fantasie“, und sollten bestenfalls zur groben Orientierung dienen. Das sollte man sich auch bei diesem Artikel vor Augen halten Was ich hier schreibe basiert auf Daten, die ich über ca. 13.000 Apps gesammelt habe. Eine recht kleine Auswahl aus den Millionen, die allein der Google Play Store bereit hält! War meine Auswahl vielleicht subjektiv? Natürlich habe ich vieles weggelassen: Schließlich sollen die App-Listen bei IzzyOnDroid ja nicht vor Clonen und, ahem, weniger gut bewerteten Apps strotzen, sondern eine gute und möglichst qualitativ hochwertige Auswahl bieten (beides ist natürlich wiederum recht subjektiv). Außerdem sind manche Bereiche gar nicht erfasst – etwa Spiele oder „asoziales Zeug“ wie Facebook & Co.
Das bedeutet jedoch keinesfalls, dass die Statistiken völlig nutzlos wären. Sicher sind sie nicht perfekt – aber auch aus dieser kleinen, subjektiven Sammlung lässt sich einiges ableiten, wie ich zeigen werde. Schließlich sind 13.000 Apps auch nicht gerade ein „Pappenstiel“ Und das eine oder andere, das wir über diese Sammlung lernen, lässt sich später auch bei der Auswahl unserer „Wunsch-Apps“ nutzen. Werten wir das Ganze also als „grobe Richtschnur“, sollten wir auf der sicheren Seite sein
Die durchschnittliche App
Wie lässt sich nun die „durschnittliche App“ bei IzzyOnDroid beschreiben? Kurz: Sie fordert 8 Permissions, kostet 0,70 EUR, und wurde vor 1,5 Jahren zuletzt aktualisiert.
Autsch. So alt? Wie kommt das? Unglücklicherweise werden viele (gute) Apps von ihren Entwicklern nicht länger gepflegt. Erscheinen sie nach wie vor sinnvoll und sind auch noch in einem der von hier verlinkten Märkte verfügbar, sehe ich keinen Grund sie zu löschen1. Natürlich zieht eine gewisse Anzahl solcher Apps den Durchschnitt nach unten. Auf der anderen Seite hatten etwa 50% der hiesigen Apps ein Release in den letzten zwölf Monaten.
Offensichtlich gute Nachrichten, was die Preise betrifft: Etwa 80% aller Apps lassen sich ohne Bezahlung beziehen. Wie jedoch die letzte Grafik zeigt, könnten wir hin und wieder in Form von Permissions zur Kasse gebeten werden2. Wenn die „durchschnittliche App“ 8 Permissions verlangt heißt das nicht automatisch, eine „genügsamere“ App wäre „sauberer“ (man denke etwa an eine Taschenlampen-App, welche die Permissions INTERNET
und READ_CONTACTS
anfordert: „nur“ zwei Permissions, keine davon für die Funktionalität benötigt – die aber zeigen, dass der Anwender wohl ausspioniert wird). Eben so wenig ist eine App mit „größeren Forderungen“ automatisch „böse und gierig“ (als Beispiel hierfür eine App zur Fernbedienung unseres Androiden vom PC: allein die Funktionalität Kontakte, Kalender, Mails und Kurznachrichten zu lesen und zu schreiben sowie Anruflisten einzusehen, bei eingehenden Anrufen benachrichtigt zu werden, und ggf. auch Anrufe zu initialisieren würde bereits mehr als 10 Permissions erfordern).
Permissions
Wenn wir gerade von Permissions reden wäre auch interessant zu sehen, wie sich diese über die Kategorien verteilen. Gibt es da einen Bereich, in dem Apps „besonders hungrig“ sind? Und wenn, ist dies auch gerechtfertigt?
Will uns jemand etwas „supergünstig“ verkaufen, hat die Sache meist einen Haken. Ein Blick auf die erste Grafik zeigt als Kategorie mit den höchsten Permission-Anforderungen „Billiger Telefonieren“ auf: Ganze 23 Permissions (in Worten: Drei-und-Zwanzig!) verlangt die „durchschnittliche App“ in dieser Kategorie. Da sind ja sogar die sogenannten Anti-Virus Apps (mit knapp 20 Permissions pro App) genügsamer. Das sollte einen genaueren Blick wert sein. Doch in der Tat scheinen die meisten der angeforderten Permissions der Aufgabe angemessen: Lesen & schreiben von Kontakten und Anruflisten, Anrufe tätigen, Internet und ggf. SIP (für VoIP). Internet-Anrufe benötigen auch durchaus Konto-Zugriffe (Konto finden, mit den Konto-Daten beim Dienst anmelden). Etliche Apps bieten darüber hinaus auch Nachrichtendienste mit an, oder ermöglichen Video-Anrufe. Damit haben wir die Grenze von 10 Permissions bereits locker überschritten – und ein paar Stichproben zeigen, dass es für die meisten Apps tatsächlich „sauber aussieht“. Wofür andere Apps dieser Kategorie jedoch beispielsweise den Standort benötigen, an den Synchronisations-Einstellungen drehen, oder auf „soziale Streams“ zugreifen wollen, steht auf einem anderen Blatt. Also auch hier nichts „Außergewöhnliches“: Wie immer, sollte man sich die angeforderten Permissions einer App jedoch genauer unter die Lupe nehmen. Auch, wenn sie weniger davon anfordert
Keine große Überraschung ist sicherlich, dass etwa 80% aller Apps die INTERNET
Permission verlangen (zweiter Graph). Wer hätte das gedacht! Damit einher geht auch gleich die Permission zur Prüfung, ob denn überhaupt ein Netzwerk zur Verfügung steht (erstaunlich, dass nicht beide gleichauf liegen – sollte man vor dem Zugriff erst prüfen, ob es auch da ist). An dritter und vierter Stelle geht es um den schreibenden und lesenden Zugriff auf die SD-Karte, beides etwa gleichauf mit ca. 63%. Ungefähr 35% aller Apps möchten unsere Androiden bei Gelegenheit wachhalten (WAKE_LOCK
), um ihrer Arbeit ungestört nachgehen zu können. READ_PHONE_STATE
ist mit 29% mittlerweile auf Platz 8 gesunken – eine gute Nachricht, die sicher auf eine entsprechende Änderung in den Play Store Richtlinien (Werbe-Module dürfen nicht länger die GeräteID zur Identifikation nutzen) zurückzuführen ist: Vor einem Jahr lag diese Permission noch mit gut 35% auf Platz 5. Eine tätsächliche Überraschung dürfte für viele sein, dass der Zugriff auf den Standort erst auf Platz 9 zu finden ist (mit weniger als 25%). Intuitiv würde man ihn in den Top-5 vermuten. Am Ende der Top-10 schließlich steht, von ca. 24% aller Apps gewünscht, die Berechtigung zum „Beim Booten ausführen“.
Google Glue
Nein, ich habe den dritten Graphen nicht vergessen. Der ist jedoch etwas spezieller, und rechtfertigt ein eigenes „Kapitel“.
Es gibt nicht nur die Permissions, die das Android System selbst bereit stellt. Jede App kann zusätzlich ihre eigenen Permissions definieren – was sie für gewöhnlich tut, wenn sie anderen Apps Schnittstellen anbietet (damit der Anwender erkennen kann, wer darauf zugreifen möchte). Auch auf viele der Google-Apps trifft dies zu; die bekanntesten Permissions wären dabei In-App-Billing und Lizenz-Prüfung. Anhand dieser (und ähnlicher) Permissions lassen sich also auch Abhängigkeiten erkennen. An dieser Stelle interessiert uns, welche Apps auf das Vorhandensein der (für gewöhnlich vorinstallierten) „GApps“ mehr oder weniger angewiesen sind: Laut meinen Statistiken über 35%. Was bedeutet das nun, verzichtet man bewusst auf die „GApps“3? Eine solche App ist zumindest hinsichtlich ihrer Funktionalität beschränkt4. Es kann aber auch sein, dass sie sich komplett weigert zu funktionieren – oder sich gar nicht erst installieren lässt (was der Graph als „hard glue“ bezeichnet). Zum Glück trifft letzteres lediglich auf etwa 15% der Apps zu, und in einigen Fällen gibt es auch „Work-Arounds“5. Doch sobald eine App ihre Lizenz über den entsprechenden Google-Dienst verifizieren möchte, ist man gekniffen: Dafür gibt es keine Open-Source Implementierung6. Was bedeutet, dass etwa 10% der Apps auf einem solchen Gerät nicht funktionieren werden – es sei denn, der Entwickler stellt eine Alternative bereit7.
Bogus-Permissions
Nicht alle Permissions wurden hier mitgezählt. Da sind zum einen viele von den Apps selbst deklarierte Permissions (wie im vorigen „Kapitel“ beschrieben). Zum anderen wären da jedoch auch etliche „Bogus-Permissions“, die es überhaupt nicht gibt – die aber dennoch von Apps verlangt werden. Der Grund dafür sind entweder Tippfehler (meist Buchstabendreher), schlechtes Raten, das anfordern der „Permission Group“ anstelle der eigentlichen Permission – oder das Befolgen veralteter bzw. falscher Tutorials.
Ich habe bislang 18 solcher „Bogus-Permissions“ ausgemacht, die von 304 Apps insgesamt 396 Mal angefordert werden. Topp-Kandidaten sind dabei pre-Android-1.0 Permissions wie android.permission.ACCESS_GPS
und „schlecht geratenes“ a la android.permission.WRITE_INTERNAL_STORAGE
8. Da sich dies häufig unbemerkt über mehrere Versionen einer App erstreckt darf man getrost davon ausgehen, dass die eigentlich beabsichtigten Permissions nie wirklich notwendig waren
Nebenbei: Wer denkt, so etwas kann nur „unbedarften Entwicklern“ passieren – weit gefehlt. Auch absolute Profis wie etwa Koush sind davor nicht gefeit: Seine App Helium Backup verlangt seit geraumer Zeit die Permission Group NETWORK
)
Weitere interessante Details
Hat man eine Reihe von Daten zur Hand juckt es einen in derselben, auch interessante und „seltsame“ Statistiken zu finden. Etwa, dass ca. 3% der Apps die Permission für die Lizenz-Prüfung anfordern, obwohl sie kostenfrei zu beziehen sind – oder ca. 1.5% der „Bezahl-Apps“ weiteres Geld in Form von In-App-Billing eintreiben möchten.
Es wird niemanden überraschen, dass der Google Play Store die größte „Vorratskammer“ für Android-Apps ist. Etwa 90% der hier bei IzzyOnDroid gelisteten Apps sind dort verfügbar. Allerdings findet man ca. 25% auch in anderen Repositories wie F-Droid oder Aptoide Apps9. Finden sich bei Google Play weit über eine Million Apps, hält F-Droid derzeit 1.800 und das Aptoide Apps Repository ca. 100.000 Apps bereit. Das XPosed Repository wird bald die Tausender-Marke knacken – während das noch recht junge Repository bei IzzyOnDroid sich noch auf die erste dreistellige Zahl hinbewegt (knapp 80 Apps derzeit). Etliche Apps finden sich an mehreren Orten, andere wiederum nur an einem einzigen Platz.
Sollte jemand noch eine Statistik vermissen, die hier nicht genannt wurde, gebe er/sie mir einfach Bescheid: Klingt die Idee interessant, werde ich sie sicherlich umsetzen (sofern möglich) und diesen Artikel aktualisieren
-
Apps werden aus den hiesigen Listings entfernt, wenn sie für mehr als 6 Monate nicht verfügbar waren – oder seit über 4 Jahren nicht aktualisiert wurden und ein Rating kleiner als 3 aufweisen. Ersteres geschieht automatisch, Letzteres manuell (und kann daher durchaus etwas verspätet geschehen). ↩︎
-
Siehe dazu auch Warum verlangen manche Apps zu viele Permissions? ↩︎
-
Beispielsweise aufgrund erhöhter Ansprüche bzgl. der Privatsphäre; siehe auch Android ohne Google ↩︎
-
Was man u. U. nicht einmal bemerkt: Wenn man beispielsweise die Gmail app nicht benutzt, fällt fehlender Zugriff auf selbige nicht auf. ↩︎
-
Verwendet eine App die Google Maps API, schlägt deren Installation aufgrund einer fehlenden Bibliothek fehl; mein Artikel über microG zeigt dafür einen Work-Around durch Nutzung einer Open-Source Implementierung dieser API, welche stattdessen auf OpenStreetmap setzt. ↩︎
-
Es ist auch unwahrscheinlich, dass dies je geschieht: Kein Entwickler wagt sich an „Google´s Herz“, das könnte auch böse enden. ↩︎
-
Es gibt verschiedene Möglichkeiten, die „legitime Nutzung“ zu prüfen – und ggf. erst dann die Arbeit zu verweigern (bzw. alternativ die Funktionalität einzuschränken), wenn sie alle fehlschlagen. ↩︎
-
Schlecht geraten anhand der Permission
WRITE_EXTERNAL_STORAGE
; wahrscheinlich warWRITE_MEDIA_STORAGE
gewünscht ↩︎ -
Die Listings bei IzzyOnDroid (und somit auch diese Statistiken) umfassen bei weitem nicht alle verfügbaren „Marktplätze“ – speziell der Amazon Apps Store ist nicht mit erfasst. ↩︎