1. Übersicht
In diesem Codelab erfahren Sie, wie Sie die Leistung Ihrer App während der Einführung einer Funktion überwachen. Unsere Beispiel-App hat grundlegende Funktionen und ist so eingerichtet, dass je nach Firebase Remote Config-Flag ein anderes Hintergrundbild angezeigt wird. Wir werden uns ansehen, wie wir Traces instrumentieren, um die Leistung der App zu überwachen, eine Konfigurationsänderung für die App bereitstellen, die Auswirkungen beobachten und die Leistung verbessern können.
Lerninhalte
- Firebase Performance Monitoring in Ihre mobile App einbinden, um sofort einsatzbereite Messwerte wie App-Startzeit und langsame oder eingefrorene Frames zu erhalten
- Benutzerdefinierte Traces hinzufügen, um kritische Codepfade Ihrer Nutzerpfade zu analysieren
- So können Sie das Dashboard für die Leistungsüberwachung verwenden, um Ihre Messwerte zu analysieren und wichtige Änderungen wie die Einführung einer Funktion zu verfolgen
- Leistungsbenachrichtigungen einrichten, um wichtige Messwerte im Blick zu behalten
- Firebase Remote Config-Änderung einführen
Vorbereitung
- Android Studio ab Version 4.0
- Ein Android-Emulator mit API-Level 16 oder höher.
- Java-Version 8 oder höher
- Grundkenntnisse von Firebase Remote Config
2. Beispielprojekt einrichten
Code herunterladen
Führen Sie den folgenden Befehl aus, um den Beispielcode für dieses Codelab zu klonen. Dadurch wird auf Ihrem Computer ein Ordner mit dem Namen codelab-perf-rc-android
erstellt:
$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git
Wenn Sie Git nicht auf Ihrem Computer haben, können Sie den Code auch direkt von GitHub herunterladen.
Importieren Sie das Projekt im Ordner firebase-perf-rc-android-start
in Android Studio. Wahrscheinlich werden einige Laufzeitfehler oder eine Warnung zu einer fehlenden google-services.json
-Datei angezeigt. Das werden wir im nächsten Abschnitt korrigieren.
In diesem Codelab registrieren Sie Ihre Android-App mit dem Firebase Assistant-Plug-in in einem Firebase-Projekt und fügen Ihrem Android-Projekt die erforderlichen Firebase-Konfigurationsdateien, Plug-ins und Abhängigkeiten hinzu – alles in Android Studio!
App mit Firebase verbinden
- Rufen Sie Android Studio/Hilfe > Nach Updates suchen auf, um sicherzugehen, dass Sie die neuesten Versionen von Android Studio und des Firebase Assistant verwenden.
- Wählen Sie Tools > Firebase aus, um den Bereich Assistant zu öffnen.
- Wählen Sie Performance Monitoring aus, um es Ihrer App hinzuzufügen, und klicken Sie dann auf Performance Monitoring verwenden.
- Klicken Sie auf Connect to Firebase, um Ihr Android-Projekt mit Firebase zu verbinden. Dadurch wird die Firebase Console in Ihrem Browser geöffnet.
- Klicken Sie auf die Schaltfläche zum Erstellen eines neuen Projekts und geben Sie einen Projektnamen ein (z. B.
Feature Rollout Performance Codelab
). - Klicken Sie auf Weiter.
- Lesen und akzeptieren Sie bei Aufforderung die Firebase-Nutzungsbedingungen und klicken Sie dann auf Weiter.
- (Optional) Aktivieren Sie die KI-Unterstützung in der Firebase Console (als „Gemini in Firebase“ bezeichnet).
- Für dieses Codelab benötigen Sie kein Google Analytics. Deaktivieren Sie daher die Google Analytics-Option.
Sie können Google Analytics optional aktivieren, da es erweiterte Targeting-Optionen für die Remote-Konfiguration bietet. In diesem Codelab wird jedoch eine Targeting-Option verwendet, für die Google Analytics nicht erforderlich ist. - Als Nächstes sollte ein Dialogfeld angezeigt werden, in dem Sie Ihre neue Firebase-App mit Ihrem Android Studio-Projekt verknüpfen können.
- Klicken Sie auf Verbinden.
- Öffnen Sie Android Studio. Im Bereich Assistant sehen Sie die Bestätigung, dass Ihre App mit Firebase verbunden ist.
Performance Monitoring in Ihre App einbinden
Klicken Sie in Android Studio im Bereich Assistant auf Add Performance Monitoring to your app (Performance Monitoring zu Ihrer App hinzufügen).
Es sollte ein Dialogfeld zum Übernehmen von Änderungen angezeigt werden. Danach sollte Android Studio Ihre App synchronisieren, um sicherzustellen, dass alle erforderlichen Abhängigkeiten hinzugefügt wurden.
Schließlich sollte im Bereich Assistant in Android Studio die Erfolgsmeldung angezeigt werden, dass alle Abhängigkeiten richtig eingerichtet sind.
Als zusätzlichen Schritt können Sie Debug-Logging aktivieren. Folgen Sie dazu der Anleitung im Schritt „(Optional) Debug-Logging aktivieren“. Dieselbe Anleitung ist auch in der öffentlichen Dokumentation verfügbar.
3. Anwendung ausführen
Die Datei google-services.json
sollte jetzt im Modulverzeichnis (auf App-Ebene) Ihrer App angezeigt werden und Ihre App sollte sich jetzt kompilieren lassen. Klicken Sie in Android Studio auf Run > Run 'app' (Ausführen > „App“ ausführen), um die App in Ihrem Android-Emulator zu erstellen und auszuführen.
Wenn die App ausgeführt wird, sollte zuerst ein Ladebildschirm wie dieser angezeigt werden:
Nach einigen Sekunden wird die Hauptseite mit dem Standardbild angezeigt:
Was passiert im Hintergrund?
Der Splash-Screen wird in SplashScreenActivity implementiert und führt Folgendes aus:
- In
onCreate()
initialisieren wir die Firebase Remote Config-Einstellungen und rufen die Konfigurationswerte ab, die Sie später in diesem Codelab im Remote Config-Dashboard festlegen. - In
executeTasksBasedOnRC()
lesen wir den Konfigurationswert des Flagsseasonal_image_url
. Wenn eine URL durch den Konfigurationswert bereitgestellt wird, laden wir das Bild synchron herunter. - Nach Abschluss des Downloads wird in der App zu MainActivity gewechselt und
finish()
aufgerufen, umSplashScreenActivity
zu beenden.
Wenn seasonal_image_url
in MainActivity
über Remote Config definiert ist, wird das Feature aktiviert und das heruntergeladene Bild als Hintergrund der Hauptseite angezeigt. Andernfalls wird das Standardbild (siehe oben) angezeigt.
4. Remote Config einrichten
Nachdem Ihre App ausgeführt wird, können Sie das neue Feature-Flag einrichten.
- Suchen Sie im linken Bereich der Firebase Console nach dem Abschnitt Engage und klicken Sie dann auf Remote Config.
- Klicken Sie auf die Schaltfläche Konfiguration erstellen, um das Konfigurationsformular zu öffnen und
seasonal_image_url
als Parameterschlüssel hinzuzufügen. - Klicken Sie auf Textzeile hinzufügen und geben Sie dann diese Beschreibung ein:
Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
- Klicken Sie auf Neu hinzufügen > Bedingter Wert > Neue Bedingung erstellen.
- Geben Sie als Bedingungsname
Seasonal image rollout
ein. - Wählen Sie für den Abschnitt
Applies if...
die OptionUser in random percentile <= 0%
aus. (Sie möchten die Funktion deaktiviert lassen, bis Sie sie in einem späteren Schritt einführen.) - Klicken Sie auf Bedingung erstellen. Sie verwenden diese Bedingung später, um die neue Funktion für Ihre Nutzer einzuführen.
- Öffnen Sie Erstes Parameterformular erstellen und suchen Sie das Feld Wert für die Einführung saisonaler Bilder. Geben Sie die URL ein, unter der das saisonale Bild heruntergeladen werden soll:
https://images.unsplash.com/photo-1552691021-7043334e0b51
- Lassen Sie den Standardwert als leeren String. Das bedeutet, dass das Standardbild im Code anstelle eines von einer URL heruntergeladenen Bildes angezeigt wird.
- Klicken Sie auf Speichern.
Die neue Konfiguration wird als Entwurf erstellt.
- Klicken Sie auf Änderungen veröffentlichen und bestätigen Sie die Änderungen oben, um Ihre App zu aktualisieren.
5. Überwachung der Datenladezeit hinzufügen
Ihre App lädt einige Daten vor dem Anzeigen von MainActivity
vorab und zeigt einen Ladebildschirm an, um diesen Vorgang zu verbergen. Nutzer sollten nicht zu lange auf diesem Bildschirm warten müssen. Es ist daher in der Regel sinnvoll, die Anzeigedauer des Startbildschirms zu überwachen.
Mit Firebase Performance Monitoring haben Sie genau diese Möglichkeit. Sie können benutzerdefinierte Code-Traces instrumentieren, um die Leistung von bestimmtem Code in Ihrer App zu überwachen, z. B. die Ladezeit für Daten und die Verarbeitungszeit Ihrer neuen Funktion.
Wenn Sie erfassen möchten, wie lange der Begrüßungsbildschirm angezeigt wird, fügen Sie SplashScreenActivity
einen benutzerdefinierten Code-Trace hinzu. SplashScreenActivity
ist die Activity
, in der der Begrüßungsbildschirm implementiert ist.
- Initialisieren, erstellen und starten Sie einen benutzerdefinierten Code-Trace mit dem Namen
splash_screen_trace
:
SplashScreenActivity.java
// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...
public class SplashScreenActivity extends AppCompatActivity {
private static final String TAG = "SplashScreenActivity";
private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";
// TODO: Initialize splash_screen_trace
private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
// ...
}
- Beenden Sie den Trace in der Methode
onDestroy()
vonSplashScreenActivity
:
SplashScreenActivity.java
@Override
protected void onDestroy() {
super.onDestroy();
// TODO: Stop the splash_screen_trace here
splashScreenTrace.stop();
}
Da Ihre neue Funktion ein Bild herunterlädt und verarbeitet, fügen Sie einen zweiten benutzerdefinierten Code-Trace hinzu, mit dem die zusätzliche Zeit erfasst wird, die durch Ihre Funktion zu SplashScreenActivity
hinzugekommen ist.
- Initialisieren, erstellen und starten Sie einen benutzerdefinierten Code-Trace mit dem Namen
splash_seasonal_image_processing
:
SplashScreenActivity.java
private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);
if (!seasonalImageUrl.isEmpty()) {
// TODO: Start the splash_seasonal_image_processing here
final Trace seasonalImageProcessingTrace = FirebasePerformance
.startTrace("splash_seasonal_image_processing");
// ...
}
}
- Beenden Sie den Trace in den Methoden
onLoadFailed()
undonResourceReady()
derRequestListener
:
SplashScreenActivity.java
Glide.with(SplashScreenActivity.this.getApplicationContext())
.asBitmap()
.load(seasonalImageUrl)
.signature(new ObjectKey(Utils.getCacheUUID()))
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(
@Nullable GlideException e,
Object model, Target<Bitmap> target,
boolean isFirstResource) {
// TODO: Stop the splash_seasonal_image_processing here
seasonalImageProcessingTrace.stop();
launchMainActivity();
return true;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model,
Target<Bitmap> target, DataSource dataSource,
boolean isFirstResource) {
// TODO: Stop the splash_seasonal_image_processing here
seasonalImageProcessingTrace.stop();
launchMainActivity();
return true;
}
})
.preload();
Nachdem Sie nun benutzerdefinierte Code-Traces hinzugefügt haben, um die Dauer des Begrüßungsbildschirms (splash_screen_trace)
) und die Verarbeitungszeit der neuen Funktion (splash_seasonal_image_processing
) zu erfassen, führen Sie die App noch einmal in Android Studio aus. Sie sollten eine Logging-Meldung mit Logging trace metric: splash_screen_trace
und der Dauer des Traces sehen. Sie sehen keine Log-Meldung für splash_seasonal_image_processing
, da Sie die neue Funktion noch nicht aktiviert haben.
6. Dem Trace ein benutzerdefiniertes Attribut hinzufügen
Bei benutzerdefinierten Code-Traces werden automatisch Standardattribute (allgemeine Metadaten wie App-Version, Land, Gerät usw.) protokolliert, damit Sie die Daten für den Trace in der Firebase Console filtern können. Sie können auch benutzerdefinierte Attribute hinzufügen und überwachen.
Sie haben Ihrer App gerade zwei benutzerdefinierte Code-Traces hinzugefügt, um die Dauer des Splash-Screens und die Verarbeitungszeit des neuen Features zu überwachen. Ein Faktor, der sich auf diese Zeiträume auswirken kann, ist, ob das angezeigte Bild das Standardbild ist oder ob das Bild von einer URL heruntergeladen werden muss. Vielleicht haben Sie irgendwann verschiedene URLs, über die Sie ein Bild herunterladen.
Fügen wir diesen benutzerdefinierten Code-Traces also ein benutzerdefiniertes Attribut hinzu, das die URL des saisonalen Bildes darstellt. So können Sie die Daten zur Dauer später nach diesen Werten filtern.
- Fügen Sie das benutzerdefinierte Attribut (
seasonal_image_url_attribute
) fürsplash_screen_trace
am Anfang der MethodeexecuteTasksBasedOnRC
hinzu:
SplashScreenActivity.java
private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);
// TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
if (seasonalImageUrl.isEmpty()) {
splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
} else {
splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
}
// ...
}
- Fügen Sie direkt nach dem
startTrace("splash_seasonal_image_processing")
-Aufruf dasselbe benutzerdefinierte Attribut fürsplash_seasonal_image_processing
hinzu:
SplashScreenActivity.java
if (!seasonalImageUrl.isEmpty()) {
// TODO: Start the splash_seasonal_image_processing here
final Trace seasonalImageProcessingTrace = FirebasePerformance
.startTrace("splash_seasonal_image_processing");
// TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
seasonalImageProcessingTrace
.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
// ...
}
Nachdem Sie für beide benutzerdefinierten Traces (splash_screen_trace
und splash_seasonal_image_processing
) ein benutzerdefiniertes Attribut (seasonal_image_url_attribute
) hinzugefügt haben, führen Sie die App noch einmal in Android Studio aus. Sie sollten eine Protokollierungsmeldung mit Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'.
You have not yet enabled the Remote Config parameter seasonalImageUrl which is why the attribute value is unset
sehen.
Das Performance Monitoring SDK erfasst die Tracedaten und sendet sie an Firebase. Sie können die Daten im Dashboard zur Leistungsüberwachung der Firebase Console ansehen. Das Dashboard wird im nächsten Schritt des Codelabs ausführlich beschrieben.
7. Dashboard zur Leistungsüberwachung konfigurieren
Dashboard für die Überwachung der Funktion konfigurieren
Wählen Sie in der Firebase Console das Projekt mit Ihrer Friendly Eats-App aus.
Suchen Sie im linken Bereich den Abschnitt Veröffentlichen & Überwachen und klicken Sie dann auf Leistung.
Auf dem Leistungs-Dashboard sollten Sie die ersten Datenpunkte in Ihrem Messwertboard sehen. Das Performance Monitoring SDK erfasst Leistungsdaten aus Ihrer App und zeigt sie innerhalb weniger Minuten nach der Erfassung an.
In diesem Messwertboard können Sie wichtige Messwerte für Ihre App im Blick behalten. Die Standardansicht enthält die Dauer des App-Startzeit-Traces. Sie können aber auch die Messwerte hinzufügen, die für Sie am wichtigsten sind. Da Sie die neue Funktion, die Sie hinzugefügt haben, erfassen, können Sie Ihr Dashboard so anpassen, dass die Dauer des benutzerdefinierten Code-Traces splash_screen_trace
angezeigt wird.
- Klicken Sie auf eines der leeren Felder Messwert auswählen.
- Wählen Sie im Dialogfeld den Tracetyp Benutzerdefinierte Traces und den Tracenamen
splash_screen_trace
aus.
- Klicken Sie auf Messwert auswählen. Die Dauer von
splash_screen_trace
sollte jetzt in Ihrem Dashboard angezeigt werden.
Sie können diese Schritte auch verwenden, um andere Messwerte hinzuzufügen, die für Sie wichtig sind. So können Sie schnell sehen, wie sich ihre Leistung im Laufe der Zeit und sogar bei verschiedenen Releases ändert.
Das Messwert-Dashboard ist ein leistungsstarkes Tool, mit dem Sie die Leistung wichtiger Messwerte im Blick behalten können, die Ihre Nutzer sehen. In diesem Codelab haben Sie nur eine kleine Menge an Daten in einem kurzen Zeitraum. Daher verwenden Sie andere Dashboardansichten, mit denen Sie die Leistung der Einführung der Funktion besser nachvollziehen können.
8. Funktion einführen
Nachdem Sie das Monitoring eingerichtet haben, können Sie die Firebase Remote Config-Änderung (seasonal_image_url)
) bereitstellen, die Sie zuvor eingerichtet haben.
Wenn Sie eine Änderung einführen möchten, kehren Sie in der Firebase Console zur Seite „Remote Config“ zurück und erhöhen Sie das Nutzerperzentil Ihrer Targeting-Bedingung. Normalerweise stellen Sie neue Funktionen nur einem kleinen Teil der Nutzer zur Verfügung und erhöhen diesen Anteil erst, wenn Sie sicher sind, dass es keine Probleme gibt. In diesem Codelab sind Sie jedoch der einzige Nutzer der App. Sie können das Perzentil also auf 100 % ändern.
- Klicken Sie oben auf der Seite auf den Tab Bedingungen.
- Klicken Sie auf die Bedingung
Seasonal image rollout
, die Sie zuvor hinzugefügt haben. - Ändern Sie das Perzentil auf 100%.
- Klicken Sie auf Bedingung speichern.
- Klicken Sie auf Änderungen veröffentlichen und bestätigen Sie die Änderungen.
Starten Sie die App in Ihrem Emulator neu, um die neue Funktion zu sehen. Nach dem Splash-Screen sollte der neue leere Hauptbildschirm angezeigt werden.
9. Leistungsänderungen prüfen
Sehen wir uns nun die Leistung des Ladevorgangs des Splash-Screens im Leistungs-Dashboard in der Firebase Console an. In diesem Schritt des Codelabs sehen Sie sich Leistungsdaten in verschiedenen Bereichen des Dashboards an.
- Scrollen Sie auf dem Tab Dashboard nach unten zur Tabelle mit den Traces und klicken Sie dann auf den Tab Benutzerdefinierte Traces. In dieser Tabelle sehen Sie die benutzerdefinierten Code-Traces, die Sie zuvor hinzugefügt haben, sowie einige Standard-Traces.
- Nachdem Sie die neue Funktion aktiviert haben, suchen Sie nach dem benutzerdefinierten Code-Trace
splash_seasonal_image_processing
, in dem die Zeit gemessen wird, die zum Herunterladen und Verarbeiten des Bildes benötigt wurde. Anhand des Duration-Werts des Traces können Sie sehen, dass das Herunterladen und Verarbeiten viel Zeit in Anspruch nimmt.
- Da Sie Daten für
splash_seasonal_image_processing
haben, können Sie die Dauer dieses Traces dem Messwertboard oben auf dem Tab Dashboard hinzufügen.
Klicken Sie wie zuvor auf eines der leeren Felder Messwert auswählen. Wählen Sie im Dialogfeld den Tracetyp Benutzerdefinierte Traces und den Tracenamen splash_seasonal_image_processing
aus. Klicken Sie abschließend auf Messwert auswählen, um diesen Messwert dem Messwert-Board hinzuzufügen.
- Um die Unterschiede weiter zu bestätigen, können Sie sich die Daten für
splash_screen_trace
genauer ansehen. Klicken Sie im Messwert-Dashboard auf die Kartesplash_screen_trace
und dann auf Messwertdetails ansehen.
- Auf der Detailseite sehen Sie unten links eine Liste mit Attributen, darunter das benutzerdefinierte Attribut, das Sie zuvor erstellt haben. Klicken Sie auf das benutzerdefinierte Attribut
seasonal_image_url_attribute
, um rechts die Dauer des Splashscreens für jede saisonale Bild-URL aufzurufen:
- Die Werte für die Dauer des Splash-Screens sind wahrscheinlich etwas anders als im Screenshot oben. Sie sollten jedoch eine längere Dauer haben, wenn das Bild von einer URL heruntergeladen wird, als wenn das Standardbild verwendet wird (durch „unset“ dargestellt).
In diesem Codelab ist der Grund für die längere Dauer möglicherweise offensichtlich, in einer echten App ist das aber nicht immer der Fall. Die erhobenen Zeitangaben stammen von verschiedenen Geräten, auf denen die App unter verschiedenen Netzwerkbedingungen ausgeführt wird. Diese Bedingungen können schlechter sein als erwartet. Sehen wir uns an, wie Sie dieses Problem in einer realen Situation untersuchen würden.
- Klicken Sie oben auf der Seite auf Leistung, um zum Haupttab Dashboard zurückzukehren:
- Klicken Sie unten auf der Seite in der Tabelle „Traces“ (Traces) auf den Tab Network requests (Netzwerkanfragen). In dieser Tabelle sehen Sie alle Netzwerkanfragen Ihrer App, die in URL-Muster zusammengefasst sind, einschließlich des URL-Musters
images.unsplash.com/**
. Wenn Sie den Wert dieser Reaktionszeit mit der Gesamtzeit vergleichen, die für das Herunterladen und Verarbeiten des Bildes benötigt wird (d.h. die Dauer dessplash_seasonal_image_processing
-Traces), sehen Sie, dass ein Großteil der Zeit für das Herunterladen des Bildes aufgewendet wird.
Leistungsergebnisse
Mit Firebase Performance Monitoring haben Sie die folgenden Auswirkungen auf die Endnutzer mit aktivierter neuer Funktion beobachtet:
- Die auf
SplashScreenActivity
verbrachte Zeit ist gestiegen. - Die Dauer für
splash_seasonal_image_processing
war sehr lang. - Die Verzögerung war auf die Reaktionszeit für den Bilddownload und die entsprechende Verarbeitungszeit zurückzuführen, die für das Bild erforderlich war.
Im nächsten Schritt minimieren Sie die Auswirkungen auf die Leistung, indem Sie die Funktion zurücksetzen und herausfinden, wie Sie die Implementierung der Funktion verbessern können.
10. Funktion zurücksetzen
Es ist nicht wünschenswert, dass Nutzer während des Splash-Screens länger warten müssen. Einer der Hauptvorteile von Remote Config ist die Möglichkeit, die Einführung zu pausieren und rückgängig zu machen, ohne eine weitere Version für Ihre Nutzer veröffentlichen zu müssen. So können Sie schnell auf Probleme reagieren (z. B. die Leistungsprobleme, die Sie im letzten Schritt entdeckt haben) und die Anzahl unzufriedener Nutzer minimieren.
Als schnelle Abhilfe setzen Sie den Prozentsatz für die Einführung auf 0
zurück, damit alle Nutzer wieder das Standardbild sehen:
- Kehren Sie in der Firebase Console zur Seite Remote Config zurück.
- Klicken Sie oben auf der Seite auf Bedingungen.
- Klicken Sie auf die
Seasonal image rollout
-Bedingung, die Sie zuvor hinzugefügt haben. - Ändern Sie das Perzentil in 0 %.
- Klicken Sie auf Bedingung speichern.
- Klicken Sie auf Änderungen veröffentlichen und bestätigen Sie die Änderungen.
Starten Sie die App in Android Studio neu. Nun sollte der ursprüngliche leere Hauptbildschirm angezeigt werden:
11. Leistungsprobleme beheben
Im Codelab haben Sie bereits herausgefunden, dass das Herunterladen eines Bildes für den Ladebildschirm die Verlangsamung Ihrer App verursacht hat. Wenn Sie sich das heruntergeladene Bild genauer ansehen, stellen Sie fest, dass Sie die Originalauflösung des Bildes verwendet haben, die über 2 MB lag. Eine schnelle Lösung für Ihr Leistungsproblem besteht darin, die Qualität auf eine angemessenere Auflösung zu reduzieren, damit das Bild schneller heruntergeladen wird.
Remote Config-Wert noch einmal bereitstellen
- Kehren Sie in der Firebase Console zur Seite Remote Config zurück.
- Klicken Sie für den Parameter
seasonal_image_url
auf das Symbol Bearbeiten. - Aktualisieren Sie den Wert für die saisonale Bildbereitstellung auf
https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640
und klicken Sie auf Speichern.
- Klicken Sie oben auf der Seite auf den Tab Bedingungen.
- Klicken Sie auf Saisonale Bildbereitstellung und stellen Sie das Perzentil wieder auf 100 % ein.
- Klicken Sie auf Bedingung speichern.
- Klicken Sie auf die Schaltfläche Änderungen veröffentlichen.
12. Korrektur testen und Warnungen einrichten
App lokal ausführen
Führen Sie die App noch einmal aus, nachdem Sie den neuen Konfigurationswert so festgelegt haben, dass eine andere Download-Bild-URL verwendet wird. Die Zeit, die auf dem Splash-Screen verbracht wird, sollte diesmal kürzer sein als zuvor.
Leistung der Änderungen ansehen
Kehren Sie in der Firebase Console zum Leistungs-Dashboard zurück, um sich die Messwerte anzusehen.
- Dieses Mal verwenden Sie die Tabelle „Traces“, um zur Detailseite zu gelangen. Klicken Sie unten in der Tracetabelle auf dem Tab Benutzerdefinierte Traces auf den benutzerdefinierten Trace
splash_seasonal_image_processing
, um sich noch einmal eine detailliertere Ansicht des zugehörigen Messwerts für die Dauer anzusehen.
- Klicken Sie auf das benutzerdefinierte Attribut
seasonal_image_url_attribute
, um die Aufschlüsselung der benutzerdefinierten Attribute noch einmal aufzurufen. Wenn Sie den Mauszeiger auf die URLs bewegen, sehen Sie einen Wert, der der neuen URL für das Bild in reduzierter Größe entspricht:https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640
(mit dem?w=640
am Ende). Der Dauerwert für dieses Bild ist deutlich kürzer als der Wert für das vorherige Bild und für Ihre Nutzer akzeptabler.
- Nachdem Sie die Leistung Ihres Startbildschirms verbessert haben, können Sie Benachrichtigungen einrichten, die Sie informieren, wenn ein Trace einen von Ihnen festgelegten Grenzwert überschreitet. Öffnen Sie das Leistungs-Dashboard, klicken Sie für splash_screen_trace auf das Dreipunkt-Menü und dann auf Benachrichtigungseinstellungen.
- Klicken Sie auf den Schieberegler, um die Benachrichtigung Dauer zu aktivieren. Legen Sie den Grenzwert etwas über dem Wert fest, den Sie gesehen haben. Wenn Ihr splash_screen_trace den Grenzwert überschreitet, erhalten Sie eine E‑Mail.
- Klicken Sie auf Speichern, um die Benachrichtigung zu erstellen. Scrollen Sie nach unten zur Tabelle mit Traces und klicken Sie auf den Tab Benutzerdefinierte Traces. Dort sehen Sie, dass die Benachrichtigung aktiviert ist.
13. Glückwunsch!
Glückwunsch! Sie haben das Firebase Performance Monitoring SDK aktiviert und Traces erfasst, um die Leistung einer neuen Funktion zu messen. Sie haben wichtige Leistungsmesswerte für die Einführung einer neuen Funktion im Blick behalten und schnell reagiert, als ein Leistungsproblem entdeckt wurde. Das war alles möglich, weil wir mit Remote Config Konfigurationsänderungen vornehmen und Leistungsprobleme in Echtzeit beobachten konnten.
Behandelte Themen
- Firebase Performance Monitoring SDK in Ihre App einbinden
- Dem Code einen benutzerdefinierten Code-Trace hinzufügen, um eine bestimmte Funktion zu messen
- Einrichten eines Remote Config-Parameters und eines bedingten Werts zum Steuern/Einführen eines neuen Features
- Wissen, wie das Dashboard zur Leistungsüberwachung verwendet wird, um Probleme während eines Roll-outs zu erkennen
- Leistungsbenachrichtigungen einrichten, damit Sie informiert werden, wenn die Leistung Ihrer App einen von Ihnen festgelegten Grenzwert überschreitet