Glossar der Android-Plattform

In der folgenden Liste finden Sie die grundlegende Terminologie des Android Open Source Project (AOSP). Hier sind andere Quellen für Definitionen von Schlüsselbegriffen:

Unter Coding with Respect finden Sie Beispiele für Terminologien, die für ein integrativeres Ökosystem verwendet und vermieden werden sollten.

Apps

.apk-Datei
Android-Anwendungspaketdatei. Jede Android-Anwendung wird in einer einzigen Datei kompiliert und verpackt, die den gesamten Anwendungscode (.dex-Dateien), Ressourcen, Assets und Manifestdateien enthält. Die Anwendungspaketdatei kann einen beliebigen Namen haben, muss jedoch die Erweiterung .apk . Beispiel: myExampleAppname.apk . Der Einfachheit halber wird eine Anwendungspaketdatei oft als ".apk" bezeichnet.

Verwandte: Anwendung .

Aktion
Eine Beschreibung von etwas, das ein Intent- Sender erledigt haben möchte. Eine Aktion ist ein Zeichenfolgenwert, der einem Intent zugewiesen ist. Aktionszeichenfolgen können von Android oder von einem Drittanbieter-Entwickler definiert werden. Beispiel: android.intent.action.VIEW für eine Web-URL oder com.example.rumbler.SHAKE_PHONE für eine benutzerdefinierte Anwendung zum Vibrieren des Telefons.

Verwandte: Absicht .

Aktivität
Ein einzelner Bildschirm in einer Anwendung mit unterstützendem Java-Code, abgeleitet von der Activity Klasse. Am häufigsten wird eine Aktivität sichtbar durch ein Vollbildfenster dargestellt, das UI-Ereignisse empfangen und verarbeiten und komplexe Aufgaben ausführen kann, da das Fenster zum Rendern des Fensters verwendet wird. Obwohl eine Aktivität normalerweise im Vollbildmodus angezeigt wird, kann sie auch schwebend oder transparent sein.
Anwendung
Aus Komponentensicht besteht eine Android-Anwendung aus einer oder mehreren Aktivitäten, Diensten, Listenern und Intent-Empfängern. Aus Sicht der Quelldatei besteht eine Android-Anwendung aus Code, Ressourcen, Assets und einem einzigen Manifest. Während der Kompilierung werden diese Dateien in einer einzigen Datei verpackt, die als Anwendungspaketdatei (.apk) bezeichnet wird.

Verwandte: .apk , Aktivität

Rundfunkempfänger
Eine Anwendungsklasse, die auf Intents wartet, die übertragen werden, anstatt an eine einzelne Zielanwendung/-aktivität gesendet zu werden. Das System liefert einen Broadcast Intent an alle interessierten Broadcast-Empfänger, die den Intent sequentiell verarbeiten.

Verwandte: Absicht , Absichtsfilter .

Inhalt Anbieter
Eine Datenabstraktionsschicht, mit der Sie die Daten Ihrer Anwendung sicher anderen Anwendungen zugänglich machen können. Ein Inhaltsanbieter basiert auf der ContentProvider Klasse, die Inhaltsabfragezeichenfolgen eines bestimmten Formats verarbeitet, um Daten in einem bestimmten Format zurückzugeben. Weitere Informationen finden Sie im Thema Inhaltsanbieter .

Verwandte: URI-Verwendung in Android

Dialog
Ein schwebendes Fenster, das als leichte Form fungiert. Ein Dialogfeld kann nur Schaltflächensteuerelemente enthalten und soll eine einfache Aktion ausführen (z. B. eine Schaltflächenauswahl) und möglicherweise einen Wert zurückgeben. Ein Dialogfeld soll nicht im Verlaufsstapel verbleiben, ein komplexes Layout enthalten oder komplexe Aktionen ausführen. Android bietet Ihnen einen einfachen Standarddialog mit optionalen Schaltflächen, obwohl Sie Ihr eigenes Dialoglayout definieren können. Die Basisklasse für Dialoge ist Dialog .

Verwandte: Aktivität .

