vývoj vaší první aplikace pro Android
proč nám záleží na Androidu? Záleží nám na platformě Android, protože je nejrozšířenější mobilní platformou na planetě a je přístupná spotřebitelům po celém světě. V ekonomikách, kde je vlastnictví osobního počítače luxusem, je používání mobilních zařízení normou-a Android hraje hlavní roli při vzájemném propojení lidí. Jak se dozvíte v tomto tutoriálu, Android má odlišný přístup k aplikacím. Architektura systému Android umožňuje vysoce přizpůsobitelné softwarové prostředí díky runtime vazbě požadovaných akcí a kódu, který tyto požadavky uspokojí. Ať už se jedná o tržní úvahy nebo technické aspekty Androidu, je to platforma, která stojí za prozkoumání. Dále, pokud vážně zvažujete mobilní zážitek pro svou platformu, nemůžete Android ignorovat.
předpoklady
tento tutoriál vyžaduje několik technologií, které spolupracují. Pro tento tutoriál potřebujete všechny.
- Android Studio-Android Studio je primárním výchozím bodem pro vytváření aplikací pro Android
- zařízení nebo emulátor Android-budete chtít buď fyzické zařízení Android, nebo emulátor Android. Ať tak či onak, čtení tohoto tutoriálu vám pomůže pochopit základní body připojení aplikace pro Android.
-
zdrojový kód-úryvky zdrojového kódu v tomto tutoriálu zahrnují:
- AndroidManifest.xml snippet – tento soubor je popisovač nasazení aplikace pro aplikace Android.
- MainActivity.java-to implementuje aktivitu Android, primární vstupní bod do ukázkové aplikace tohoto tutoriálu.
- Activity_main.xml-obsahuje definice vizuálních prvků nebo zdrojů pro použití aktivitami systému Android.
- AndroidManifest.xml complete-zde je uveden úplný AndroidManfest.xml soubor, spolu s popisem každého z důležitých prvků.
Představujeme architekturu Android
než se ponoříte přímo do vstupů a výstupů studia Android a vyvíjíte aplikace pro Android, podívejme se na architekturu Androidu a některé z klíčových pojmů, které budou užitečné v tutoriálu i mimo něj, když začnete vytvářet aplikace pro Android pro sebe.
terminologie Android
pochopení níže uvedených pojmů je užitečné při vývoji aplikací pro Android s aplikací Android Studio.
- Android je operační prostředí s otevřeným zdrojovým kódem určené pro mobilní zařízení. Android se stále častěji nachází v aplikacích mimo „smartphony“. Patří sem nositelná technologie, spotřebiče, jako jsou projektory, reproduktory a televizory, a dokonce i automobily.
- emulátor je softwarový nástroj představující jiný systém. Emulátor je často prostředí, které běží na osobním počítači (PC, Mac, Linux), které emuluje jiné prostředí, například mobilní výpočetní zařízení.
- Linux je jádro operačního systému s otevřeným zdrojovým kódem, které je jádrem mnoha výpočetních platforem, včetně serverů, stolních počítačů, síťových zařízení a mobilních výpočetních zařízení. Android běží na vrcholu linuxového jádra.
- Android Run Time (ART) je operační prostředí nalezené v zásobníku Android, které provádí kód aplikace za běhu. Doba běhu systému Android nahrazuje „starší“ virtuální stroj Dalvik (VM) z dřívějších verzí systému Android, které fungovaly podobným způsobem jako kompatibilní Java VM.
záměr
od svého vzniku se Android stal dominantní silou v prostoru mobilního telefonu. Jeho aplikační model je jedinečný v tom, že aplikace nejsou monolitické, aplikace naložené v nabídce, které vyžadují velké kliknutí a klepnutí, aby fungovaly. Jistě, existují nabídky a tlačítka, která mají být využita, ale Android má inovativní designový prvek své architektury známý jako záměr.
záměr je konstrukt, který umožňuje aplikaci vydat požadavek, což je něco jako znak hledaný pomocí. Mohlo by to vypadat takto:
- „hledaný: Aplikace, která mi pomůže vyhledat kontakt“
- „chtěl: aplikace, která mi pomůže zobrazit tento obrázek“
- “ chtěl: aplikace k provedení tohoto geografického vyhledávání.“
podobným a doplňkovým způsobem se aplikace mohou zaregistrovat jako schopné a mají zájem uspokojit různé požadavky nebo záměry. Chcete-li sledovat paradigma utajované reklamy, mohou vypadat takto:
- „k dispozici: aplikace připravená a ochotná předložit kontaktní záznamy jasným a stručným způsobem“
- “ k dispozici: Aplikace připravená a ochotná provést geografické vyhledávání.“
Jedná se o příklady Intentfilterů, které jsou dále diskutovány.
aplikace IntentFilter
oznamují svou dostupnost pro provádění těchto typů operací pomocí konstrukce známé jako IntentFilter
. IntentFilter
je buď registrován za běhu, nebo je uveden v Androidmanifestu.xml soubor. Následující úryvek pochází z aplikace pro Android, která reaguje na příchozí SMS (textové) zprávy:
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Zobrazit vícezobrazit více ikon
IntentFilter, další část představuje čtyři hlavní typy aplikací pro Android.
typy aplikací pro Android
pojďme se na chvíli podívat na čtyři hlavní typy aplikací pro Android:
- aktivita
- služba
- přijímač
- ContentProvider
podíváme se také na pohledy, abychom zobrazili prvky uživatelského rozhraní (UI).
Activity apps
aktivita je nejviditelnější a nejvýznamnější formou aplikace pro Android. Aktivita představuje uživatelské rozhraní k aplikaci, spolu s pomocí třídy známé jako pohled. Třída view je implementována jako různé prvky uživatelského rozhraní, jako jsou textová pole, štítky, tlačítka a další UIs typické pro výpočetní platformy, mobilní nebo otherwise.An aplikace může obsahovat jednu nebo více činností. Aktivita je obvykle definována ve vztahu one-to-one s obrazovkami nalezenými v aplikaci.
aplikace se pohybuje z jedné aktivity do druhé voláním metody známé jako startActivity ()
nebo startSubActivity ()
. První metoda se používá, když si aplikace přeje jednoduše „přepnout“ na novou aktivitu. Ten se používá, když je požadováno synchronní paradigma volání/odezvy. V obou případech je záměr předán jako argument k nazvané metodě.
je odpovědností operačního systému určit nejkvalifikovanější činnost, která uspokojí zadaný záměr.
servisní a přijímací aplikace
stejně jako ostatní výpočetní prostředí s více úkoly existují aplikace běžící „na pozadí“, které plní různé povinnosti. Android volá tyto typy aplikačních služeb. Tato služba je aplikace pro Android, která nemá žádné uživatelské rozhraní.
přijímač je součást aplikace, která přijímá požadavky na zpracování záměrů. Stejně jako služba, přijímač nemá, v běžné praxi, mít prvek uživatelského rozhraní. Přijímače jsou obvykle registrovány v Androidmanifestu.xml soubor.
následující úryvek (který je stejný jako úryvek zobrazený pro IntentFilter) je příkladem definované aplikace přijímače. Všimněte si, že atribut name přijímače je třída Java odpovědná za implementaci přijímače.
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Zobrazit vícezobrazit více ikon
ContentProvider
je mechanismus Android pro abstrakci úložiště dat. Podívejme se na konkrétní typ dat nalezených v mobilním zařízení: adresář nebo databáze kontaktů. Adresář obsahuje všechny kontakty a telefonní čísla, které může osoba při používání mobilního telefonu vyžadovat.
ContentProvider
je mechanismus pro abstraktní přístup k určitému úložišti dat. V mnoha ohledech ContentProvider
působí v roli databázového serveru. Operace pro čtení a zápis obsahu do konkrétního úložiště dat by měly být předány vhodným ContentProvider
, spíše než přímý přístup k souboru nebo databázi. Mohou existovat jak „klienti“, tak „implementace“ ContentProvider
.
zobrazení Android
zobrazení Android jsou mechanismem uživatelského rozhraní pro vkládání věcí na obrazovku zařízení Android. Aktivita Android využívá zobrazení k zobrazení prvků uživatelského rozhraní. Některé z populárnějších návrhů rozvržení zahrnují:
- LinearVertical-každý následující prvek sleduje svého předchůdce tím, že proudí pod ním v jednom sloupci.
- LinearHorizontal-každý následující prvek sleduje svého předchůdce tím, že proudí doprava V jednom řádku.
- tabulka-řada řádků a sloupců, podobná tabulce HTML. Každá buňka může obsahovat jeden prvek zobrazení.
- omezení-každý prvek je „omezen“ na aspekt displeje, jako je horní nebo boční část obrazovky nebo jiný prvek. Toto rozvržení pomáhá při konstrukci „reagujících“ aplikací a je dědicem zjevného relativního rozložení zavedeného v dřívějších verzích platformy Android.
po výběru konkrétního rozvržení (nebo kombinace rozvržení) se k definování uživatelského rozhraní používají jednotlivé pohledy.
Zobrazit Prvky se skládají ze známých prvků uživatelského rozhraní, včetně:
- tlačítko
- ImageView
- EditText shromažďovat vstup s různými filtry, jako je datum nebo číselné
- TextView (podobně jako štítek, zobrazuje statický text)
- zaškrtávací políčko
- přepínač
- Spinner (podobně jako „drop-down“ combo box)
- Automatické dokončování (EditText s automatickým textem-kompletní funkce)
pohledy jsou definovány v souboru XML. Například, to ukazuje jednoduchý LinearVertical pohled, s tlačítky a textviews definovaných:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1!" /><TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Activity 1, second text view!" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch To Activity 2" /></LinearLayout>
Zobrazit vícezobrazte více ikon
https://developer.android.com/, a přejděte dolů ke stažení Android Studio. Android Studio je k dispozici pro Windows, Mac a Linux.
Android Studio je založen na platformě IntelliJ IDE. Pokud jste typ vývojáře, který je zajímavý při využívání klávesových zkratek, můžete zvážit další informace o IntelliJ z webu jetbrains.
Začínáme s Android SDK
Nyní, když máme nainstalovaný Android Studio, je čas získat Software Developer Kit (SDK) pro Android.
ale než půjdeme dál, musíme vést diskusi o verzích systému Android.
Android verze
od svého vzniku byl Android propuštěn pod poněkud paralelní cestou numerických revizí vydání, úrovní API a také „sladkých“ jmen včetně Jelly Bean, KitKat, Oreo a dalších oblíbených cukrovinek.
je snadné být ohromen dostupnými možnostmi. Prozatím potřebujete jen trochu pochopení této „verze krajiny“, abyste mohli začít jako vývojář Android.
existuje mnoho verzí nebo revizí Androidu ve volné přírodě. Pokud se chystáte napsat žádost o komerční vydání, budete muset vědět, na která zařízení cílíte. Wikipedia má pěkné shrnutí verzí systému Android, jména, data vydání a grafiku zobrazující přibližný počet každého zařízení na trhu.
novější zařízení používají nejnovější kód a starší zařízení mohou být poněkud omezena schopností upgradovat na novější verzi systému Android. Někdy novější verze podporují funkce, které starší telefony nejsou schopny podporovat (přemýšlejte o druhé kameře, komunikaci v blízkosti pole atd.). Dalším netriviálním důvodem, proč starší telefony nemusí být schopny spustit nejnovější verzi systému Android, je to, že výrobce i telekomunikační operátor (Verizon, na&T atd.) Podpora nového operačního systému vyžaduje prostředky ze strany výrobce zařízení a dopravce. Tržní síly naznačují, že tito účastníci trhu se více zajímají o budoucí prodej než o podporu předchozího prodeje a podle toho investují svůj lidský kapitál.
jako vývojář softwaru, co na tom, že existují nové verze operačního systému? To se člení na dvě široké kategorie, pokud jde o programovací aplikace:
- nová verze operačního systému často zavádí nové funkce, které můžeme využít a / nebo naše uživatelská základna očekává, že naše aplikace budou podporovat.
- starší (nebo starší) funkce prostředí mohou ve skutečnosti bránit novějším funkcím a / nebo představovat nižší přístup k poskytování specifické sady funkcí. Někdy je třeba kód skutečně odstranit z definic API. Pro toto „odstranění“ dříve fungujícího kódu existuje zvláštní termín – nazýváme jej „deprecation kódu“. Když bylo API označeno pro odstranění, říkáme, že se jedná o zastaralé API. To je v podstatě zpráva pro vývojáře, který jde něco takového: „varování“ tento kód bude odstraněn v budoucnu, prosím plánovat odpovídajícím způsobem.“
příznivá pro vývojáře) svým přístupem k zastaralému kódu tím, že umožňuje aplikacím pokračovat v používání starších API po nějakou dobu poté, co byly označeny jako zastaralé. (Tento přístup kontrastuje s přístupem společnosti Apple s zastaralým kódem v systému iOS, kde starší kód může jednoduše přestat pracovat na dalším vydání operačního systému. U iOS se zdá, že i programovací jazyk se mění, když se nedíváme!)
zatímco Android může být trochu shovívavější s jeho dlouhodobým utrpením zastaralého kódu, musíme dávat pozor na značku dokumentace, která říká, že konkrétní API je zastaralé. Pokud je nějaký kód, který používáme, označen jako zastaralý, budeme muset nakonec změnit náš přístup v budoucí verzi naší aplikace, protože jakékoli API, které je označeno jako zastaralé, může být v budoucí verzi Odstraněno. Značky Deprecation v SDK jsou naším plánem budoucích příležitostí ke zlepšení a potenciálním bolestem hlavy. Někdy je „nový“ způsob, jak dělat věci, jednoduchý a přímočarý, ale ne v každém případě!
být úspěšným vývojářem mobilních aplikací vyžaduje průběžnou investici po celou dobu životnosti aplikace, kde čas má tendenci plynout jako psí roky … velmi rychle!
s tímto základním úvodem do verzí Androidu je čas získat Android SDK.
získání a instalace sady Android SDK
Spusťte aplikaci Android Studio. V nabídce Nástroje vyberte Správce SDK. Tato možnost nabídky načte dialogové okno Předvolby aplikace Android Studio a předběžně vybere podnabídku Android SDK. Toto menu je naším primárním prostředkem interakce s různými sadami SDK dostupnými pro mnoho verzí systému Android.
s každým vydáním operačního systému se úroveň API zvyšuje. Všimněte si, že revize se zvyšuje pomaleji než úroveň API. Revizi můžete považovat za „generaci“ platformy nebo za“ hlavní “ číslo verze. Při procházení dokumentace systému Android se ujistěte, že si všimnete, na které úrovni API byla zavedena konkrétní schopnost. Každé API je k dispozici na uvedené a vyšší úrovni API, pokud nebylo API zastaralé a následně odstraněno. Například rozhraní ContactsContract API bylo zavedeno na úrovni 5, což je v tomto bodě docela „staré“.
vyberte jednu nebo dvě úrovně SDK, se kterými chcete prozatím pracovat. Správce SDK následně stáhne související soubory a zpřístupní je pro použití v aplikaci Android Studio.
v nabídce Nástroje je také možnost Správce AVD. AVD je zkratka pro virtuální zařízení Android. Toto je emulátor. Emulátor je užitečný, protože nám umožňuje testovat aplikace na různých typech, velikostech a verzích zařízení. Snímky obrazovky v tomto tutoriálu jsou převzaty z emulátoru. Více o tom později.
budování své první aplikace pro Android
tento tutoriál vás provede vytvořením základní aplikace pro Android s názvem SaySomething
pomocí aplikace Android Studio a předvedením na emulátoru Android.
získejte kód
Krok 1: Vytvořte nový projekt
- vyberte soubor > nový projekt.
-
vyplňte dialogové okno Vytvořit projekt Android a klepněte na tlačítko Další.
požadavky na nový projekt zahrnují:
- název aplikace
- doména společnosti (to se obrátí do com.domény), aby aplikace byly rozděleny, i když mají stejný název aplikace.
- umístění projektu-kam ukládat soubory
- Název balíčku je navržen z názvu aplikace a domény společnosti
- ve výchozím nastavení jsou aplikace pro Android psány v Javě. Pokud chcete podporovat alternativní jazyky, například C++ (pro nativní kód) nebo Kotlin, zaškrtněte příslušná políčka.
-
v dialogu Cílová zařízení Android zadejte úroveň API a cílové platformy. Jak již bylo zmíněno dříve, Android je určen pro více než jen telefony, i když pro naše účely jednoduše vybereme tvarový faktor telefonu a tabletu pro tento tutoriál. Poté klikněte na další.
-
v dialogovém okně Přidat aktivitu do mobilu vyberte typ prázdné aktivity. Poté klikněte na další.
tím se vytvoří výchozí aplikace připravená k sestavení a spuštění přímo z Android Studio.
-
v dialogovém okně konfigurovat aktivitu pojmenujte soubory aplikace.
Krok 2: Zkontrolujte kód
následující obrázek ukazuje komponenty našeho nového projektu:
existují dvě složky: app
a Gradle skripty
.
- složka
aplikace
obsahuje veškerý kód naší aplikace. -
manifestuje
složku ve složceapp
obsahujeAndroidManifest.xml
, což je popisovač nasazení pro tuto aplikaci. Tento soubor informuje zařízení Android o tom, jak komunikovat s aplikací, jakou aktivitu zobrazit při spuštění aplikace, která zamýšlí aplikační služby, které ikony se mají zobrazit a mnoho dalšího. - složka
java
obsahuje zdrojový kód aplikace. V tomto případě soubor, který implementuje naši aktivitu, plus několik souborů třídy pro provádění automatizovaných testů(které budeme v tomto tutoriálu ignorovat). - složka
res
obsahuje prostředky pro aplikaci, včetně ikon, souborů rozvržení,řetězců, nabídek atd. - složka
Gradle Scripts
obsahuje všechny skriptovatelné prvky pro vytváření aplikace. Gradle build systém je téma samo o sobě. Prozatím pochopte, že tyto skripty řídí proces vytváření aplikace-a co je důležité pro vyspělejší projekty a týmy, každý z těchto kroků lze spustit z příkazového řádku. To je důležité, protože tento přístup podporuje automatizaci a spadá do kategorie nepřetržité integrace.
nyní podrobněji prozkoumáme zdrojový kód.
primární aktivita pro aplikaci
naše ukázková aplikace se skládá z jediné aktivity s názvem MainActivity
.
package com.navitend.saysomething;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.util.Log;import android.widget.Button;import android.widget.TextView;import android.widget.EditText;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("IBM","Hello there logcat!"); setContentView(R.layout.activity_main); final Button btnHitMe = (Button) findViewById(R.id.hitme); final Button btnMapMe = (Button) findViewById(R.id.mapme); final TextView tvLabel = (TextView) findViewById(R.id.thelabel); final EditText etLatitude = (EditText) findViewById(R.id.etLatitude); final EditText etLongitude = (EditText) findViewById(R.id.etLongitude); btnHitMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tvLabel.setText("Ouch!"); } } ); btnMapMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String coords = etLatitude.getText()+","+etLongitude.getText(); Log.i("IBM",coords); Uri mapsIntentUri = Uri.parse("geo:" + coords); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapsIntentUri); startActivity(mapIntent); } } ); }}
Zobrazit vícezobrazit více ikon
MainActivity je normální Java třída, s balíčkem a importy, jak se očekávalo.
MainActivity
rozšiřuje základní třídu Android s názvem AppCompatActivity
, která se nachází v balíčku s názvem android.podpora.v7.aplikace
.onCreate ()
je vstupním bodem této aktivity a přijímá argument typu Bundle
. Svazek
je třída, která je v podstatě obal kolem mapy nebo hashmap. V tomto parametru jsou předány prvky potřebné pro konstrukci. setContentView (..)
je zodpovědný za vytvoření primárního uživatelského rozhraní pomocí rozvržení R.hlavní
argument. Toto je identifikátor představující hlavní rozvržení nalezené ve zdrojích aplikace. Všimněte si, že všechny identifikátory ve třídě „R“ jsou automaticky generovány procesem sestavení. V podstatě všechny soubory prostředků xml ve složce res
popsané výše jsou přístupné pomocí třídy R.zdroje pro aplikaci
zdroje v Androidu jsou uspořádány do podadresáře projektu s názvem res, jak bylo popsáno výše. Zdroje spadají do několika kategorií. Tři z těchto kategorií jsou:
-
Drawables
– tato složka obsahuje grafické soubory, jako jsou ikony a bitmapy -
rozvržení
– Tato složka obsahuje soubory XML, které představují rozvržení a zobrazení aplikace. Ty budou podrobně prozkoumány níže. -
hodnoty
– tato složka obsahuje soubor s názvemřetězce.xml
. Toto je primární prostředek pro lokalizaci řetězců pro aplikaci. Barvy souboru.xml je užitečný pro definování barevných kódů používaných aplikací. Tento soubor je analogický css stylu listu pro ty, kteří jsou obeznámeni s web programovací techniky.
primární zdroje uživatelského rozhraní v main_activity.xml soubor
ukázková aplikace obsahuje jednu aktivitu a jeden pohled. Aplikace obsahuje soubor s názvem main_activity.xml
, který představuje vizuální aspekty primárního uživatelského rozhraní aktivity. Všimněte si, že v main_activity není žádný odkaz.xml
, kde se používá rozvržení. To znamená, že může být použit ve více než jedné činnosti, pokud je to žádoucí. Viz následující seznam kódů
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="301dp"> <Button android:id="@+id/hitme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hit Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="383dp" /> <Button android:id="@+id/mapme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Map Me!" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="460dp" /> </LinearLayout> <TextView android:id="@+id/thelabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Hello World, Say Something!!!!!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/etLatitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Latitude" android:inputType="numberDecimal" android:text="40.9241164" /> <EditText android:id="@+id/etLongitude" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Longitude" android:inputType="numberDecimal" android:text="-74.7213913" /></LinearLayout>
Zobrazit víceshow more icon
LinearLayout je druhý LinearLayout
uspořádán jako horizontální rozvržení. Toto vnitřní rozvržení obsahuje dvojici widgetů tlačítek. Pod vodorovnou linkou LinearLayout
je jeden element TextView, který lze přirovnat k označení v jiných vývojových prostředích. TextView
představuje statický text, který nelze upravovat. Pod TextView
jsou dvaEditText
widgety, nakonfigurované tak, aby přijímaly číselné vstupy. Tyto vstupní prvky se používají k zachycení hodnoty zeměpisné šířky a délky, která bude následně předána mapovací aplikaci, jak je ukázáno níže.
Všimněte si, že každý prvek zobrazení má atributy v prostoru názvu android. Některé atributy jsou společné pro všechna zobrazení-například atributyandroid:layout_width
aandroid:layout_height
. Hodnoty dostupné pro tyto atributy jsou:
- Match Parent-tím se rozšiřuje prvek zobrazení tak, aby zabíral maximální dostupný prostor. To lze také považovat za význam “ úsek.“
- Wrap Content-Tato volba vede k tomu, že prvek se rozšiřuje natolik, aby obsahoval jeho podřízené pohledy nebo atributy, jako je text nebo obrázek.
deskriptor nasazení pro aplikaci Android (AndroidManifest.xml)
AndroidManifest.soubor xml představuje deskriptor nasazení pro aplikaci pro Android. Soubor obsahuje všechny aktivity, služby, poskytovatele obsahu nebo příjemce obsažené v aplikaci spolu s příslušnými IntentFilters podporovanými aplikací. Zde je kompletní AndroidManifest.xml soubor pro ukázkovou aplikaci:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.navitend.saysomething"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
Zobrazit vícezobrazte více ikon
<manifest> v podstatě importuje třídy z tohoto balíčku. Všechny nekvalifikované třídy v tomto souboru se nacházejí v balíčku identifikovaném v atributu balíček.
<aplikace>
má atribut, který odkazuje na zdroj ze zdrojů aplikace. Všimněte si symbolu@, který předchází různým identifikátorům. Toto je nápověda pro toolchain, aby se podíval do příslušné složky zdrojů aplikace pro každý zdroj.značka <activity>
obsahuje následující atributy a hodnoty poznámky:
-
android: name
představuje třídu Java implementující tuto aktivitu -
android: label
obsahuje název aplikace. Všimněte si, že odkazuje na jeden ze zdrojů řetězce. Řetězec.soubor xml
obsahuje lokalizované řetězce pro aplikaci. -
<intent-filter>
představujeIntentFilter
dostupný v ukázkové aplikaci. Tato specifická sada akce a kategorie atributy jsou nejběžnějšíIntentFilter
vidět v aplikacích pro Android. Tento filtr v podstatě říká, že implementuje hlavní akci (nebo vstupní bod) a je k dispozici na aktuálně fungující spouštěcí obrazovce operačního systému. Zjednodušeně to znamená, že může být spuštěna jako aplikace z primárního seznamu aplikací v zařízení Android.
Krok 3: Vytvořte aplikaci
Chcete-li vytvořit aplikaci, vyberte v nabídce Android Studio ikonu klíče (vypadá to spíš jako kladivo).
proces sestavení, jak byl představen dříve, je vícestupňový proces, který lze přizpůsobit pro jakoukoli konkrétní aplikaci. V tomto tutoriálu neupravujeme proces sestavení. Výstup procesu sestavení by měl vypadat takto:
abychom demonstrovali proces sestavení, zavedli jsme chybu do zdrojového kódu; přidali jsme další místo v názvu metody findViewById
, znázorněné na následujícím obrázku:
tím se vytvoří syntaxe nebo chyba při analýze, která je zachycena procesem sestavení a zobrazena v podrobnostech okna výsledků sestavení v aplikaci Android Studio. Po opravě chyby ve zdrojovém kódu se aplikace správně sestaví a chyby se odstraní ze seznamu problémů.
Krok 4: Spusťte aplikaci
Nyní, když byla aplikace úspěšně zkompilována, je čas spustit ukázkovou aplikaci.
dříve v tomto tutoriálu byl AVD Manager představen jako prostředek pro konfiguraci emulátoru pro testování aplikací bez potřeby skutečného zařízení. Spuštění aplikace pomocí emulátoru je obzvláště užitečné, protože umožňuje testování bez nutnosti nákupu mnoha nákladných zařízení.
Chcete-li nastavit emulátor nebo správněji virtuální zařízení Android (AVD), vyberte nástroje > AVD Manager. Nebo jednoduše klikněte na ikonu Přehrát (spustit).
spustí se okno, které vám umožní vybrat buď skutečné zařízení, které je připojeno kabelem USB, nebo dostupnou instanci AVD, jak je znázorněno na následujícím obrázku:
pokud jsou připojená zařízení, každé se zobrazí v rozevírací nabídce pod připojenými zařízeními. Případně vyberte z jednoho z dostupných virtuálních zařízení. Na předchozím obrázku je definován jediný AVD s názvem Nexus One API P
. Chcete-li vytvořit nový AVD, vyberte tlačítko Vytvořit nové virtuální zařízení.
nakonec klikněte na OK pro spuštění aplikace ve vybraném cíli nasazení. AVD nebo emulátor se spouští s naší ukázkovou aplikací běžící na něm.
Krok 5: Otestujte aplikaci v emulátoru
Nyní, když je aplikace spuštěna na emulátoru, pojďme se podívat na to, co se děje v zákulisí. V aplikaci Android Studio vyberte Zobrazit > okna nástrojů. Zdůrazníme jen několik těchto možností nástrojů, i když každá z nich je téma samo o sobě.
nástroje Android Studio
nejprve se podívejte na Profiler Android, který zobrazuje běžící graf CPU, paměti a síťového provozu. Profiler Android nám umožňuje přepínat mezi různými zařízeními / instancemi emulátoru a příslušnými běžícími procesy. Následující obrázek zobrazuje metriky naší ukázkové aplikace běžící na instanci emulátoru.
protokolování je užitečný nástroj pro všechny vývojáře na jakékoli platformě. Pro vývojáře systému Android je název nástroje LogCat.
LogCat je běžící soubor protokolu aktivity probíhající ve VM. Aplikace mohou vytvářet své vlastní položky do tohoto seznamu pomocí jednoduchého řádku kódu následujícím způsobem: log.i (tag, message); 1
, kde tag
a message
jsou oba řetězce Java. Log
třída je součástí android.util.Log
balíček.
dalším užitečným nástrojem je Průzkumník souborů, který umožňuje přístup k souborovému systému emulátoru. Následující obrázek ukazuje, kde je ukázková aplikace tutoriálu nasazena na emulátoru.
uživatelské aplikace jsou nasazeny v / data / app
, zatímco vestavěné aplikace pro Android se nacházejí v adresáři /system/app
.
úplné ladění aplikace pro Android je nad rámec tohoto tutoriálu, i když si můžete být jisti, že Android Studio podporuje všechny moderní nástroje pro ladění aplikací, na které můžeme doufat, s věcmi, jako je vstup a překročení funkčních volání.
testování ukázkové aplikace
klepněte na Hit Me! tlačítko a obsah štítku se změní na “ au!“
klepněte na mapu Me! se zadanou zeměpisnou šířkou a délkou, která je obsažena v widgetech EditText.
zapojení tlačítek je v Hlavníaktivita.xml kód. Zejména si všimněte, jak jsou hodnoty zeměpisné šířky a délky extrahovány a zabaleny do záměru, který se následně použije ke spuštění mapovací aplikace.
tento tutoriál představil platformu Android, Android Studio a klíčové prvky vývoje Androidu. Nyní byste měli být připraveni vytvořit si vlastní aplikace pro Android.
jste připraveni na něco víc? Vyzkoušejte tento tutoriál, kde používáte rozhraní API Bluetooth Low Energy (BLE) k vytváření zařízení připojených k Internetu věcí.