Hello, Android Multiscreen: Podrobné informace
V této dvoudílné příručce se základní Telefon word aplikace (vytvořená v příručce Hello, Android) rozbalí, aby zvládla druhou obrazovku. Základní stavební bloky aplikací pro Android jsou zavedeny. Do architektury Androidu se podrobněji ponoříte, abyste mohli lépe porozumět struktuře a funkcím aplikací pro Android.
V rychlém startu Hello, Android Multiscreen jste vytvořili a spustili svou první aplikaci Xamarin.Android s více obrazovkami.
V této příručce prozkoumáte pokročilejší architekturu Androidu. Vysvětlení navigace v Androidu se záměry a možnosti hardwarové navigace pro Android jsou prozkoumány. Nové dodatky k aplikaci Telefon word se při vývoji komplexnějšího zobrazení vztahu aplikace s operačním systémem a dalšími aplikacemi rozptýlí.
Základy architektury Androidu
V aplikaci Hello, Android Deep Dive jste se dozvěděli, že aplikace pro Android jsou jedinečné programy, protože nemají jediný vstupní bod. Místo toho operační systém (nebo jiná aplikace) spustí některou z registrovaných aktivit aplikace, která pak spustí proces aplikace. Tento podrobný rozbor architektury androidu rozšiřuje vaše znalosti o tom, jak se aplikace pro Android vytvářejí zavedením stavebních bloků aplikací pro Android a jejich funkcí.
Stavební bloky aplikací pro Android
Aplikace pro Android se skládá ze kolekce speciálních tříd Androidu, které se nazývají bloky aplikací, které jsou spojeny s libovolným počtem prostředků aplikace – obrázky, motivy, pomocné třídy atd. – ty jsou koordinovány souborem XML, který se nazývá Manifest Androidu.
Bloky aplikací tvoří páteřní část aplikací pro Android, protože umožňují dělat věci, které se běžně nedají provádět s běžnou třídou. Nejdůležitější jsou aktivity a služby:
Aktivita – Aktivita odpovídá obrazovce s uživatelským rozhraním a je koncepčně podobná webové stránce ve webové aplikaci. Například v aplikaci informačního kanálu by přihlašovací obrazovka byla první aktivitou, posunovatelným seznamem zpráv by byla jiná aktivita a stránka podrobností pro každou položku by byla třetí. Další informace o aktivitách najdete v průvodci životním cyklem aktivit.
Služba – Služby pro Android podporují aktivity tím, že zabírají dlouhotrvající úlohy a spouští je na pozadí. Služby nemají uživatelské rozhraní a používají se ke zpracování úkolů, které nejsou svázané s obrazovkami – například přehrávání skladby na pozadí nebo nahrávání fotek na server. Další informace o službách najdete v průvodcích vytvářením služeb a služeb Pro Android.
Aplikace pro Android nemusí používat všechny typy bloků a často má několik bloků jednoho typu. Například aplikace Telefon word z hello, Rychlý start pro Android se skládá z pouze jedné aktivity (obrazovky) a některých souborů prostředků. Jednoduchá aplikace přehrávače hudby může mít několik aktivit a službu pro přehrávání hudby, když je aplikace na pozadí.
Záměry
Dalším základním konceptem v aplikacích pro Android je záměr. Android je navržený podle principu nejnižších oprávnění – aplikace mají přístup pouze k blokům, které vyžadují k práci, a mají omezený přístup k blokům, které tvoří operační systém nebo jiné aplikace. Podobně jsou bloky volně svázané – jsou navrženy tak, aby měly málo znalostí a omezený přístup k jiným blokům (dokonce i bloky, které jsou součástí stejné aplikace).
Bloky aplikací odesílají asynchronní zprávy s názvem Intents back and back-in(Záměry ). Záměry obsahují informace o přijímajícím bloku a někdy i o některých datech. Záměr odeslaný z jedné komponenty aplikace aktivuje něco, co se stane v jiné komponentě aplikace, vytvoří vazbu dvou komponent aplikace a umožní jim komunikovat. Odesláním záměrů zpět a zpět můžete získat bloky pro koordinaci složitých akcí, jako je spuštění aplikace fotoaparátu, která se má provést a uložit, shromáždit informace o poloze nebo přejít z jedné obrazovky na další.
AndroidManifest.XML
Když do aplikace přidáte blok, zaregistruje se ve speciálním souboru XML s názvem Manifest androidu. Manifest sleduje všechny bloky aplikací v aplikaci a také požadavky na verzi, oprávnění a propojené knihovny – vše, co operační systém potřebuje vědět, aby vaše aplikace mohla běžet. Manifest Androidu také pracuje s aktivitami a záměry a řídí, jaké akce jsou vhodné pro danou aktivitu. Tyto pokročilé funkce manifestu Androidu jsou popsané v příručce Práce s manifestem Androidu.
Ve verzi jednoobrazovkové aplikace Telefon word byla použita pouze jedna aktivita, jeden záměr a AndroidManifest.xml
další prostředky, jako jsou ikony. Ve víceobrazovkové verzi Telefon word byla přidána další aktivita. Byla spuštěna z první aktivity pomocí záměru. V další části se dozvíte, jak záměry pomáhají vytvářet navigaci v aplikacích pro Android.
Navigace v Androidu
Záměry se používaly k navigaci mezi obrazovkami. V tomto kódu je čas se podívat, jak záměry fungují, a porozumět jejich roli v navigaci v Androidu.
Spuštění druhé aktivity se záměrem
V aplikaci Telefon word byl záměr použit ke spuštění druhé obrazovky (aktivita). Začněte vytvořením záměru, předáním aktuálního kontextu (odkazujícím na aktuální kontext) a typem bloku aplikace, který hledáte (TranslationHistoryActivity
):this
Intent intent = new Intent(this, typeof(TranslationHistoryActivity));
Kontext je rozhraní pro globální informace o prostředí aplikace – umožňuje nově vytvořeným objektům zjistit, co se děje s aplikací. Pokud si myslíte, že záměr je zpráva, zadáte jméno příjemce zprávy (TranslationHistoryActivity
) a adresu příjemce (Context
).
Android nabízí možnost připojit jednoduchá data k záměru (složitá data se zpracovávají odlišně). V příkladu PutStringArrayExtra
Telefon word slouží k připojení seznamu telefonních čísel k záměru a StartActivity
volá se na příjemce záměru. Dokončený kód vypadá takto:
translationHistoryButton.Click += (sender, e) =>
{
var intent = new Intent(this, typeof(TranslationHistoryActivity));
intent.PutStringArrayListExtra("phone_numbers", _phoneNumbers);
StartActivity(intent);
};
Další koncepty představené v telefonním slově
Aplikace Telefon word zavedla několik konceptů, které nejsou popsané v této příručce. Mezi tyto koncepty patří:
Řetězcové prostředky – v aplikaci Telefon word byl text TranslationHistoryButton
nastaven na "@string/translationHistory"
. Syntaxe @string
znamená, že hodnota řetězce je uložena v řetězcovém souboru prostředků Strings.xml. Do Strings.xml byla přidána následující hodnota translationHistory
řetězce:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="translationHistory">Call History</string>
</resources>
Další informace o řetězcových prostředcích a dalších prostředcích androidu najdete v průvodci prostředky androidu.
ListView a ArrayAdapter – A ListView je komponenta uživatelského rozhraní, která poskytuje jednoduchý způsob, jak prezentovat posuvný seznam řádků. ListView
Instance vyžaduje, aby adaptér nasílil data obsažená v zobrazení řádků. Následující řádek kódu byl použit k naplnění uživatelského rozhraní TranslationHistoryActivity
:
this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers);
Seznamy a adaptéry jsou nad rámec tohoto dokumentu, ale jsou popsány v velmi komplexním průvodci ListViews a Adaptéry .
Naplnění ListView s daty se zabývá konkrétně použitím předdefinovaných ListActivity
a ArrayAdapter
tříd k vytvoření a naplnění ListView
bez definování vlastního rozložení, jak bylo provedeno v příkladu Telefon word.
Shrnutí
Blahopřejeme, dokončili jste svou první aplikaci pro Android s více obrazovkami! Tato příručka představila stavební bloky a záměry aplikací pro Android a použila je k vytvoření víceobrazovkové aplikace pro Android. Teď máte solidní základ, který potřebujete začít vyvíjet vlastní aplikace Xamarin.Android.
Dále se naučíte vytvářet multiplatformní aplikace pomocí Xamarinu v průvodcích vytváření multiplatformních aplikací.