Udostępnij za pośrednictwem


Witaj, Android Multiscreen: szczegółowe omówienie

W tym dwuczęściowym przewodniku podstawowa aplikacja Telefon word (utworzona w przewodniku Hello, Android) jest rozszerzona w celu obsługi drugiego ekranu. Po drodze wprowadzono podstawowe bloki konstrukcyjne aplikacji systemu Android. Bardziej szczegółowe informacje na temat architektury systemu Android można znaleźć w celu ułatwienia lepszego zrozumienia struktury i funkcjonalności aplikacji systemu Android.

W przewodniku Szybki start Hello, Android Multiscreen utworzono i uruchomiono pierwszą aplikację platformy Xamarin.Android z wieloma ekranami.

W tym przewodniku zapoznasz się z bardziej zaawansowaną architekturą systemu Android. Nawigacja w systemie Android z intencjami jest wyjaśniona, a opcje nawigacji sprzętowej systemu Android są eksplorowane. Nowe dodatki do aplikacji Telefon word są rozłączane podczas opracowywania bardziej całościowego widoku relacji aplikacji z systemem operacyjnym i innymi aplikacjami.

Podstawy architektury systemu Android

W sekcji Hello, Android Deep Dive wiesz, że aplikacje systemu Android są unikatowymi programami, ponieważ nie mają jednego punktu wejścia. Zamiast tego system operacyjny (lub inna aplikacja) uruchamia dowolną z zarejestrowanych działań aplikacji, co z kolei uruchamia proces dla aplikacji. To szczegółowe omówienie architektury systemu Android rozszerza zrozumienie sposobu konstruowania aplikacji systemu Android przez wprowadzenie bloków konstrukcyjnych aplikacji systemu Android i ich funkcji.

Bloki konstrukcyjne aplikacji systemu Android

Aplikacja systemu Android składa się z kolekcji specjalnych klas systemu Android o nazwie Bloki aplikacji połączonej z dowolną liczbą zasobów aplikacji — obrazów, motywów, klas pomocników itp. — są one koordynowane przez plik XML o nazwie Manifest systemu Android.

Bloki aplikacji tworzą szkielet aplikacji systemu Android, ponieważ umożliwiają one wykonywanie czynności, których zwykle nie można osiągnąć przy użyciu zwykłej klasy. Dwa najważniejsze są działania i usługi:

  • Działanie — działanie odpowiada ekranowi z interfejsem użytkownika i jest koncepcyjnie podobne do strony internetowej w aplikacji internetowej. Na przykład w aplikacji kanału aktualności ekran logowania będzie pierwszym działaniem, przewijana lista elementów wiadomości będzie kolejnym działaniem, a strona szczegółów dla każdego elementu będzie trzecią. Więcej informacji na temat działań można uzyskać w przewodniku cyklu życia działania.

  • Usługa — usługi systemu Android obsługują działania przez przejmowanie długotrwałych zadań i uruchamianie ich w tle. Usługi nie mają interfejsu użytkownika i są używane do obsługi zadań, które nie są powiązane z ekranami — na przykład odtwarzanie utworu w tle lub przekazywanie zdjęć do serwera. Aby uzyskać więcej informacji na temat usług, zobacz przewodniki Creating Services and Android Services (Tworzenie usług i usług systemu Android).

Aplikacja systemu Android może nie używać wszystkich typów bloków i często ma kilka bloków jednego typu. Na przykład aplikacja Telefon word z przewodnika Szybki start dla systemu Android składała się tylko z jednego działania (ekranu) i niektórych plików zasobów. Prosta aplikacja odtwarzacza muzyki może mieć kilka działań i usługę do odtwarzania muzyki, gdy aplikacja znajduje się w tle.

Intencje

Inną podstawową koncepcją w aplikacjach systemu Android jest intencja. System Android jest zaprojektowany zgodnie z zasadą najniższych uprawnień — aplikacje mają dostęp tylko do bloków, których wymagają do pracy, i mają ograniczony dostęp do bloków tworzących system operacyjny lub inne aplikacje. Podobnie bloki są luźno powiązane — mają niewielką wiedzę i ograniczony dostęp do innych bloków (nawet bloki, które są częścią tej samej aplikacji).

Aby się komunikować, bloki aplikacji wysyłają komunikaty asynchroniczne o nazwie Intents tam i z powrotem. Intencje zawierają informacje o bloku odbierania, a czasami niektóre dane. Intencja wysłana z jednego składnika aplikacji wyzwala coś, co się stanie w innym składniku aplikacji, powiązanie dwóch składników aplikacji i umożliwienie im komunikowania się. Wysyłając intencje tam iz powrotem, można uzyskać bloki, aby koordynować złożone akcje, takie jak uruchamianie aplikacji aparatu do wykonania i zapisywania, zbierania informacji o lokalizacji lub nawigowania z jednego ekranu do następnego.