Absicht
Ein Nachrichtenobjekt, mit dem Sie andere Anwendungen/Aktivitäten asynchron starten oder mit ihnen kommunizieren können. Ein Intent-Objekt ist eine Instanz von Intent . Es enthält mehrere Kriterienfelder, die Sie angeben können, um zu bestimmen, welche Anwendung/Aktivität den Intent erhält und was der Empfänger bei der Verarbeitung des Intents tut. Zu den verfügbaren Kriterien gehören die gewünschte Aktion, eine Kategorie, ein Datenstring, der MIME-Typ der Daten, eine Behandlungsklasse und andere. Eine Anwendung sendet einen Intent an das Android-System, anstatt ihn direkt an eine andere Anwendung/Aktivität zu senden. Die Anwendung kann den Intent an eine einzelne Zielanwendung oder als Broadcast senden, der wiederum von mehreren Anwendungen nacheinander verarbeitet werden kann. Das Android-System ist dafür verantwortlich, den besten verfügbaren Empfänger für jeden Intent aufzulösen, basierend auf den im Intent bereitgestellten Kriterien und den von anderen Anwendungen definierten Intent-Filtern. Weitere Informationen finden Sie unter Absichten und Absichtsfilter .

Verwandte: Intent-Filter , Broadcast-Empfänger .

Absichtsfilter
Ein Filterobjekt, das eine Anwendung in ihrer Manifestdatei deklariert, um dem System mitzuteilen, welche Arten von Intents jede ihrer Komponenten akzeptiert und mit welchen Kriterien. Durch einen Intent-Filter kann eine Anwendung Interesse an bestimmten Datentypen, Intent-Aktionen, URI-Formaten usw. ausdrücken. Beim Auflösen eines Intents wertet das System alle verfügbaren Intent-Filter in allen Anwendungen aus und übergibt den Intent an die Anwendung/Aktivität, die dem Intent und den Kriterien am besten entspricht. Weitere Informationen finden Sie unter Absichten und Absichtsfilter .

Verwandte: Absicht , Broadcast-Empfänger .

