W tym temacie opisujemy, jak zintegrować narzędzie Android Performance Tuner, nazywane też narzędziem Biblioteka Tuning Fork do rejestrowania i przesyłania danych o czasie renderowania klatek z reklamy natywnej (C i C++).
Informacje o silniku gry Unity znajdziesz w przewodnika dla Unity.
Tło
Ważnym składnikiem rozgrywki jest wydajność renderowania. Renderowanie jest wynikiem dwóch następujących czynników:
- Liczba klatek: jak często rysowana jest klatka.
- Ustawienia jakości grafiki: poziom jakości wyświetlania klatki. w tym z wiernością symulacyjną i grafiką.
W przypadku gier dobrą wydajność renderowania jest definiowana w ten sposób:
- Zapewnienie stabilnej, stałej liczby klatek (czyli odsetka renderowanych klatek z oczekiwaną częstotliwością).
- Renderowanie klatek z największą możliwą częstotliwością przy zachowaniu stabilność, zwykle 30 lub 60 FPS, w zależności od typu gry.
- Zmaksymalizowanie poziomu szczegółowości dla użytkownika z uwzględnieniem rozmiaru ekranu przy zachowaniu ustalonej, stabilnej liczby klatek.
Biblioteka Android Frame Pacing ogranicza znaczną część zmienności czasu klatek, co zapewnia stabilną liczbę klatek w grach. Pozostałe zmienność czasów klatek jest spowodowana poziomem szczegółowości wyświetlanych jak również scenerię w grze i funkcje graficzne urządzenia. Zastosowanie Android Performance Tuner umożliwia wskazanie momentów podczas rozgrywki, gdy czas renderowania klatki jest wolniejsze lub szybsze od docelowego oraz ma związek z tymi problemami możliwości:
- Określone ustawienia jakości
- Konkretne sceny w grze
- Konkretne modele urządzeń lub dane techniczne
Rejestrowanie i przesyłanie danych
Biblioteka Tuning Fork opiera się na jednej funkcje znacznika jest wywoływane każdą klatką przez bibliotekę Androida Frame Pacing. W bibliotece dane o kleszczach są zbierane w histogramy, które są następnie okresowo przesłane do Google Play przez punkt końcowy HTTP. Każdy znacznik jest rejestrowany jako jest powiązana z kluczem instrumentu oraz adnotacja – definicje, które określasz w protokole bufora.
Klawisze instrumentalne
Klawisz instrumentu wskazuje, w którym miejscu w ramce pochodzi znacznik i jest to
Liczba całkowita, którą należy przekazać do każdego wywołania funkcji znacznika. Android Frame Pacing
biblioteka używa wstępnie zdefiniowanego zestawu kluczy instrumentów zdefiniowanego w zasadzie swappy_common.h
.
Jeśli nie korzystasz z funkcji Frame Pacing, możesz też zdefiniować własne klawisze instrumentów.
bibliotece.
Adnotacje
Adnotacje dostarczają kontekstowych informacji o tym, co robi gra, gdy znacznik czasu jest rejestrowany. Adnotacja może na przykład identyfikować :
- obecny poziom gry,
- Wielki szef jest na ekranie
- Wszelkie inne istotne informacje o stanie gry.
Adnotacje są definiowane przez protokół com.google.tuningfork.Annotation
bufora. Aby ustawić bieżącą adnotację, musisz przekazać serializację
zdefiniowana przez Ciebie wiadomość
TuningFork_setCurrentAnnotation()
Wszystkie kolejne dane znacznika będą powiązane z tą adnotacją do momentu,
jest skonfigurowana. Oto przykładowa definicja protokołu dla adnotacji:
import "tuningfork.proto"
enum Level {
INVALID_LEVEL = 0;
Level_1 = 1;
Level_2 = 2;
Level_3 = 3;
}
message Annotation {
optional Level level = 1;
}
Parametry wierności
Parametry wierności wpływają na wydajność i jakość grafiki
takie jak poziom szczegółowości siatki, rozdzielczość tekstur i antialiasing.
. Podobnie jak w przypadku adnotacji, parametry wierności definiuje się za pomocą funkcji
Komunikat bufora protokołu com.google.tuningfork.FidelityParams
. Oto
przykładową definicję protokołu dla parametrów wierności:
import "tuningfork.proto"
message FidelityParams {
int32 texture_quality_level = 1;
int32 shadow_resolution = 2;
float terrain_details_percent = 3;
int32 post_processing_effects_level = 4;
}
Podczas zainicjowania Tuning Fork przekazujesz serializację używane przez grę parametry. Możesz zmienić te parametry, jeśli na przykład użytkownik zmieni ustawienia renderowania gry, a Twoje kolejne dane jest powiązane z nowymi parametrami.
Aby umożliwić Google Play zrozumienie adnotacji i parametrów wierności plik bufora protokołu zawierający te definicje zawarte w pakiecie APK gry wraz z ustawieniami inicjowania. Dodatkowo musisz podać wartości domyślne dla typowych kombinacji parametrów wierności w pakiet APK, by podzielić dane na segmenty według niego w interfejsie Google Play. Więcej informacji: Określ poziomy jakości.
Obciążenie pamięci i procesora
Cała pamięć używana przez bibliotekę Tuning Fork jest przydzielana w aby uniknąć niespodzianek podczas rozgrywki. Rozmiar danych zależy od liczby klawiszy instrumentów, liczby możliwych adnotacji liczba zasobników w każdym histogramie; jest wielokrotnością wszystkich tych czasów B na każdy zasobnik. Istnieją również dwie kopie wszystkich histogramów, które pozwalają na podwójnie buforowane.
Przesłanie odbywa się w osobnym wątku i nie blokuje wywołań zaznaczania. Jeśli nie połączenie przesyłania jest dostępne, przesyłanie oczekuje w kolejce do późniejszego przesłania.
Wywołanie funkcji znacznika nie wiąże się z dużym nakładem pracy związanym z przetwarzaniem: oblicza indeks do tablicy zasobników histogramu i zwiększa liczby całkowitej.
Zintegruj bibliotekę Tuning Fork
Przewodnik po integracji składa się z 2 części. W pierwszej części omawiamy, aby przeprowadzić kompleksowy test za pomocą aplikacji w wersji demonstracyjnej i Konsoli Google Play. Druga część to integrowanie biblioteki Tuning Fork łańcucha narzędzi i używania funkcji dostępnych w bibliotece. Kliknij Następny link poniżej, aby rozpocząć.