Diagnostyka układu systemu Android
Diagnostyka układu systemu Android została zaprojektowana w celu poprawy jakości plików układu systemu Android przez wyróżnienie typowych problemów z jakością i przydatnych optymalizacji. Ta funkcja jest dostępna zarówno dla programu Visual Studio 16.5 lub nowszego, jak i Visual Studio dla komputerów Mac 8.5 lub nowszego.
Domyślny zestaw analizatorów jest udostępniany dla szerokiego zakresu problemów, a każdy z nich można dostosować tak, aby obejmował konkretne potrzeby projektu. Analizatory są luźno oparte na systemie linting systemu Android.
Włączanie diagnostyki układu systemu Android w programie Visual Studio 2019
Upewnij się, że ustawienie diagnostyki układu, Włącz diagnostykę układu, jest włączone. Aby uzyskać dostęp do tej strony opcji, wybierz pozycję Narzędzia>Opcje, a następnie wybierz pozycję Edytor tekstu Android>XML>Zaawansowane:
Po włączeniu edytor układu systemu Android wyświetli problemy:
Funkcje
W poniższych sekcjach opisano dostępne funkcje w diagnostyce układu systemu Android.
Analizatory
Analizatory służą do wykrywania problemów w plikach układu, zmniejszania wartości zakodowanych na stałe, poprawy wydajności i błędów flagi. Aby uzyskać listę analizatorów, zobacz Analizatory diagnostyczne projektanta systemu Android
Konfiguracja diagnostyczna
Analizatory można skonfigurować przy użyciu pliku XML, umożliwiając zmianę domyślnego poziomu ważności, ignorowanie niektórych plików i przekazywanie zmiennych.
Możesz użyć pliku odniesienia, jeśli masz zestaw konfiguracji, które chcesz udostępnić w wielu aplikacjach systemu Android. Aby użyć tej funkcji, utwórz nowy plik konfiguracji i dołącz -baseline
go do nazwy pliku. Najpierw są stosowane konfiguracje punktu odniesienia, a następnie pozostałe pliki konfiguracji.
Napiwek
Może to być przydatne, jeśli chcesz zignorować zestaw problemów w nowej lub istniejącej aplikacji systemu Android.
Format to:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<issue id="DuplicateIDs" severity="warning">
<ignore path="Resources/layout/layout1.xml" />
</issue>
<issue id="HardcodedText" severity="informational">
<ignore path="Resources/layout/layout1.xml" />
<ignore path="Resource/layout/layout2.xml" />
</issue>
<issue id="TooManyViews">
<variable name="MAX_VIEW_COUNT" value="12" />
</issue>
<issue id="TooDeepLayout">
<variable name="MAX_DEPTH" value="12" />
</issue>
</configuration>
Uwaga
Obecnie jedynymi zmiennymi są MAX_VIEW_COUNT
(wartość domyślna: 80) i MAX_DEPTH
(wartość domyślna: 10) odpowiednio dla TooManyViews
i TooDeepLayout
.
Poziomy ważności to:
- Sugestia
- Informacje
- Ostrzeżenie
- Error
- Ignoruj
Dodawanie pliku konfiguracji
Utwórz nowy plik XML w katalogu głównym projektu aplikacji systemu Android. Nazwa pliku nie jest ważna, ale w tym przykładzie użyto polecenia AndroidLayoutDiagnostics.xml
:
Po dodaniu nowego pliku XML powinien zostać wyświetlony w drzewie projektu aplikacji systemu Android:
Upewnij się, że akcja kompilacji jest ustawiona na Wartość AndroidResourceAnalysisConfig na panelu właściwości. Najprostszym sposobem ściągnięcia panelu właściwości dla nowego pliku jest kliknięcie pliku prawym przyciskiem myszy i wybranie właściwości. Po wyświetlaniu panelu właściwości należy zmienić akcję kompilacji na AndroidResourceAnalysisConfig:
Teraz, gdy masz pusty plik XML, musisz dodać <configuration>
element główny. W tym momencie możesz dostosować domyślne zachowanie wszelkich obsługiwanych problemów.
Jeśli chcesz mieć pewność, że zakodowane ciągi są traktowane jako błędy, dodaj:
<issue="HardcodedText" severity="error">
</issue>
Teraz, gdy tekst zakodowany w kodzie jest uznawany za błąd, jest on teraz oflagowany czerwonym przełącznikiem w edytorze układu:
Uwaga
Aby zmiany w nowym pliku konfiguracji zaczęły obowiązywać, wszystkie aktualnie otwarte pliki układu muszą zostać ponownie otwarte.
Rozwiązywanie problemów
Poniżej przedstawiono niektóre typowe problemy.
- Upewnij się, że nie ma błędu formatu XML.
- Akcja kompilacji jest poprawnie ustawiona na Wartość AndroidResourceAnalysisConfig.
Znane problemy
- Okienko błędów nie zostanie wypełnione dopiero po zmianie pliku po raz pierwszy.