Towards Understanding Android APIs: Official Lists, Vendor Customizations, and Real-World Usage
Diese Studie zeigt, dass offizielle Android-API-Listen weder stabil noch untereinander konsistent sind und ihre Wahl sowie das Ignorieren von Herstelleranpassungen die Ergebnisse empirischer Android-Forschung erheblich verzerren können.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich das Android-Betriebssystem wie eine riesige, hochkomplexe Kochschule vor. Die Entwickler von Android-Apps sind die Köche, die Rezepte (Apps) für die Kunden (Nutzer) erstellen. Damit diese Köche kochen können, benötigen sie Zugang zu den grundlegenden Werkzeugen und Zutaten des Systems: den Android-APIs.
Diese Werkzeuge sind in offiziellen Listen dokumentiert, die wir in der Studie als AALs (Android API Lists) bezeichnen. Man könnte sie sich wie die offiziellen Kochbücher vorstellen, die jeder Koch benutzen sollte.
Das Problem, das wir untersucht haben, ist folgendes: Es gibt nicht nur ein Kochbuch, sondern vier verschiedene. Und das Schlimme daran: Diese vier Bücher sagen oft völlig unterschiedliche Dinge!
Hier ist die einfache Zusammenfassung unserer Forschung, übersetzt in eine Geschichte:
1. Die vier verschiedenen Kochbücher (Die AALs)
In der Android-Welt gibt es vier offizielle Listen, die den Entwicklern sagen, welche Werkzeuge sie benutzen dürfen. Wir haben sie uns wie vier verschiedene Bibliothekare vorgestellt, die jeweils ein eigenes Verzeichnis führen:
- Das JAR-Buch (Der Klassiker): Enthält die grundlegenden Klassen, aber oft ohne die genauen Details, wie sie im echten Leben aussehen.
- Das XML-Buch (Der Historiker): Führt genau auf, wann ein Werkzeug hinzugefügt oder wieder entfernt wurde. Es ist sehr gut für Testzwecke, aber manchmal veraltet.
- Das TXT-Buch (Der Rohling): Zeigt den Code so, wie er geschrieben wurde, inklusive aller Feinheiten wie "variablen Argumenten". Es ist sehr detailliert, aber manchmal enthält es Dinge, die im fertigen Produkt gar nicht mehr existieren.
- Das CSV-Buch (Der Alleskönner): Dies ist die riesige Liste, die alles enthält, was im System compiled (zusammengebaut) wurde. Sie ist riesig, aber sie enthält auch viele Dinge, die eigentlich gar nicht für normale Köche gedacht sind (wie geheime Werkzeuge für das Küchenpersonal).
2. Die große Entdeckung: Die Bücher stimmen nicht überein
Unsere Studie hat gezeigt, dass diese vier Bücher kaum übereinstimmen.
Stellen Sie sich vor, Sie fragen vier verschiedene Bibliothekare nach einem bestimmten Messer.
- Bibliothekar A sagt: "Das Messer existiert."
- Bibliothekar B sagt: "Das Messer wurde 2021 entfernt."
- Bibliothekar C sagt: "Das Messer existiert nur in der Küche, aber nicht im Verkaufsraum."
- Bibliothekar D sagt: "Das Messer ist eigentlich ein Löffel."
In der Realität bedeutet das: Wenn ein Forscher oder Entwickler nur ein dieser Bücher benutzt, um zu prüfen, ob eine App funktioniert, kann er zu einem völlig falschen Ergebnis kommen.
- Das Ergebnis: Nur etwa 10 % aller Werkzeuge sind in allen vier Büchern gleich verzeichnet. Der Rest ist ein Chaos aus Unterschieden.
3. Die "Geister-Werkzeuge" und die "Verborgenen Schätze"
Wir haben zwei interessante Phänomene entdeckt:
- Geister-Werkzeuge (Synthetisierte APIs): Das große CSV-Buch enthält viele Werkzeuge, die es im echten Android-System gar nicht gibt. Sie wurden nur während des Zusammenbaus des Systems "erfunden" (z. B. für anonyme Funktionen). Es ist, als würde ein Kochbuch ein Werkzeug auflisten, das nur auf dem Papier existiert, aber in der echten Küche nicht zu finden ist.
- Verborgene Schätze (Vendor-Customizations): Viele Android-Hersteller (wie Samsung, Xiaomi, Huawei) bauen ihre eigenen Werkzeuge in das System ein. Diese stehen in keinem der vier offiziellen Kochbücher. Trotzdem nutzen normale Apps diese Werkzeuge täglich! Es ist, als würde ein Koch heimlich ein spezielles Messer von einem Nachbarn leihen, das in keinem offiziellen Buch steht.
4. Was passiert in der echten Welt?
Wir haben 17.759 echte Apps untersucht (von harmlosen Open-Source-Projekten bis hin zu kommerziellen Apps und sogar Viren/Malware).
- Die Norm: Die meisten Apps nutzen die Werkzeuge, die in allen Büchern übereinstimmen. Das ist sicher.
- Das Risiko: Viele Apps nutzen aber auch die "Geister-Werkzeuge" oder die "Verborgenen Schätze".
- Normale Apps nutzen oft die versteckten Hersteller-Werkzeuge, um Funktionen zu haben, die nur auf bestimmten Handys funktionieren.
- Böse Apps (Malware) nutzen oft die versteckten, nicht-offiziellen Werkzeuge, um sich zu verstecken oder Dinge zu tun, die eigentlich verboten sind.
Warum ist das wichtig? (Die Lehre für die Zukunft)
- Vertraue keinem einzelnen Buch: Wenn Forscher oder Entwickler nur eine dieser Listen nutzen, um Apps zu testen oder zu analysieren, ist ihre Arbeit unvollständig. Sie sehen nur einen Teil der Wahrheit.
- Die Realität ist chaotisch: Die offiziellen Listen sind nicht stabil. Was heute in einem Buch steht, kann morgen verschwinden, obwohl das Werkzeug im Handy noch funktioniert.
- Hersteller machen ihre eigenen Regeln: Die großen Firmen (Samsung, Xiaomi etc.) fügen so viele eigene Werkzeuge hinzu, dass die offiziellen Listen das Bild der Realität nicht mehr vollständig abbilden.
Fazit:
Die Android-Welt ist wie eine Küche mit vier verschiedenen Kochbüchern, die sich ständig ändern und gegenseitig widersprechen. Wenn man als Entwickler oder Forscher nicht weiß, welches Buch man gerade liest, kann man leicht in die Irre geführt werden. Unsere Studie ist ein Aufruf, alle vier Bücher zu vergleichen und sich der "versteckten Werkzeuge" bewusst zu sein, damit wir sicherere und besser funktionierende Apps bauen können.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.