Zasoby systemu Android

W tym artykule przedstawiono koncepcję zasobów systemu Android w środowisku Xamarin.Android i opisano sposób ich używania. Obejmuje ona sposób używania zasobów w aplikacji systemu Android do obsługi lokalizacji aplikacji oraz wielu urządzeń, w tym różnych rozmiarów i gęstości ekranu.

Omówienie

Aplikacja dla systemu Android jest rzadko tylko kodem źródłowym. Często istnieje wiele innych plików, które składają się na aplikację: wideo, obrazy, czcionki i pliki audio tylko po to, aby wymienić kilka. Zbiorczo te pliki kodu nieźródle są określane jako zasoby i są kompilowane (wraz z kodem źródłowym) podczas procesu kompilacji i spakowane jako plik APK do dystrybucji i instalacji na urządzeniach:

Packaging diagram

Zasoby oferują kilka zalet aplikacji systemu Android:

  • Separacja kodu — oddziela kod źródłowy od obrazów, ciągów, menu, animacji, kolorów itp. W związku z tym zasoby mogą pomóc w znacznym stopniu podczas lokalizowania.

  • Wiele urządzeń docelowych — zapewnia prostszą obsługę różnych konfiguracji urządzeń bez wprowadzania zmian w kodzie.

  • Sprawdzanie czasu kompilacji — zasoby są statyczne i kompilowane w aplikacji. Dzięki temu użycie zasobów jest sprawdzane w czasie kompilacji, gdy łatwo będzie przechwycić i poprawić błędy, w przeciwieństwie do czasu wykonywania, gdy trudniej jest zlokalizować i kosztowne poprawianie.

Po uruchomieniu nowego projektu platformy Xamarin.Android zostanie utworzony specjalny katalog o nazwie Resources wraz z niektórymi podkatalogami:

Resources folder and contents

Na powyższej ilustracji zasoby aplikacji są zorganizowane zgodnie z ich typem w tych podkatalogach: obrazy będą przechodzić do katalogu z możliwością rysowania, widoki przechodzą w podkatalogu układu itp.

Istnieją dwa sposoby uzyskiwania dostępu do tych zasobów w aplikacji platformy Xamarin.Android: programowo w kodzie i deklaratywnie w języku XML przy użyciu specjalnej składni XML.

Te zasoby są nazywane zasobami domyślnymi i są używane przez wszystkie urządzenia, chyba że określono bardziej szczegółowe dopasowanie. Ponadto każdy typ zasobu może opcjonalnie mieć zasoby alternatywne, których system Android może używać do określania określonych urządzeń. Na przykład zasoby mogą być udostępniane w celu określania ustawień regionalnych użytkownika, rozmiaru ekranu lub obracania urządzenia o 90 stopni od pionowego do poziomego itp. W każdym z tych przypadków system Android załaduje zasoby do użycia przez aplikację bez dodatkowego nakładu pracy programistycznego przez dewelopera.

Zasoby alternatywne są określane przez dodanie krótkiego ciągu nazywanego kwalifikatorem na końcu katalogu zawierającego dany typ zasobów.

Na przykład zasoby/drawable-de określi obrazy dla urządzeń, które są ustawione na niemieckie ustawienia regionalne, podczas gdy zasoby/drawable-fr będą przechowywać obrazy dla urządzeń ustawionych na francuskie ustawienia regionalne. Przykład udostępniania alternatywnych zasobów można zobaczyć na poniższej ilustracji, gdzie ta sama aplikacja jest uruchamiana tylko przy użyciu ustawień regionalnych urządzenia zmieniającego się:

Example screens for different locales

Ten artykuł zawiera kompleksowe omówienie korzystania z zasobów i omówienie następujących tematów:

  • Podstawy zasobów systemu Android — programowe i deklaratywne używanie domyślnych zasobów, dodawanie typów zasobów, takich jak obrazy i czcionki do aplikacji.

  • Konfiguracje specyficzne dla urządzenia — obsługa różnych rozdzielczości i gęstości ekranu w aplikacji.

  • Lokalizacja — używanie zasobów do obsługi różnych regionów, których może używać aplikacja.