AndroidManifest.XML

Po dodaniu bloku do aplikacji jest on rejestrowany przy użyciu specjalnego pliku XML o nazwie Manifest systemu Android. Manifest śledzi wszystkie bloki aplikacji w aplikacji, a także wymagania dotyczące wersji, uprawnienia i połączone biblioteki — wszystko, co system operacyjny musi wiedzieć, aby aplikacja była uruchamiana. Manifest systemu Android współpracuje również z działaniami i intencjami w celu kontrolowania, jakie akcje są odpowiednie dla danego działania. Te zaawansowane funkcje manifestu systemu Android zostały omówione w przewodniku Praca z manifestem systemu Android.

W wersji jednoekranowej aplikacji Telefon word tylko jedno działanie, jedna intencja i AndroidManifest.xml zostały użyte obok dodatkowych zasobów, takich jak ikony. W wieloekranowej wersji Telefon word dodano dodatkowe działanie. Zostało ono uruchomione z pierwszego działania przy użyciu intencji. W następnej sekcji opisano, jak intencje pomagają tworzyć nawigację w aplikacjach systemu Android.

Nawigacja w systemie Android

Intencje były używane do nawigowania między ekranami. Nadszedł czas, aby zapoznać się z tym kodem, aby zobaczyć, jak działają intencje i zrozumieć ich rolę w nawigacji systemu Android.

Uruchamianie drugiego działania z intencją

W aplikacji Telefon word intencja została użyta do uruchomienia drugiego ekranu (Działanie). Zacznij od utworzenia intencji, przekazując bieżący kontekst (thisodwołując się do bieżącego kontekstu) i typu bloku aplikacji, którego szukasz (TranslationHistoryActivity):

Intent intent = new Intent(this, typeof(TranslationHistoryActivity));

Kontekst to interfejs globalny informacji o środowisku aplikacji — pozwala nowo utworzonym obiektom wiedzieć, co dzieje się z aplikacją. Jeśli myślisz o intencji jako wiadomości, podajesz nazwę adresata wiadomości (TranslationHistoryActivity) i adres odbiorcy (Context).

System Android udostępnia opcję dołączania prostych danych do intencji (złożone dane są obsługiwane inaczej). W przykładzie PutStringArrayExtra Telefon word służy do dołączania listy numerów telefonów do intencji i StartActivity jest wywoływana dla adresata intencji. Ukończony kod wygląda następująco:

translationHistoryButton.Click += (sender, e) =>
{
    var intent = new Intent(this, typeof(TranslationHistoryActivity));
    intent.PutStringArrayListExtra("phone_numbers", _phoneNumbers);
    StartActivity(intent);
};

Dodatkowe pojęcia wprowadzone w phoneword

Aplikacja Telefon word wprowadziła kilka pojęć, które nie zostały omówione w tym przewodniku. Te pojęcia obejmują:

String Resources — w aplikacji Telefon word tekst obiektu TranslationHistoryButton został ustawiony na "@string/translationHistory"wartość . Składnia @string oznacza, że wartość ciągu jest przechowywana w pliku zasobów ciągu, Strings.xml. Do Strings.xml dodano następującą translationHistory wartość ciągu:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="translationHistory">Call History</string>
</resources>

Aby uzyskać więcej informacji na temat zasobów ciągów i innych zasobów systemu Android, zapoznaj się z przewodnikiem Dotyczącym zasobów systemu Android.

ListView i ArrayAdapterelement ListView to składnik interfejsu użytkownika, który zapewnia prosty sposób prezentowania listy przewijania wierszy. Wystąpienie ListView wymaga adaptera, aby nakarmić go danymi zawartymi w widokach wierszy. Następujący wiersz kodu został użyty do wypełnienia interfejsu użytkownika elementu TranslationHistoryActivity:

this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers);

ListViews i Adaptery wykraczają poza zakres tego dokumentu, ale są one omówione w bardzo kompleksowym przewodniku ListViews i Adapters . Wypełnianie obiektu ListView przy użyciu danych dotyczy konkretnie używania wbudowanych ListActivity i ArrayAdapter klas w celu utworzenia i wypełnienia ListView obiektu bez definiowania niestandardowego układu, tak jak zostało to zrobione w przykładzie Telefon word.

Podsumowanie

Gratulacje, udało Ci się ukończyć pierwszą wieloekranową aplikację dla systemu Android! W tym przewodniku przedstawiono bloki konstrukcyjne i intencje aplikacji systemu Android oraz użyto ich do utworzenia wieloekranowej aplikacji systemu Android. Masz teraz solidną podstawę, którą musisz rozpocząć tworzenie własnych aplikacji platformy Xamarin.Android.

Następnie dowiesz się, jak tworzyć aplikacje międzyplatformowe za pomocą platformy Xamarin, korzystając z przewodników Tworzenie aplikacji międzyplatformowych.