Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Testen der Android-Plattform

Dieser Inhalt richtet sich an Entwickler von Android-Plattformen. Bevor Sie verstehen, wie Tests auf der Android-Plattform durchgeführt werden, finden Sie eine Übersicht in der Android-Plattformarchitektur .

Informieren Sie sich anschließend über die genauen Technologien, die Ihnen in diesem Abschnitt zur Verfügung stehen, z. B. die Vendor Test Suite (VTS) und ihre unzähligen Video- und Codelab-Tutorials .

Beachten Sie auch die sicherheitsspezifischen Testmechanismen, mit denen Sie Ihre Geräte erkennen und gegen Sicherheitslücken absichern können.

Für App - Tests, mit dem Start Fundamentals of Testing und die Durchführung Android Testing Codelab die Verwendung von Proben zur Verfügung gestellt.

Beachten Sie schließlich, dass Ihnen grundlegende Repubmit-Tests über Repo Hooks zur Verfügung stehen , mit denen Linters ausgeführt, Formatierungen überprüft und Komponententests ausgelöst werden können, bevor Sie fortfahren, z. B. das Hochladen eines Commits. Beachten Sie, dass diese Hooks standardmäßig deaktiviert sind. Weitere Informationen finden Sie in der Einführung zu Repo Hooks .

Was und wie zu testen

Ein Plattformtest interagiert normalerweise mit einem oder mehreren der Android-Systemdienste oder HAL-Schichten (Hardware Abstraction Layer), übt die Funktionen des zu testenden Probanden aus und bestätigt die Richtigkeit des Testergebnisses.

Daher kann ein Plattformtest:

  1. Framework-APIs über das Anwendungsframework ausführen; Zu den spezifischen APIs, die ausgeübt werden, gehören:
    • öffentliche APIs für Anwendungen von Drittanbietern
    • versteckte APIs für privilegierte Anwendungen, nämlich System-APIs
    • private APIs (@hide oder geschütztes Paket privat)
  2. Rufen Sie die Android-Systemdienste direkt über Raw-Binder / IPC-Proxys auf
  3. Interaktion mit HALs über Low-Level-APIs oder IPC-Schnittstellen

Die Typen 1 und 2 werden normalerweise als Instrumentierungstests geschrieben, während Typ 3 normalerweise als native Tests unter Verwendung des gtest- Frameworks geschrieben wird.

Weitere Informationen finden Sie in unseren End-to-End-Beispielen:

Machen Sie sich mit diesen Tools vertraut, da sie für das Testen in Android von wesentlicher Bedeutung sind.

Kompatibilitätstestsuite (CTS)

Die Android Compatibility Test Suite ist eine Suite verschiedener Arten von Tests, mit denen die Kompatibilität von Android Framework-Implementierungen zwischen OEM-Partnern und Plattformversionen sichergestellt wird. Die Suite enthält auch Instrumentierungstests und native Tests (auch unter Verwendung des gtest-Frameworks).

CTS- und Plattformtests schließen sich nicht gegenseitig aus. Hier einige allgemeine Richtlinien:

  • Wenn ein Test die Richtigkeit der Funktionen / Verhaltensweisen der Framework-API bestätigt und von allen OEM-Partnern erzwungen werden sollte, sollte er sich in CTS befinden
  • Wenn ein Test Regressionen während des Plattformentwicklungszyklus abfangen soll und möglicherweise eine privilegierte Berechtigung zum Ausführen erfordert und von Implementierungsdetails abhängt (wie in AOSP veröffentlicht), sollte es sich nur um Plattformtests handeln

Vendor Test Suite (VTS)

Die Vendor Test Suite (VTS) automatisiert das Testen des HAL- und OS-Kernels. Um VTS zum Testen einer nativen Android-Systemimplementierung zu verwenden, richten Sie eine Testumgebung ein und testen Sie einen Patch mithilfe eines VTS-Plans.

Testinfrastruktur der Handelsföderation

Trade Federation (Tradefed oder kurz TF) ist ein kontinuierliches Testframework, das zum Ausführen von Tests auf Android-Geräten entwickelt wurde. TF kann Funktionstests lokal an Ihrem Schreibtisch an der Plattformkasse durchführen. Es sind zwei Dateien erforderlich, um einen Test in TF auszuführen, eine Java-Testquelle und eine XML-Konfiguration. Beispiele finden Sie unter RebootTest.java und reboot.xml .

Debuggen

Im Abschnitt Debugging werden nützliche Tools und zugehörige Befehle zum Debuggen, Nachverfolgen und Profilieren von nativem Android-Plattformcode bei der Entwicklung von Funktionen auf Plattformebene zusammengefasst.