ensimmäisen Android-sovelluksen kehittäminen
miksi me välitämme Androidista? Välitämme Android-alustasta, koska se on laajimmalle levinnyt mobiilialusta planeetalla ja on kuluttajien saatavilla ympäri maailmaa. Talouksissa, joissa henkilökohtaisen tietokoneen omistaminen on luksusta, mobiililaitteiden käyttö on normi–ja Androidilla on suuri rooli ihmisten yhdistämisessä toisiinsa. Kuten opit tässä opetusohjelmassa, Android ottaa erillisen lähestymistavan sovelluksiin. Arkkitehtuuri Android mahdollistaa erittäin muokattavissa ohjelmistoympäristön ansiosta runtime sitova pyydettyjen toimien ja koodin tyydyttää nämä pyynnöt. Olipa se markkinalähtöisiä näkökohtia tai teknisiä näkökohtia Android, se on alusta kannattaa tutkia. Edelleen, Jos olet antaa vakavaa harkintaa ottaa mobiili kokemus Alustan, et voi sivuuttaa Android.
Edeltävät opinnot
tämä opetusohjelma vaatii useita teknologioita, jotka toimivat yhdessä. Tarvitset ne kaikki tähän opetusohjelma.
- Android Studio-Android Studio on ensisijainen lähtökohta rakentaa Android-sovelluksia
- Android – laite tai emulaattori-haluat joko fyysisen Android-laitteen tai Android-emulaattorin. Joka tapauksessa, lukemalla tämän opetusohjelman avulla voit ymmärtää perus yhteyspisteet Android-sovelluksen.
-
lähdekoodi – Lähdekoodipätkiä tässä opetusohjelmassa ovat:
- Androidimanifest.xml-katkelma – tämä tiedosto on Android-sovellusten käyttöönoton kuvaaja.
- Pääaktiivisuus.java-Tämä toteuttaa Android-toimintaa, ensisijainen sisääntulokohta näytteen sovelluksen tämän opetusohjelman.
- Activity_main.xml-tämä sisältää määritelmät visuaalisia elementtejä, tai resursseja, käytettäväksi Android toimintaa.
- AndroidManifest.XML complete – tämä listaa täyden AndroidManfest.xml-tiedosto, sekä kuvaus kunkin tärkeitä elementtejä.
Esittelyssä Android architecture
ennen sukellusta suoraan sisään ja ulos Android Studio ja kehittää Android sovelluksia, katsotaanpa vilkaista arkkitehtuuria Android ja joitakin keskeisiä termejä, jotka ovat hyödyllisiä opetusohjelma ja sen jälkeen, kun alat rakentaa Android sovelluksia itsellesi.
Android-terminologia
alla olevien termien ymmärtäminen auttaa Android-sovelluskehityksessä Android Studion kanssa.
- Android on mobiililaitteille suunnattu avoimen lähdekoodin käyttöympäristö. Android löytyy yhä useammin ”älypuhelinten”ulkopuolisista sovelluksista. Näitä ovat Puettava Teknologia, laitteet, kuten projektorit, kaiuttimet ja televisiot, ja jopa autot.
- emulaattori on toista järjestelmää edustava ohjelmistotyökalu. Usein emulaattori on ympäristö, joka toimii henkilökohtaisella tietokoneella (PC, Mac, Linux-kone), joka emuloi toista ympäristöä, kuten mobiilitietokonetta.
- Linux on avoimen lähdekoodin käyttöjärjestelmän ydin monien tietojenkäsittelyalustojen, kuten palvelimien, pöytätietokoneiden, verkkolaitteiden ja mobiililaskentalaitteiden ytimessä. Android toimii Linux-ytimen päällä.
- Android Run Time (ART) on Android-pinosta löytyvä toimintaympäristö, joka suorittaa sovelluskoodin ajon aikana. Android Run Time korvaa” legacy ” Dalvik Virtual Machinen (VM) aiemmista Androidin versioista, jotka toimivat yhteensopivan Java VM: n tavoin.
the intent
sen perustamisesta lähtien Androidista on tullut hallitseva voima matkapuhelintilassa. Sen sovellusmalli on sikäli ainutlaatuinen, että sovellukset eivät ole monoliittisia, valikkoon ladattuja sovelluksia, jotka vaativat toimiakseen paljon klikkailua ja naputtelua. Toki valikoita ja painikkeita on naputeltavana, mutta Androidilla on arkkitehtuurissaan innovatiivinen design-elementti, joka tunnetaan intentionina.
intentio on konstruktio, jonka avulla hakemus voi antaa pyynnön, joka muistuttaa hieman apua kaipaavaa merkkiä. Se voi näyttää näiltä.:
- ” etsintäkuulutettu: Sovellus, joka auttaa minua etsimään yhteystietoa”
- ”, halusi: sovellus, joka auttaa minua näyttämään tämän kuvan”
- ”, halusi: sovellus, joka suorittaa tämän maantieteellisen haun.”
samankaltaisella ja täydentävällä tavalla sovellukset voivat rekisteröityä kyvykkäiksi ja kiinnostuneiksi täyttämään erilaisia pyyntöjä tai aikomuksia. Seurataksesi salaista mainosparadigmaa, nämä saattavat näyttää tältä:
- ”saatavilla: hakemus valmis ja halukas esittämään yhteystietoja selkeällä ja ytimekkäällä tavalla”
- ” saatavilla: Sovellus valmis ja halukas suorittamaan maantieteellisen haun.”
nämä ovat esimerkkejä IntentFilters, joita käsitellään seuraavaksi.
IntentFilter
Sovellukset ilmoittavat olevansa käytettävissä suorittamaan tämäntyyppisiä operaatioita konstruktiolla, joka tunnetaan nimellä IntentFilter
. IntentFilter
on joko rekisteröity ajettaessa tai se on lueteltu Androidmanifestissä.xml-tiedosto. Seuraava pätkä tulee Android-sovelluksesta, joka vastaa saapuviin tekstiviesteihin (text):
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Näytä moreShow lisää kuvake
IntentFilter – johdannon jälkeen seuraavassa osassa esitellään Android-sovellusten neljä päätyyppiä.
Android-sovellusten tyypit
tarkastellaan hetki Android-sovellusten neljää päätyyppiä:
- toiminta
- palvelu
- vastaanotin
- ContentProvider
käymme myös läpi näkymiä näyttääksemme käyttöliittymän (UI) elementit.
Aktiivisuussovellukset
toiminta on Android-sovelluksen näkyvin ja näkyvin muoto. Toiminto esittelee käyttöliittymän sovellukseen yhdessä näkymänä tunnetun luokan avustuksen kanssa. Näkymäluokka toteutetaan erilaisina KÄYTTÖLIITTYMÄELEMENTTEINÄ, kuten tekstilaatikkoina, etiketteinä, painikkeina ja muina tietojenkäsittelyalustoille tyypillisinä UIs: nä, mobiilina tai otherwise.An hakemus voi sisältää yhden tai useamman toiminnon. Toiminto määritellään tyypillisesti kahdenkeskisessä suhteessa sovelluksesta löytyviin näyttöihin.
sovellus siirtyy toiminnosta toiseen kutsumalla menetelmää, joka tunnetaan nimellä startuptivity ()
tai startupsubactivity ()
. Entistä menetelmää käytetään, kun sovellus haluaa yksinkertaisesti ”vaihtaa” uuteen toimintaan. Jälkimmäistä käytetään, kun halutaan synkroninen puhelu/vastausparadigma. Molemmissa tapauksissa tahallisuus siirtyy argumenttina kutsutulle menetelmälle.
käyttöjärjestelmän vastuulla on määritellä parhaiten pätevä toiminta, joka täyttää määritetyn tarkoituksen.
palvelu-ja vastaanottosovellukset
muiden monitehtäväisten laskentaympäristöjen tapaan on ”taustalla” toimivia sovelluksia, jotka suorittavat erilaisia tehtäviä. Android kutsuu tämäntyyppisiä sovelluksia palveluiksi. Palvelu on Android-sovellus, jossa ei ole käyttöliittymää.
vastaanottaja on sovelluskomponentti, joka vastaanottaa pyyntöjä käsitellä intentit. Kuten palvelu, vastaanottimessa ei ole NORMAALIKÄYTÄNNÖSSÄ käyttöliittymäelementtiä. Vastaanottimet ovat tyypillisesti rekisteröity AndroidManifest.xml-tiedosto.
seuraava pätkä (joka on sama kuin Intentfilterille esitetty) on esimerkki vastaanottimen sovelluksesta. Huomaa, että vastaanottimen nimi-attribuutti on Java-luokka, joka vastaa vastaanottimen toteuttamisesta.
<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Näytä moreShow more-kuvake
ContentProvider
on Android-mekanismi data-store-abstraktioon. Katsotaanpa tietyntyyppistä tietoa, joka löytyy mobiililaitteesta: osoitekirja tai yhteystietotietokanta. Osoitekirja sisältää kaikki yhteystiedot ja puhelinnumerot, joita henkilö voi tarvita matkapuhelinta käyttäessään.
ContentProvider
on mekanismi, jolla abstrahoidaan pääsy tiettyyn tietovarastoon. ContentProvider
toimii monin tavoin tietokantapalvelimen roolissa. Toimet sisällön lukemiseksi ja kirjoittamiseksi tiettyyn tietovarastoon olisi välitettävä asianmukaisen ContentProvider
: n kautta sen sijaan, että ne käyttäisivät tiedostoa tai tietokantaa suoraan. ContentProvider
voi olla sekä ”asiakkaita” että ”toteutuksia”.
Android Views
Android views on KÄYTTÖLIITTYMÄMEKANISMI asioiden laittamiseksi Android-laitteen näytölle. Android-toiminto käyttää näkymiä käyttöliittymän elementtien näyttämiseen. Jotkut suosituimmista layout mallit ovat:
- LinearVertical-jokainen seuraava elementti seuraa edeltäjäänsä virtaamalla sen alle yhdessä sarakkeessa.
- LinearHorizontal – jokainen seuraava elementti seuraa edeltäjäänsä virtaamalla oikealle yhtenä rivinä.
- taulukko-rivien ja sarakkeiden sarja, joka muistuttaa HTML-taulukkoa. Jokaiseen soluun mahtuu yksi näkymäelementti.
- rajoite – jokainen elementti on ”rajoitettu” johonkin näytön osa-alueeseen, kuten näytön yläosaan tai sivuun tai muuhun elementtiin. Tämä asettelu auttaa rakentamisessa ”reagoiva” sovelluksia ja on perillinen perintö suhteellinen asettelu käyttöön aiemmissa versioissa Android-alustan.
kun tietty asettelu (tai asettelujen yhdistelmä) on valittu, käyttöliittymää määritettäessä käytetään yksittäisiä näkymiä.
View-elementit koostuvat tutuista KÄYTTÖLIITTYMÄELEMENTEISTÄ, mm.:
- painike
- ImageView
- Editext, jolla voit kerätä syötettä erilaisilla suodattimilla, kuten päiväys tai numeerinen
- Tekstiview (samanlainen kuin nimilappu, näyttää staattisen tekstin)
- valintaruutu
- Radiopainike
- Kiekko (samanlainen kuin pudotusvalikko)
- Kiekko (samanlainen kuin ”pudotusvalikko”)
- automaattinen täydennys (Edititext automaattisella tekstillä-täydellinen ominaisuus)
näkymät määritellään XML-tiedostossa. Tämä näyttää esimerkiksi yksinkertaisen Linearvertisen näkymän, jossa painikkeet ja tekstinäkymät on määritelty:
<?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>
Näytä moreShow lisää kuvake
https://developer.android.com/, ja selaa alas ladata Android Studio. Android Studio on saatavilla Windowsille, Macille ja Linuxille.
Android Studio perustuu IntelliJ IDE-alustaan. Jos olet sellainen kehittäjä, joka on mielenkiintoinen hyödyntämällä pikanäppäimiä, saatat harkita lisätietoja IntelliJ JetBrains verkkosivuilla.
Android SDK
nyt kun Android Studio on asennettu, on aika hankkia Software Developer Kit (SDK) Androidille.
mutta ennen kuin menemme pidemmälle, meidän on keskusteltava Android-versioiden ympärillä.
Android-versiot
sen perustamisesta lähtien Android on julkaistu jokseenkin rinnakkaisella polulla numeerisia julkaisuversioita, API-tasoja ja myös ”makeita” nimiä kuten Jelly Bean, KitKat, Oreo ja muut makeiset suosikit.
on helppo häkeltyä tarjolla olevista valinnoista. Nyt tarvitset vain hieman ymmärrystä tämän ”versio maisema” päästä alkuun Android Kehittäjä.
Androidista on luonnossa useita versioita eli versioita. Jos aiot kirjoittaa hakemuksen kaupalliseen julkaisuun, sinun täytyy tietää, mitä laitteita kohdistat. Wikipedia on mukava Yhteenveto Android versiot, nimet, julkaisupäivät sekä graafinen kuvaa likimääräinen määrä kunkin laitteen markkinoilla.
uudemmat laitteet käyttävät uusinta koodia, ja vanhempien laitteiden kykyä päivittää uudempaan Android-versioon voi jonkin verran rajoittaa. Joskus uudemmat versiot tukevat ominaisuuksia, joita vanhemmat puhelimet eivät pysty tukemaan (ajattele toista kameraa, lähellä Kenttäviestintää ja niin edelleen). Toinen ei-triviaali syy siihen, että vanhemmat puhelimet eivät välttämättä pysty käyttämään uusinta Android-versiota, on se, että sekä valmistajan että telecom-operaattorin (Verizon, AT&t, ja niin edelleen) on tuettava niiden ekosysteemissä toimivia ohjelmistoja. Uuden käyttöjärjestelmän tukeminen vaatii resursseja laitteen valmistajalta ja operaattorilta. Markkinavoimat viittaavat siihen, että nämä markkinaosapuolet ovat kiinnostuneempia tulevasta myynnistä kuin aiemman myynnin tukemisesta ja investoivat inhimillistä pääomaansa sen mukaisesti.
ohjelmistokehittäjänä mitä väliä sillä on, että käyttöjärjestelmästä on uusia versioita? Tämä jakautuu ohjelmointisovellusten osalta kahteen laajaan kategoriaan:
- käyttöjärjestelmän uusi versio tuo usein uusia ominaisuuksia, joita voimme hyödyntää ja / tai käyttäjäkuntamme odottaa sovellustemme tukevan.
- ympäristön vanhemmat (tai vanhat) ominaisuudet saattavat itse asiassa haitata uudempia ominaisuuksia ja / tai edustaa huonompaa lähestymistapaa tietyn toiminnallisuusjoukon tarjoamiseen. Joskus koodi on todella poistettava API määritelmät. On erityinen termi tälle ”poistaminen” aiemmin toimiva koodi – kutsumme sitä ”koodi deprecation”. Kun API on merkitty poistettavaksi, sanomme, että tämä on vanhentunut API. Tämä on lähinnä viesti kehittäjä, joka menee jotain tällaista:” Varoitus ” Tämä koodi poistetaan tulevaisuudessa, Please Please appropriate.”
Android-alusta on ollut melko liberaali (eli kehittäjälle suopea) lähestymistavaltaan vanhentuneeseen koodiin sallimalla sovellusten jatkaa vanhempien sovellusliittymien käyttöä vielä jonkin aikaa sen jälkeen, kun ne on merkitty vanhentuneiksi. (Tämä lähestymistapa eroaa Applen lähestymistapa vanhentunutta koodia iOS jossa vanhempi koodi voi yksinkertaisesti vain lakata toimimasta seuraavan käyttöjärjestelmän julkaisu. IOS: llä jopa ohjelmointikieli näyttää muuttuvan, kun emme etsi!)
vaikka Android saattaa olla hieman anteeksiantavampi pitkämielisen vanhentuneen koodinsa kanssa, meidän täytyy pitää silmällä dokumentaatiomerkkiä, jossa sanotaan, että tietty API on vanhentunut. Jos jokin käyttämämme koodi on merkitty vanhentuneeksi, meidän on lopulta muutettava lähestymistapaamme sovelluksemme tulevassa versiossa, koska kaikki API: t, jotka on merkitty vanhentuneiksi, voidaan poistaa tulevassa julkaisussa. SDK: n poistomerkit ovat Tiekarttamme tuleviin parannusmahdollisuuksiin ja mahdollisiin päänsärkyihin. Joskus” uusi ” tapa tehdä asioita on yksinkertainen ja suoraviivainen, mutta ei joka tapauksessa!
menestynyt mobiilisovelluskehittäjä vaatii jatkuvaa investointia sovelluksen eliniän aikana, jossa aika tuppaa kulumaan kuin koiran Vuodet … hyvin nopeasti!
tällä Androidin versioiden perusintrolla on aika hankkia Android SDK.
Android SDK: n hankkiminen ja asentaminen
Aloita Android Studio. Valitse Työkalut-valikosta SDK Manager. Tämä valikkovaihtoehto Lataa Android Studio Preferences-valintaikkunan ja esivalitsee Android SDK – alivalikon. Tämä valikko on ensisijainen keino vuorovaikutuksessa eri SDK saatavilla monia versioita Android.
jokaisella käyttöjärjestelmän julkaisulla API-tason lisäykset. Huomaa, että versio kasvaa hitaammin kuin API-taso. Voit ajatella versiota Alustan ”sukupolvena” tai ”suurena” versionumerona. Kun selaat Android-dokumentaatiota, muista huomata, millä API-tasolla tietty ominaisuus otettiin käyttöön. Jokainen API on saatavilla ilmoitetulla API-tasolla ja sitä suuremmalla tasolla, ellei API: ta ole poistettu ja myöhemmin poistettu. Esimerkiksi ContactsContract API otettiin käyttöön tasolla 5, joka on tässä vaiheessa melko ”vanha”.
valitse toistaiseksi yksi tai kaksi SDK-tasoa. SDK Manager lataa myöhemmin liittyvät tiedostot ja antaa ne käytettäväksi Android Studio.
myös Tools-valikosta löytyy vaihtoehto AVD Managerille. AVD tulee sanoista Android Virtual Device. Tämä on emulaattori. Emulaattori on hyödyllinen, koska sen avulla voimme testata sovelluksia eri laitetyyppejä, kokoja ja versioita. Näytön laukausta tässä opetusohjelma on otettu emulaattori. Lisää tästä myöhemmin.
ensimmäisen Android-sovelluksen rakentaminen
tämä opetusohjelma opastaa luomaan perustason Android-sovelluksen, nimeltään SaySomething
, käyttämällä Android studiota ja demonstroimalla sitä Android-emulaattorilla.
Get the code
Step 1: Luo uusi projekti
- Valitse tiedosto > uusi projekti.
-
täytä luo Android-projekti-ikkuna ja valitse Seuraava.
uuden projektin vaatimuksia ovat:
- Sovelluksen nimi
- yrityksen verkkotunnus (tämä käännetään comiksi.domain) pitää sovellukset osioituina, vaikka niillä olisi sama Sovelluksen nimi.
- Project Location – minne tallentaa tiedostot
- paketin nimeä ehdotetaan sovelluksen nimestä ja yritysalueesta
- oletuksena Android-sovellukset on kirjoitettu Javalla. Jos haluat tukea vaihtoehtoisia kieliä, kuten C++: aa (native code) tai Kotlinia, Valitse asianmukaiset valintaruudut.
-
on tavoite Android-laitteet dialogi, määritä API taso ja kohdealustat. Kuten aiemmin mainittiin, Android on enemmän kuin vain puhelimet, vaikka meidän tarkoituksiin me yksinkertaisesti valita puhelimen ja tabletin muodossa tekijä tämän opetusohjelma. Valitse sitten Seuraava.
-
valitse aktiviteetin lisääminen mobiiliin-valintaikkunassa tyhjä Aktiviteettityyppi. Valitse sitten Seuraava.
tämä luo oletussovelluksen, joka on valmis rakennettavaksi ja suoritettavaksi suoraan Android studiosta.
-
Määritä toiminta-valintaikkunassa nimeä sovelluksen tiedostot.
Vaihe 2: käy läpi koodi
seuraava kuva osoittaa uuden projektimme osatekijät:
näytettyjä uusia projektitiedostoja on kaksi kansiota: app
ja Gradle-skriptejä
.
-
sovellus
kansio sisältää kaikki sovelluksemme tunnukset. -
manifestit
kansioapp
sisältääAndroidmanifestin.xml
, joka on tämän sovelluksen käyttöönoton kuvaaja. Tämä tiedosto kertoo Android-laitteen siitä, miten vuorovaikutuksessa sovelluksen, mikä toiminta näyttää, kun sovellus käynnistetään, joka aikoo sovellus Palvelut, joka kuvakkeet näyttää ja paljon muuta. -
java
– kansio sisältää sovelluksen lähdekoodin. Tässä tapauksessa, tiedosto, joka toteuttaa toimintamme sekä pari luokan tiedostoja suorittaa automatisoituja testejä (jonka ohitamme tämän opetusohjelma). -
res
– kansio sisältää sovelluksen resurssit, kuten kuvakkeet, asettelutiedostot, merkkijonot, valikot ja niin edelleen. -
Gradle-skriptit
– kansio sisältää kaikki sovelluksen rakentamiseen tarvittavat skriptattavat elementit. Gradle rakentaa järjestelmä on aihe itselleen. Nyt, ymmärtää, että nämä skriptit ohjaavat prosessin rakentaa sovelluksen-ja mikä tärkeintä kypsempiä projekteja ja tiimejä, jokainen näistä vaiheista voidaan ajaa komentoriviltä. Tämä on tärkeää, koska tämä lähestymistapa tukee automaatiota ja kuuluvat luokkaan jatkuva integraatio.
nyt tarkastellaan lähdekoodia tarkemmin.
sovelluksen ensisijainen aktiivisuus
otoshakemuksemme koostuu yhdestä ainoasta aktiivisuudesta, jonka nimi on Pääaktiivisuus
.
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); } } ); }}
Näytä moreShow Lisää kuvaketta
Pääaktiivisuus on normaalia Java-luokkaa, jossa on odotetusti paketti ja tuontia.
MainActivity
laajentaa perus-Android-luokkaa nimeltä AppCompatActivity
, joka sijaitsee paketissa nimeltä android.tukee.v7.app
.onCreate()
method is the entry point to this activity, receiving an argument of type Bundle
. nippu
on luokka, joka on käytännössä kartan tai hashmapin ympärillä oleva kääre. Elementit tarvitaan rakentamiseen ohitetaan tässä parametrissa. setContentView(..)
on vastuussa ensisijaisen käyttöliittymän luomisesta käyttäen R.-asettelua.tärkein
argumentti. Tämä on tunniste, joka edustaa sovelluksen resursseista löytyvää pääasettelua. Huomaa, että kaikki ”R” – luokan tunnisteet syntyvät automaattisesti rakentamisprosessissa. Periaatteessa kaikki XML-resurssitiedostot res
– kansiossa, jotka on kuvattu aiemmin, ovat käytössä R-luokalla.sovelluksen resurssit
Androidin resurssit on järjestetty projektin alahakemistoon nimeltä res, kuten aiemmin on kuvattu. Resurssit jakautuvat useisiin luokkiin. Näistä luokista kolme on:
-
piirrettävät
– tämä kansio sisältää grafiikkatiedostoja, kuten kuvakkeita ja bittikarttoja -
asetteluja
– tämä kansio sisältää XML-tiedostoja, jotka edustavat sovelluksen asetteluja ja näkymiä. Niitä tarkastellaan yksityiskohtaisesti jäljempänä. -
arvot
– tämä kansio sisältää tiedoston nimeltämerkkijonoja.xml
. Tämä on ensisijainen keino merkkijono lokalisointi sovelluksen. Tiedoston värit.xml on hyödyllinen sovelluksen käyttämien värikoodien määrittelyssä. Tämä tiedosto on analoginen CSS-tyylinen arkki niille, jotka tuntevat web-ohjelmointitekniikat.
käyttöliittymän ensisijaiset resurssit pää_aktiivisuudessa.xml-tiedosto
näytesovellus sisältää yhden toiminnon ja yhden näkymän. Sovellus sisältää tiedoston nimeltä main_activity.xml
, joka edustaa toiminnon ensisijaisen käyttöliittymän visuaalisia näkökohtia. Huomaa, että kohdassa pää_activity ei ole viittausta.xml
, jos asettelua käytetään. Tämä tarkoittaa, että sitä voidaan käyttää useammassa kuin yhdessä toiminnassa, jos halutaan. Katso seuraava koodiluettelo
<?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>
Näytä moreShow Lisää kuvaketta
LinearLayout on toinen LinearLayout
järjestetty vaakasuoraksi asetteluksi. Tämä sisempi asettelu sisältää pari painiketta widgetit. Vaakatason LinearLayout
alla on yksi TextView-elementti, jota voi verrata etikettiin muissa kehitysympäristöissä. TextView
edustaa staattista tekstiä, jota ei voi muokata. TextView
alla on kaksi Editext
– sovelmaa, jotka on määritetty ottamaan numeerisia syötteitä. Näitä syöttöelementtejä käytetään leveys-ja pituusasteen arvon kuvaamiseen, joka siirretään myöhemmin kartoitussovellukseen, kuten jäljempänä osoitetaan.
huomaa, että jokaisella näkymäelementillä on attribuutteja Androidin nimiavaruudessa. Jotkin attribuutit ovat yhteisiä kaikille näkymille-esimerkiksi android:layout_width
ja android:layout_height
attribuutit. Näiden ominaisuuksien arvot ovat:
- Match Parent-tämä laajentaa näkymäelementin ottamaan suurimman käytettävissä olevan tilan. Tämän voidaan ajatella tarkoittavan myös ” venymistä.”
- Wrap Content – tämä valinta johtaa siihen, että elementti laajenee juuri sen verran, että se sisältää lapsinäkymiä tai attribuutteja, kuten tekstiä tai kuvaa.
Android-sovelluksen Käyttöönottokuvaus (AndroidManifest.xml)
The AndroidManifest.xml-tiedosto edustaa Android-sovelluksen käyttöönottokuvausta. Tiedosto listaa minkä tahansa sovelluksen sisältämän toiminnan, palvelun, sisällöntuottajan tai vastaanottajan sekä asianmukaiset sovelluksen tukemat Intentfilterit. Tässä on täydellinen AndroidManifest.näytesovelluksen xml-tiedosto:
<?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>
Näytä moreShow more icon
<manifest> tagi tuo lähinnä luokkia tästä paketista. Kaikki tämän tiedoston ei-täysin hyväksytyt luokat löytyvät paketti-attribuutissa yksilöidystä paketista.
<hakemus>
tagilla on attribuutti, joka viittaa sovelluksen resursseista saatavaan resurssiin. Huomaa eri tunnisteita edeltävä @ – symboli. Tämä on vinkki, että työkaluketju voi katsoa sovelluksen resurssien kunkin resurssin vastaavaan kansioon.<toiminto>
tagi sisältää seuraavat Huom. ominaisuudet ja arvot:
-
android: name
edustaa tämän toiminnon toteuttavaa Java-luokkaa -
android:label
sisältää sovelluksen nimen. Huomaa, että se viittaa johonkin merkkijonon resursseista.merkkijono.xml
tiedosto sisältää sovelluksen lokalisoidut merkkijonot. -
<intent-suodatin>
edustaa näytesovelluksessa olevaaIntentfilteriä
. Tämä erityinen joukko toiminta-ja luokka-attribuutteja on yleisinIntentFilter
nähty Android-sovelluksissa. Tämä suodatin kertoo lähinnä, että se toteuttaa päätoiminnon (tai sisääntulokohdan) ja on saatavilla käyttöjärjestelmän tällä hetkellä toimivassa käynnistysnäytössä. Yksinkertaisesti, tämä tarkoittaa, että se voidaan aloittaa sovelluksena ensisijaisesta luettelosta sovelluksia Android-laitteella.
Vaihe 3: Rakenna sovellus
rakentaaksesi sovelluksen, valitse jakoavain-kuvake (näyttää minusta enemmän vasaralta) Android Studion valikosta.
aiemmin esitelty rakennusprosessi on monivaiheinen prosessi, joka voidaan räätälöidä mihin tahansa tiettyyn sovellukseen. Tämän opetusohjelman, emme muuta rakentaa prosessi. Tuotos rakentaa prosessin pitäisi näyttää jotain tällaista:
to demonstrate the build process, we have introduced an error into the source code; menetelmän nimeen lisättiin ylimääräinen tila findViewById
, joka näkyy seuraavassa kuvassa:
tämä luo syntaksin tai jäsennysvirheen, jonka build-prosessi poimii ja joka näkyy build results-ikkunan yksityiskohdissa Android studiossa. Kun virhe on korjattu lähdekoodissa, sovellus rakentuu kunnolla ja virheet poistetaan ongelmaluettelosta.
Vaihe 4: Suorita sovellus
nyt kun sovellus on koottu onnistuneesti, on aika suorittaa näytesovellus.
aiemmin tässä tutoriaalissa esiteltiin avd Manager, jolla emulaattori voidaan konfiguroida sovellusten testaamiseen ilman varsinaista laitetta. Sovelluksen suorittaminen emulaattorin avulla on erityisen hyödyllistä, koska se mahdollistaa testauksen ilman tarvetta ostaa lukuisia kalliita laitteita.
emulaattorin, tai oikeammin Android-Virtuaalilaitteen (AVD), asentamiseksi valitse Työkalut > AVD Manager. Tai klikkaa Play (Run) – kuvaketta.
tämä käynnistää ikkunan, jonka avulla voit valita joko oikean laitteen, joka on liitetty USB-kaapelilla, tai käytettävissä olevan AVD-instanssin, kuten seuraavassa kuvassa on esitetty.:
jos on liitettyjä laitteita, jokainen niistä näkyy liitettyjen laitteiden alapuolella olevassa pudotusvalikossa. Vaihtoehtoisesti voit valita yhden käytettävissä olevista Virtuaalilaitteista. Edellisessä kuvassa on yksi AVD määritelty otsikolla Nexus One API p
. Jos haluat luoda uuden AVD: n, valitse Luo uusi Virtuaalilaite-painike.
napsauta lopuksi OK käynnistääksesi sovelluksen valitussa käyttöönottokohteessa. AVD tai emulaattori käynnistyy meidän näyte sovellus käynnissä sitä.
Vaihe 5: Testaa sovellusta emulaattorissa
nyt kun sovellus on käynnissä emulaattorilla, katsotaan mitä kulissien takana tapahtuu. Valitse Android Studion sisällä näkymä > Työkaluikkunat. Korostamme vain pari näistä työkaluvaihtoehdoista, vaikka jokainen niistä on aihe itselleen.
Android Studio Tools
katso ensin Android-Profiloijaa, joka kuvaa suoritin -, Muisti-ja verkkoliikenteen käynnissä olevaa kaaviota. Android profiloija sallii meidän vaihtaa eri laitteiden / emulaattori esiintymiä ja vastaavien käynnissä olevat prosessit. Seuraava kuva näyttää mittarit meidän näyte sovellus käynnissä emulaattori instance.
Logging on hyödyllinen työkalu kenelle tahansa kehittäjälle millä tahansa alustalla. Android-kehittäjille työkalun nimi on LogCat.
LogCat on käynnissä oleva lokitiedosto VM: ssä tapahtuvasta toiminnasta. Sovellukset voivat tehdä tähän luetteloon omia merkintöjään yksinkertaisella koodirivillä seuraavasti: Log.i (tagi, viesti); 1
, jossa tagi
ja viesti
ovat molemmat Java-kieliä. Log
– luokka on osa Androidia.util.Loki
paketti.
toinen hyödyllinen työkalu on File explorer, joka mahdollistaa tiedostojärjestelmän pääsyn emulaattoriin. Seuraavassa kuvassa näkyy, missä opetusohjelman näytesovellus on otettu käyttöön emulaattorissa.
käyttäjäsovellukset ovat käytössä /data/sovellus
kun taas Android-sisäänrakennetut sovellukset löytyvät /system/app
hakemistosta.
Android-sovelluksen täysimittainen virheenkorjaus ei kuulu tämän opetusohjelman piiriin, vaikka voit olla varma siitä, että Android Studio tukee kaikkia nykyaikaisia sovelluksen virheenkorjaustyökaluja, joita voimme toivoa, esimerkiksi tehostamalla ja tehostamalla funktiokutsuja.
testing the sample application
Tap on the Hit Me! painike, ja etiketin sisältö muuttuu ”Auts!”
napauttamalla kartalle Me! painike, ja kartoitussovellus käynnistetään määritetyllä leveys-ja pituusasteella, joka sisältyy Editext-widgetteihin.
painikkeiden johdotus on Pääaktiivisuudessa.xml-koodi. Huomaa erityisesti, miten leveys-ja pituusarvot uutetaan ja pakataan aikomukseen, jota käytetään myöhemmin kartoitussovelluksen käynnistämiseen.
tämä opetusohjelma esitteli Android-alustan, Android Studion ja Androidin kehityksen keskeiset elementit. Sinun pitäisi nyt olla valmis luomaan omia Android-sovelluksia.
oletko valmis johonkin muuhun? Kokeile tätä opetusohjelmaa, jossa käytät Bluetooth Low Energy (BLE) – sovellusliittymiä IoT-liitettyjen laitteiden rakentamiseen.