Ressourcen
Nichtprogrammatische Anwendungskomponenten, die sich außerhalb des kompilierten Anwendungscodes befinden, die jedoch mithilfe eines bekannten Referenzformats aus Anwendungscode geladen werden können. Android unterstützt eine Vielzahl von Ressourcentypen, aber die Ressourcen einer typischen Anwendung bestehen aus UI-Strings, UI-Layout-Komponenten, Grafiken oder anderen Mediendateien usw. Eine Anwendung verwendet Ressourcen, um die Lokalisierung und unterschiedliche Geräteprofile und -zustände effizient zu unterstützen. Eine Anwendung würde beispielsweise einen separaten Ressourcensatz für jeden unterstützten lokalen oder Gerätetyp enthalten und könnte Layoutressourcen enthalten, die für die aktuelle Bildschirmausrichtung (Querformat oder Hochformat) spezifisch sind. Weitere Informationen zu Ressourcen finden Sie unter Ressourcen und Assets . Die Ressourcen einer Anwendung werden immer in den res/* Unterordnern des Projekts gespeichert.
Bedienung
Ein Objekt der Klasse Service , das im Hintergrund (ohne Anwesenheit der Benutzeroberfläche) ausgeführt wird, um verschiedene dauerhafte Aktionen auszuführen, z. B. das Abspielen von Musik oder das Überwachen der Netzwerkaktivität.

Verwandte: Aktivität

URIs in Android
Android verwendet URI-Strings (Uniform Resource Identifier) ​​als Grundlage zum Anfordern von Daten bei einem Inhaltsanbieter (z. B. zum Abrufen einer Kontaktliste) und zum Anfordern von Aktionen in einem Intent (z. Das URI-Schema und -Format ist je nach Verwendungsart spezialisiert, und eine Anwendung kann bestimmte URI-Schemas und -Strings beliebig handhaben. Einige URI-Schemata werden von Systemkomponenten reserviert. Datenanfragen von einem Inhaltsanbieter müssen beispielsweise content:// . In einem Intent wird ein URI, der ein http:// Schema verwendet, vom Browser verarbeitet.

Bauen

adb
Android Debug Bridge, eine im SDK enthaltene Befehlszeilen-Debugging-Anwendung. Es bietet Tools zum Durchsuchen des Geräts, zum Kopieren von Tools auf dem Gerät und zum Weiterleiten von Ports zum Debuggen. Wenn Sie in Android Studio entwickeln, ist adb in Ihre Entwicklungsumgebung integriert. Weitere Informationen finden Sie unter Android Debug Bridge .
Android-Projekt
Ein Git-Repository auf einem Android-Gerrit-Host. Weitere Informationen finden Sie unter Quellcodeverwaltungstools > Gerrit .
Fingerabdruck erstellen
Der Build-Fingerabdruck ist eine eindeutige, für Menschen lesbare Zeichenfolge mit Herstellerinformationen, die für jeden Build ausgegeben werden. Weitere Informationen finden Sie unter Grundlegendes zu Build-Fingerabdrücken .
Git
Das von Android verwendete Quellcodeverwaltungstool, das in der Vergangenheit auf einem einzigen Git-Repository betrieben wurde. Wird in Verbindung mit Repo für mehrere Git-Repositorys verwendet. Weitere Informationen finden Sie unter Quellcodeverwaltungstools > Git .
Git-Zweig - kanonisch
Unterschiedliche Versionen für jedes Git-Repository, z. B. android-11.0.0_r1 , zu finden unter cs.android.com/android/platform/superproject/+/android-11.0.0_r1 . Weitere Informationen finden Sie unter Git Branching – Branches in a Nutshell .
Git-Zweig - lokal
Ein temporärer Branch im aktuellen Repo-Client, um Codeänderungen vorzunehmen, gestartet mit dem repo start branch-name . Befehl. eine aktive Entwicklungslinie. Der letzte Commit für einen Branch wird als Spitze dieses Branchs bezeichnet.
Git-Repository
Manchmal als Projekt bezeichnet, ist dies ein Teil der Codebasis, der eine bestimmte Komponente oder einen bestimmten Gerätetyp darstellt, z. B. frameworks/base oder platform/packages/apps/Car/Media .
Manifestdatei
Eine XML-Datei, die eine Gruppierung von Git-Repositorys pro Branch, die Git-Revisionen, bei denen diese Repositorys ausgecheckt werden sollen, und ihr Layout in einem Dateisystem beschreibt. Diese XML-Datei, normalerweise default.xml , ist einem Repo-Zweig zugeordnet und beschreibt die Git-Repositorys und Git-Zweigs, die beim Initialisieren und Synchronisieren des Repo-Zweigs ausgecheckt wurden. Diese Datei definiert die verschiedenen Git-Repositorys, die das Repo-Tool in einen Repo-Client-Checkout abrufen soll, um ein Produkt zu erstellen (z. B. Android Automotive OS). Alle Manifeste finden Sie unter android.googlesource.com/platform/manifest/+refs . Sehen Sie sich das in AndroidManifest- Dateien enthaltene Standardmanifest zum Abrufen von Android-Plattform-Dateien (AOSP) unter android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml an . Informationen zur App finden Sie in der Datei AndroidManifest.xml und im Repo-Manifest-Format für die Plattformentwicklung.
Over-the-Air (OTA)-Update
Android-Geräte im Außendienst können Over-the-Air-Updates (OTA) für das System, die Anwendungssoftware und die Zeitzonenregeln empfangen und installieren. Weitere Informationen finden Sie unter OTA-Updates .
Repo
Ein Wrapper um Git, um einfachere Operationen in mehreren Git-Repositorys zu ermöglichen. Es aggregiert und verwaltet die vielen Git-Repositories als einzelner Checkout oder Codebase. Weitere Informationen finden Sie unter Quellcodeverwaltungstools > Repo .
Repo-Filiale
Eine Sammlung von Git - Repositorys in einer aufgenommenen AndroidManifest - Datei , die eine Version (Build) der Android Code - Basis darstellt, wie android11-gsi oder aosp-android-games-sdk , heruntergeladene über repo init - repo sync repo init und repo sync - repo sync - Befehle. In der Beschreibung der Manifestdatei finden Sie Links zu allen Manifestdateien und verwenden https://cs.android.com/, um nach ihren Builds zu suchen.

Grafik

Segeltuch
Eine Zeichenoberfläche, die das Zusammensetzen der tatsächlichen Bits anhand eines Bitmap- oder Surface- Objekts handhabt. Es verfügt über Methoden zum standardmäßigen Computerzeichnen von Bitmaps, Linien, Kreisen, Rechtecken, Text usw. und ist an eine Bitmap oder Oberfläche gebunden. Canvas ist die einfachste und einfachste Möglichkeit, 2D-Objekte auf dem Bildschirm zu zeichnen. Die Basisklasse ist Canvas .

Verwandte: Drawable , OpenGL ES , Surface .

Ziehbar
Eine kompilierte visuelle Ressource, die als Hintergrund, Titel oder anderer Teil des Bildschirms verwendet werden kann. Ein Drawable wird typischerweise in ein anderes UI-Element geladen, beispielsweise als Hintergrundbild. Ein Drawable kann keine Ereignisse empfangen, weist aber verschiedene andere Eigenschaften wie "Zustand" und Zeitplanung zu, um Unterklassen wie Animationsobjekte oder Bildbibliotheken zu aktivieren. Viele zeichenbare Objekte werden aus zeichenbaren Ressourcendateien geladen – XML- oder Bitmap-Dateien, die das Bild beschreiben. Drawable-Ressourcen werden in Unterklassen von android.graphics.drawable kompiliert. Weitere Informationen zu Drawables und anderen Ressourcen finden Sie unter Ressourcen .

Verwandte: Ressourcen , Leinwand

Layout-Ressource
Eine XML-Datei, die das Layout eines Aktivitätsbildschirms beschreibt.

Verwandte: Ressourcen

Neun-Patch / 9-Patch / Neun-Patch-Bild
Eine Bitmap-Ressource mit veränderbarer Größe, die für Hintergründe oder andere Bilder auf dem Gerät verwendet werden kann. Weitere Informationen finden Sie unter Neun-Patch-dehnbares Bild .

Verwandte: Ressourcen .

OpenGL ES
Android bietet OpenGL ES-Bibliotheken für hardwarebeschleunigtes 3D-Rendering. Für das 2D-Rendering ist Canvas die einfachere Option." OpenGL ES ist im Android Native Development Kit (NDK) für eine einfache Verwendung android.opengl . Die Pakete android.opengl und javax.microedition.khronos.opengles stellen die OpenGL ES-Funktionalität javax.microedition.khronos.opengles .

Verwandte: Leinwand , Oberfläche

Oberfläche
Ein Objekt vom Typ Surface das einen Speicherblock darstellt, der auf dem Bildschirm zusammengesetzt wird. Ein Surface enthält ein Canvas-Objekt zum Zeichnen und bietet verschiedene Hilfsmethoden zum Zeichnen von Ebenen und zum Ändern der Größe der Oberfläche. Sie sollten diese Klasse nicht direkt verwenden; Verwenden SurfaceView stattdessen SurfaceView .

Verwandte: Leinwand

SurfaceView
Ein View-Objekt, das ein Surface zum Zeichnen umschließt und Methoden verfügbar macht, um seine Größe und sein Format dynamisch anzugeben. Ein SurfaceView bietet eine Möglichkeit, für ressourcenintensive Vorgänge (z. B. Spiele oder Kameravorschauen) unabhängig vom UI-Thread zu zeichnen, verbraucht jedoch zusätzlichen Speicher. SurfaceView unterstützt sowohl Canvas- als auch OpenGL ES-Grafiken. Die Basisklasse ist SurfaceView .

Verwandte: Oberfläche

Thema
Eine Reihe von Eigenschaften (Textgröße, Hintergrundfarbe usw.), die gebündelt sind, um verschiedene Standardanzeigeeinstellungen zu definieren. Android bietet einige Standardthemen an, die in R.style aufgelistet R.style (beginnend mit "Theme_").
Aussicht
Ein Objekt, das einen rechteckigen Bereich auf dem Bildschirm zeichnet und Klick-, Tastendruck- und andere Interaktionsereignisse verarbeitet. Eine Ansicht ist eine Basisklasse für die meisten Layoutkomponenten eines Aktivitäts- oder Dialogbildschirms (Textfelder, Fenster usw.). Es empfängt Aufrufe von seinem übergeordneten Objekt (siehe ViewGroup ), um sich selbst zu zeichnen, und informiert sein übergeordnetes Objekt darüber, wo und wie groß es sein möchte (was vom übergeordneten Objekt respektiert werden kann oder nicht). Weitere Informationen finden Sie unter View .

Verwandte: Ansichtshierarchie , Viewgroup , Widget

Hierarchie anzeigen
Eine Anordnung von View- und ViewGroup-Objekten, die die Benutzeroberfläche für jede Komponente einer App definiert. Die Hierarchie besteht aus Ansichtsgruppen, die eine oder mehrere untergeordnete Ansichten oder Ansichtsgruppen enthalten. Sie können eine visuelle Darstellung einer Ansichtshierarchie zum Debuggen und Optimieren erhalten, indem Sie die Hierarchieanzeige verwenden , die mit dem Android SDK bereitgestellt wird.

Verwandte: Ansicht , Ansichtsgruppe

Ansichtsgruppe
Ein Containerobjekt, das einen Satz untergeordneter Ansichten gruppiert. Die Ansichtsgruppe ist dafür verantwortlich, zu entscheiden, wo untergeordnete Ansichten positioniert werden und wie groß sie sein dürfen, sowie für den Aufruf jeder Ansicht, sich bei Bedarf selbst zu zeichnen. Einige Ansichtsgruppen sind unsichtbar und dienen nur dem Layout, während andere über eine intrinsische Benutzeroberfläche verfügen (z. B. ein scrollbares Listenfeld). ViewGroup sind alle im widget Paket enthalten, erweitern jedoch ViewGroup .

Verwandte: Ansicht , Hierarchie anzeigen

Widget
Eine aus einer Reihe vollständig implementierter View-Unterklassen, die Formularelemente und andere UI-Komponenten rendern, z. B. ein Textfeld oder ein Popup-Menü. Da ein Widget vollständig implementiert ist, übernimmt es das Messen und Zeichnen selbst und reagiert auf Bildschirmereignisse. Widgets sind alle im android.widget Paket enthalten.
Fenster
In einer Android-Anwendung ein von der abstrakten Klasse Window abgeleitetes Objekt, das die Elemente eines generischen Fensters angibt, z. B. das Aussehen und Verhalten (Titelleistentext, Position und Inhalt von Menüs usw.). Dialog und Activity verwenden eine Implementierung dieser Klasse, um ein Fenster zu rendern. Sie müssen diese Klasse nicht implementieren oder Fenster in Ihrer Anwendung verwenden.

Plattform

Android Runtime (ART) und Dalvik
Die Android-Laufzeit (ART) ist die verwaltete Laufzeit, die von Anwendungen und einigen Systemdiensten auf Android verwendet wird. Die Android-Laufzeit (ART) ist die Standardlaufzeit für Geräte mit Android 5.0 (API-Level 21) und höher. ART und sein Vorgänger Dalvik wurden ursprünglich speziell für das Android Open Soure Project entwickelt. ART als Laufzeitumgebung führt das Dalvik Executable-Format und die Dex-Bytecode-Spezifikation aus. ART und Dalvik sind kompatible Laufzeiten mit Dex-Bytecode, daher sollten für Dalvik entwickelte Apps mit ART funktionieren.
Codezeile
Eine Codeline enthält die Freigabe eines Softwareprodukts. Es besteht aus einem oder mehreren Zweigen aus einem oder mehreren Repositories, die alle oft gleichzeitig aktiv entwickelt werden. Die Codeline ist der Aggregationspunkt und das Ziel für die Veröffentlichung. Weitere Informationen zu Codelines finden Sie unter Android-Softwareverwaltung .
.dex-Datei
Kompilierte Android-Anwendungscodedatei.

Android-Programme werden in .dex-Dateien (Dalvik Executable) kompiliert, die wiederum in eine einzelne .apk-Datei auf dem Gerät gezippt werden. .dex-Dateien können erstellt werden, indem kompilierte Anwendungen, die in der Programmiersprache Java geschrieben sind, automatisch übersetzt werden.

Prüfung

Artefakte
Artefakte sind Build-bezogene Protokolle, die eine lokale Fehlerbehebung ermöglichen. Diese Protokolle sind direkt von Gerrit aus zugänglich, wenn Sie Ihre Änderungsliste anzeigen. Scrollen Sie nach unten zu Presubmit Status und klicken Sie auf den roten Build- Link, um die zugehörige Datei build_error.log anzuzeigen oder herunterzuladen. Sie können diese Artefakte auch vom zentralen Android Continuous Integration-Server unter ci.android.com/ abrufen, indem Sie auf das Download-Symbol (Pfeil nach unten) für das Ziel und den Build klicken. Weitere Informationen zum Auffinden von Artefakten finden Sie unter Android Continuous Integration .
CDD
Das Android Compatibility Definition Document (CDD) listet die Anforderungen auf, die erfüllt sein müssen, damit Ihre Geräte mit der neuesten Android-Version kompatibel sind. Um als kompatibel mit Android angesehen zu werden, MÜSSEN Geräteimplementierungen die in dieser Kompatibilitätsdefinition dargelegten Anforderungen erfüllen, einschließlich aller durch Verweis aufgenommenen Dokumente. Weitere Informationen zur CDD finden Sie im Dokument zur Android-Kompatibilitätsdefinition .
CTS
Die Compatibility Test Suite (CTS) ist die Testsuite zur Sicherstellung der API-Korrektheit und der in der CDD festgelegten Spezifikation. Es ist als Quelle in AOSP verfügbar und kann als Binärdatei heruntergeladen werden. Weitere Informationen finden Sie unter Kompatibilitätstest-Suite .
CTS-Verifier
Der Compatibility Test Suite Verifier (CTS Verifier) ​​ist eine Ergänzung zum CTS. CTS Verifier bietet Tests für APIs und Funktionen, die auf einem stationären Gerät ohne manuelle Eingabe nicht getestet werden können (zB Audioqualität, Beschleunigungsmesser usw.). Weitere Informationen finden Sie unter Verwenden von CTS Verifier .
Debuggen
Das Debuggen erfordert das Finden und Beheben von Fehlern im Android-Plattformcode, entweder in Funktionen oder deren Tests. Weitere Informationen finden Sie unter Debuggen des nativen Android-Plattformcodes
gtest
GoogleTest ist das C++-Test- und Mocking-Framework von Google. Den Code finden Sie unter github.com/google/googletest und die Dokumentation unter google.github.io/googletest .
Instrumentierungstest
Ein Instrumentierungstest stellt eine spezielle Testausführungsumgebung bereit, die durch den Befehl am instrument gestartet wird, in der der Zielanwendungsprozess neu gestartet und mit dem grundlegenden Anwendungskontext initialisiert wird und ein Instrumentierungsthread innerhalb der virtuellen Maschine des Anwendungsprozesses gestartet wird. Weitere Informationen finden Sie unter Instrumentierungstests .
Logcat
Logcat ist ein Befehlszeilentool, das ein Protokoll mit Systemmeldungen ausgibt, einschließlich Stacktraces, wenn das Gerät einen Fehler ausgibt, und Meldungen, die Sie von Ihrer App mit der Log Klasse geschrieben haben. Weitere Informationen finden Sie unter Logcat-Befehlszeilentool .
Protokollierung
Die Anmeldung in Android ist aufgrund der Mischung der verwendeten Standards, die in logcat kombiniert werden, logcat . Ausführliche Informationen zu den wichtigsten verwendeten Standards finden Sie unter Grundlegendes zur Protokollierung .
Konflikt zusammenführen
Ein Zusammenführungskonflikt tritt auf, wenn zwei oder mehr Versionen derselben Datei nicht mehr automatisch vom Android-Buildserver zusammengeführt werden können. Diese erfordern normalerweise eine manuelle Bearbeitung der Datei, um alle widersprüchlichen Updates zu beheben.
Nativer Test
Ein nativer Test für die Plattform greift normalerweise auf Abstraktionsschichten auf niedrigerer Ebene zu oder führt Roh-IPC gegen verschiedene Systemdienste durch. Daher ist der Testansatz normalerweise eng mit dem zu testenden Dienst verbunden. Weitere Informationen finden Sie unter Native Tests .
Tradefed
Der Trade Federation (Tradefed oder kurz TF) Test Harness ist ein kontinuierliches Test-Framework, das für die Durchführung von Tests auf Android-Geräten entwickelt wurde. Tradefed wird beispielsweise verwendet, um das CTS und das VTS auszuführen. Weitere Informationen finden Sie unter Übersicht über den Handelsverband .
VTS
Die Android Vendor Test Suite (VTS) bietet umfangreiche Funktionen für Android-Tests, fördert einen testgetriebenen Entwicklungsprozess und automatisiert HAL- und OS-Kernel-Tests. Weitere Informationen finden Sie unter Vendor Test Suite (VTS) und Infrastruktur .