Utvikle din Første Android-applikasjon

Hvorfor bryr Vi Oss Om Android? Vi bryr Oss Om Android-plattformen fordi Den er den mest distribuerte mobile plattformen på planeten og er tilgjengelig for forbrukere over hele verden. I økonomier der eierskapet til en personlig datamaskin er en luksus, er bruk av mobilenheter normen – Og Android spiller en viktig rolle i å koble mennesker til hverandre. Som du vil lære i denne opplæringen, Tar Android en tydelig tilnærming til applikasjoner. Arkitekturen Til Android tillater et svært tilpassbart programvaremiljø takket være sin kjøretidsbinding av forespurte handlinger og koden for å tilfredsstille disse forespørslene. Enten det er markedsdrevne hensyn eller de tekniske aspektene Ved Android, er Det en plattform verdt undersøkelse. Videre, hvis du gir seriøs vurdering for å ha en mobil opplevelse for plattformen din, kan Du ikke ignorere Android.

Forutsetninger

denne opplæringen krever flere teknologier som fungerer sammen. Du trenger dem alle for denne opplæringen.

  • Android Studio-Android Studio er det primære utgangspunktet for å bygge Android-Programmer
  • Android-enhet eller Emulator – vil du enten en fysisk Android-enhet, Eller Android Emulator. Uansett vil lese gjennom denne opplæringen hjelpe deg med å forstå de grunnleggende tilkoblingspunktene til Et Android-program.
  • Kildekode-Kildekodebiter i denne opplæringen inkluderer:

    • AndroidManifest.xml snippet – denne filen er programmet distribusjon descriptor For Android-programmer.
    • Hovedaktivitet.java-dette implementerer En Android aktivitet, den primære inngangspunkt til prøven anvendelse av denne opplæringen.
    • Aktivitet_main.xml-dette inneholder definisjoner for visuelle elementer, eller ressurser, for Bruk Av Android aktiviteter.
    • AndroidManifest.xml complete – dette viser en full AndroidManfest.xml-fil, sammen med en beskrivelse av hver av de viktige elementene.

Vi Presenterer Android arkitektur

før dykking rett inn i moduler Og outs Av Android Studio og utvikle Android-programmer, la oss ta en titt på arkitekturen Av Android og noen av de viktigste begrepene som vil være nyttig i opplæringen og utover, som du begynner å bygge Android-programmer for deg selv.

Android terminologi

en forståelse av vilkårene nedenfor er nyttig I Android applikasjonsutvikling Med Android Studio.

  • Android Er en åpen kildekode driftsmiljø målrettet for mobile enheter. I økende Grad Finnes Android i applikasjoner utover «smartphones». Disse inkluderer bærbar teknologi, apparater som projektorer, høyttalere og tv, og selv biler.
  • Emulator er et verktøy representant for et annet system. Ofte er en emulator et miljø som kjører på en personlig datamaskin (PC, Mac, Linux-maskin) som emulerer et annet miljø, for eksempel en mobildataenhet.
  • Linux Er en åpen kildekode operativsystemkjerne i hjertet av mange databehandlingsplattformer, inkludert servere, stasjonære datamaskiner, nettverksapparater og mobile databehandlingsenheter. Android kjører på Toppen Av En Linux-kjerne.
  • Android Run Time (ART) er et driftsmiljø som finnes I Android-stakken, som utfører programkode under kjøring. Android Run Time erstatter» legacy » Dalvik Virtual Machine (VM) fra tidligere versjoner Av Android som opererte på en måte som ligner På En kompatibel Java VM.

hensikten

Siden starten Har Android blitt en dominerende kraft i mobiltelefonområdet. Applikasjonsmodellen er unik ved at applikasjoner ikke er monolitiske, menyladede applikasjoner som krever mye å klikke og trykke for å fungere. Jo, det er menyer og knapper som skal tappes, Men Android har et innovativt designelement til arkitekturen kjent som en hensikt.

en intent er en konstruksjon som tillater et program å utstede en forespørsel, noe som er noe som et hjelp-ønsket tegn. Det kan se ut som disse:

  • «Ønsket: Et program for å hjelpe meg med å slå opp en kontakt»
  • «Ønsket: et program for å hjelpe meg med å vise dette bildet»
  • » Ønsket: et program for å utføre dette geografiske baserte søket.»

på en lignende og komplementær måte kan applikasjoner registrere seg som dyktige og interessert i å tilfredsstille ulike forespørsler eller hensikter. For å følge rubrikkannonser paradigmet, disse kan se slik ut:

  • «Tilgjengelig: Søknad klar og villig til å presentere kontakt poster i klar, konsis måte»
  • » Tilgjengelig: Søknad klar og villig til å utføre et geografisk søk.»

Dette er eksempler På Intentfiltre, som diskuteres neste.

IntentFilter

Applikasjoner annonserer at De er tilgjengelige for å utføre disse typer operasjoner via en konstruksjon kjent som et IntentFilter . Den IntentFilter er enten registrert under kjøring eller er nummerert I AndroidManifest.xml-fil. Følgende tekstutdrag kommer fra Et Android-program som svarer på innkommende SMS (tekst) meldinger:

<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>

Vis mer ikon

IntentFilter , introduserer neste del De fire hovedtyper Av Android-applikasjoner.

Typer Android-programmer

La oss ta et øyeblikk å undersøke de fire hovedtyper Av Android-programmer:

  • Aktivitet
  • Service
  • Mottaker
  • ContentProvider

vi vil også ta en titt på visningene for å vise brukergrensesnittelementene.

Aktivitetsapper

aktiviteten er Den mest synlige Og fremtredende formen For En Android-applikasjon. EN aktivitet presenterer BRUKERGRENSESNITTET til et program, sammen med hjelp av en klasse kjent som en visning. Visningsklassen implementeres som ULIKE UI-elementer, for eksempel tekstbokser, etiketter, knapper og andre Uier som er typiske i databehandlingsplattformer, mobil eller otherwise.An søknaden kan inneholde en eller flere aktiviteter. En aktivitet er vanligvis definert på en en-til-en-relasjon med skjermene som finnes i et program.

et program flyttes fra en aktivitet til en annen ved å kalle en metode som kalles startActivity () eller startSubActivity (). Den tidligere metoden brukes når programmet ønsker å bare «bytte» til den nye aktiviteten. Sistnevnte brukes når et synkront kall / responsparadigme er ønsket. I begge tilfeller sendes en hensikt som et argument til den kalt metoden.

det er operativsystemets ansvar å bestemme den best kvalifiserte aktiviteten for å tilfredsstille den angitte hensikten.

Tjeneste-og mottakerapper

Som andre multi-tasked datamiljøer, er det programmer som kjører» i bakgrunnen » som utfører ulike oppgaver. Android kaller disse typer applikasjonstjenester. Tjenesten er En Android-applikasjon som ikke har NOEN BRUKERGRENSESNITT.

mottakeren er en programkomponent som mottar forespørsler om å behandle hensikter. Som tjenesten har en mottaker ikke i vanlig praksis ET UI-element. Mottakere er vanligvis registrert I Androidenmanifest.xml-fil.

følgende kodebit (som er den samme som den som vises For IntentFilter) er et eksempel på en mottakerapplikasjon som defineres. Merk at navnattributtet til mottakeren er Java-klassen som er ansvarlig for å implementere mottakeren.

<receiver android:name=".MySMSMailBox" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>

Vis mervis mer ikon

Den ContentProvider Er Android mekanisme for data-store abstraksjon. La oss se på en bestemt type data som finnes på en mobil enhet: adresseboken eller kontaktdatabasen. Adresseboken inneholder alle kontakter og telefonnumre en person kan kreve når du bruker en mobiltelefon.

ContentProvider er en mekanisme for abstrakt tilgang til et bestemt datalager. På mange måter fungerer ContentProvider i rollen som en databaseserver. Operasjoner for å lese og skrive innhold til en bestemt datalager bør sendes gjennom en passende ContentProvider , i stedet for å få tilgang til en fil eller database direkte. Det kan være både «klienter» og «implementeringer» av ContentProvider.

Android Visninger

Android visninger ER UI mekanisme for å sette ting på skjermen På En Android-enhet. Android-aktiviteten bruker visninger for å vise UI-elementer. Noen av de mer populære layout design inkluderer:

  • Lineærvertikalt-Hvert etterfølgende element følger sin forgjenger ved å strømme under det i en enkelt kolonne.
  • Lineærhorisontal – Hvert etterfølgende element følger sin forgjenger ved å strømme til høyre i en enkelt rad.
  • Tabell-en serie med rader og kolonner, som ligner PÅ EN HTML-tabell. Hver celle kan inneholde ett visningselement.
  • Begrensning – hvert element er «begrenset» til et aspekt av skjermen, for eksempel toppen eller siden av skjermen eller et annet element. Dette oppsettet hjelpemidler i konstruksjonen av «responsive» programmer og er arving-tydelig til arven Relative Layout introdusert i tidligere versjoner Av Android-plattformen.

etter at en bestemt layout (eller kombinasjon av oppsett) er valgt, brukes individuelle visninger til å definere BRUKERGRENSESNITTET.

Vis elementer består av kjente UI-elementer, inkludert:

  • Knapp
  • ImageView
  • EditText for å samle inn innspill med Ulike filtre Som Dato Eller Numerisk
  • TextView (ligner på en etikett, viser statisk tekst)
  • Avkrysningsboks
  • Alternativknapp
  • Spinner (ligner på en «drop-down» kombinasjonsboks)
  • Autofullfør (Edittext Med Automatisk Tekst-Komplett Funksjon)

Visninger er definert I EN XML-fil. For eksempel viser dette en enkel Lineærvertikal visning, med knapper og tekstvisninger definert:

<?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>

Vis mervis mer ikon

https://developer.android.com/, og bla ned for å laste Ned Android Studio. Android Studio er tilgjengelig For Windows, Mac og Linux.

Android Studio er basert På IntelliJ IDE-plattformen. Hvis du er den typen utvikler som er interessant i å utnytte hurtigtaster, kan du vurdere å lære mer Om IntelliJ fra jetbrains nettsted.

Komme i gang Med Android SDK

Nå som Vi Har Android Studio installert, er Det på tide å få Software Developer Kit (SDK) For Android.

Men før vi går videre, må vi ha en diskusjon rundt Android-versjoner.

Android-versjoner

Siden starten Har Android blitt utgitt under en noe parallell bane av numeriske utgivelsesrevisjoner, API-nivåer og også «søte» navn, inkludert Jelly Bean, KitKat, Oreo og andre konfektfavoritter.

det er lett å bli overveldet av de tilgjengelige valgene. For nå trenger du bare litt forståelse av dette «versjonslandskapet» for å komme i gang som En Android-utvikler.

Det er mange versjoner, eller revisjoner, Av Android i naturen. Hvis du skal skrive en søknad om kommersiell utgivelse, må du vite hvilke enheter du målretter mot. Wikipedia har en fin oppsummering Av Android-versjoner, navnene, utgivelsesdatoer samt en grafikk som viser omtrentlig antall hver enhet i markedet.

Nyere enheter kjører den nyeste koden, og eldre enheter kan være noe begrenset i deres evne til å oppgradere til en nyere versjon Av Android. Noen ganger støtter de nyere versjonene evner som de eldre telefonene ikke er i stand til å støtte(tenk andre kamera, Nær Feltkommunikasjon og så videre). En annen ikke-triviell grunn til at eldre telefoner kanskje ikke kan kjøre den nyeste Android-versjonen, er at både produsenten og telekomoperatøren (Verizon, PÅ&T, og så videre) må støtte programvaren som kjører i deres økosystem. Støtte for et nytt operativsystem krever ressurser fra produsenten av enheten og transportøren. Markedskreftene tyder på at disse markedsaktørene er mer opptatt av fremtidig salg enn å støtte tidligere salg og investere sin menneskelige kapital tilsvarende.

som programvareutvikler, hva betyr det at det er nye versjoner av operativsystemet? Dette bryter ned i to brede kategorier når det gjelder programmeringsapplikasjoner:

  • en ny versjon av operativsystemet introduserer ofte nye funksjoner som vi kan dra nytte av og / eller vår brukerbase forventer at våre applikasjoner skal støtte.
  • Eldre (eller eldre) egenskaper i miljøet kan faktisk hindre nyere funksjoner og / eller representere en dårligere tilnærming til å gi et bestemt sett med funksjonalitet. Noen ganger må koden faktisk fjernes fra API-definisjonene. Det er en spesiell term for denne «fjerning» av tidligere arbeidskode – vi kaller det «kodeavskrivning». Når EN API er merket for fjerning, sier vi at dette er en utdatert API. Dette er egentlig en melding til utbygger som går noe sånt som dette: «Advarsel» denne koden vil bli fjernet i fremtiden, kan du planlegge deretter.»

Android-plattformen har vært ganske liberal (det vil si gunstig for utvikleren) med sin tilnærming til utdatert kode ved å tillate applikasjoner å fortsette å bruke eldre Apier for en stund etter å ha blitt merket som utdatert. (Denne tilnærmingen står i kontrast Til Apples tilnærming med utdatert kode i iOS, hvor eldre kode bare kan slutte å jobbe med neste OS-utgivelse. Med iOS synes selv programmeringsspråket å endres mens vi ikke ser!)

Mens Android kan være litt mer tilgivende med sin langmodighet av utdatert kode, trenger vi å holde øye med dokumentasjonskoden som sier at en bestemt API er utdatert. Hvis noen kode som vi bruker er merket som foreldet, må vi til slutt endre vår tilnærming i en fremtidig versjon av vår søknad fordi NOEN API som er merket som foreldet kan fjernes i en fremtidig versjon. Avskrivningsmarkører i SDK er vårt veikart til fremtidige muligheter for forbedring og for potensielle hodepine. Noen ganger er den » nye » måten å gjøre ting på enkel og rett frem, men ikke i alle tilfeller!

Å Være en vellykket mobilapplikasjonsutvikler krever en kontinuerlig investering i løpet av levetiden til et program der tiden har en tendens til å passere som hundeår…veldig raskt!

med denne grunnleggende intro til versjoner Av Android, er det på tide å få Android SDK.

Hente og installere Android SDK

Start Android Studio. VELG SDK Manager under Verktøy-menyen. Dette menyalternativet laster Inn Dialogboksen For Android Studio-Innstillinger og forhåndsvelger undermenyen For Android SDK. Denne menyen er vår primære måte å samhandle med De Ulike Sdk tilgjengelig for Mange versjoner Av Android.

Skjermbilde Av Dialogboksen Android Studio Preferences, Med Android SDK Manager som viser de tilgjengelige versjonene av Android SDK

MED HVER utgivelse av operativsystemet øker API-nivået. Legg merke til at revisjonen øker langsommere ENN API-nivået. Du kan tenke på revisjonen som en» generasjon » av plattformen, eller som Et «Stort» versjonsnummer. Når Du surfer på android-dokumentasjonen, må du sørge for at DU noterer HVILKET API-nivå som en bestemt funksjon ble introdusert. HVER API er tilgjengelig på API-nivået som er angitt og høyere, med mindre API-EN er utdatert og senere fjernet. For eksempel Ble ContactsContract API introdusert på nivå 5, som er ganske «gammel» på dette punktet.

Velg ETT ELLER to SDK-nivåer å jobbe med for nå. SDK Manager vil senere laste ned relaterte filer og gjøre dem tilgjengelige for Bruk I Android Studio.

Også under Verktøy-menyen er et alternativ for AVD Manager. AVD står For Android Virtuell Enhet. Dette er emulatoren. Emulatoren er nyttig fordi den tillater oss å teste applikasjoner på ulike enhetstyper, størrelser og versjoner. Skjermbildene i denne opplæringen er hentet fra emulatoren. Mer om dette senere.

Bygg din Første Android-applikasjon

denne opplæringen tar deg gjennom å lage et grunnleggende Android-program, kalt SaySomething , ved Hjelp Av Android Studio og demonstrere Det på Android-emulatoren.

Hent koden

Trinn 1: Opprett et nytt prosjekt

  1. Velg Fil > Nytt Prosjekt.
  2. Fyll ut Dialogboksen Opprett Android-Prosjekt, og klikk På Neste.

    Skjermbilde Av Dialogboksen Opprett nytt Prosjekt I Android Studio

    kravene til det nye prosjektet inkluderer:

    • Søknadsnavn
    • Bedriftsdomene (Dette blir reversert til com.domain) for å holde programmer partisjonert selv om de har samme Programnavn.
    • Prosjektplassering – hvor du skal lagre filene
    • Pakkenavnet er foreslått Fra Programnavn og Firmanavn
    • Som standard er Android-programmer skrevet I Java. Hvis du vil støtte alternative språk, for Eksempel C++ (for opprinnelig kode) eller Kotlin, merker du av i de aktuelle avmerkingsboksene.
  3. i Dialogboksen Mål Android-Enheter angir DU API-nivå og målplattformer. Som nevnt tidligere, Android er for mer enn bare telefoner, men for vårt formål vil vi bare velge Telefonen og Tablett formfaktor for denne opplæringen. Klikk Deretter Neste.

     Skjermbilde av Mål Android-Enheter dialog I Android Studio

  4. i Dialogboksen Legg Til En Aktivitet I Mobil velger Du Den Tomme Aktivitetstypen. Klikk Deretter Neste.

    Skjermbilde Av Legg til En Aktivitet I Mobildialogboksen I Android Studio

    dette vil opprette et standardprogram som er klart til å bygges og kjøres direkte fra Android Studio.

  5. navngi filene for programmet i Dialogboksen Konfigurer Aktivitet.

     Skjermbilde Av Konfigurer Aktivitetsdialog i Android Studio

Trinn 2: Gjennomgå koden

følgende figur viser komponentene i vårt nye prosjekt:

Skjermbilde Av Nye Prosjektfiler som vises I Prosjektdelen Av Android Studio

Det er to mapper: app og Gradle Scripts .

  • mappenapp inneholder all programmets kode.
  • mappen manifesterer i mappen app inneholder AndroidManifest.xml som er distribusjonsbeskrivelsen for dette programmet. Denne filen forteller Android-enheten om hvordan du samhandler med programmet, Hvilken Aktivitet som skal vises når programmet startes, hvilke Hensikter applikasjonstjenestene, hvilke ikoner som skal vises og mye mer.
  • mappen java inneholder kildekoden for programmet. I dette tilfellet, filen som implementerer vår aktivitet pluss et par klasse filer for å utføre automatiserte tester (som vi vil ignorere for denne opplæringen).
  • mappen res inneholder ressursene for programmet, inkludert ikoner, layoutfiler, strenger, menyer og så videre.
  • Mappen Gradle Scripts inneholder alle de skriptbare elementene for å bygge programmet. Gradle build-systemet er et tema for seg selv. For nå forstår at disse skriptene styrer prosessen med å bygge programmet – og viktigere for mer modne prosjekter og lag, kan hver av disse trinnene kjøres fra kommandolinjen. Dette er viktig fordi denne tilnærmingen støtter automatisering og faller inn i kategorien Kontinuerlig Integrasjon.

La Oss nå undersøke kildekoden nærmere.

Primær aktivitet for søknaden

vår prøvesøknad består av en enkelt aktivitet, kalt 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); } } ); }}

Vis mervis mer ikon

MainActivity er en vanlig Java-klasse, med en pakke og import, som forventet.

  • MainActivity utvider en base Android-klasse som heter AppCompatActivity , som ligger i pakken som heter android.støtte.v7.app.
  • metoden onCreate() er inngangspunktet til denne aktiviteten, og mottar et argument av typen - Pakke . Bundle er en klasse som egentlig er en wrapper rundt et kart eller hashmap. Elementer som kreves for konstruksjon, sendes i denne parameteren.
  • den setContentView(..) er ansvarlig for å opprette den primære UI ved hjelp av r. layout.hoved argument. Dette er en identifikator som representerer hovedoppsettet som finnes i applikasjonens ressurser. Merk at alle identifikatorer i» R » – klassen genereres automatisk av byggeprosessen. I hovedsak er alle xml-ressursfilene under mappen res beskrevet tidligere, tilgjengelig Med r-klassen.
  • Ressurser for programmet

    Ressurser I Android er organisert i en underkatalog av prosjektet kalt res, som beskrevet tidligere. Ressurser faller inn i en rekke kategorier. Tre av disse kategoriene er:

    • Drawables – denne mappen inneholder grafikkfiler, for eksempel ikoner og punktgrafikk
    • Oppsett – denne mappen inneholder XML-filer som representerer oppsett og visninger av programmet – Disse vil bli undersøkt i detalj nedenfor.
    • Verdier – denne mappen inneholder en fil som heter strenger .xml. Dette er det primære middel for strenglokalisering for applikasjonen. Filen farger.xml er nyttig for å definere fargekoder som brukes av programmet. Denne filen er analog med en css stilark for de som er kjent med web programmering teknikker.

    Primære UI-ressurser i main_activity.xml-fil

    eksempelprogrammet inneholder en enkelt aktivitet og en enkelt visning. Søknaden inneholder en fil som heter main_activity.xml som representerer de visuelle aspektene av det primære BRUKERGRENSESNITTET for aktiviteten. Merk at det ikke er noen referanse i main_activity.xml der oppsettet brukes. Dette betyr at den kan brukes i mer enn en aktivitet, hvis ønskelig. Se følgende kodeoppføring

    <?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>

    Vis mer ikon

    LinearLayout er det en andre LinearLayout organisert som en horisontal layout. Dette indre oppsettet inneholder et par knapp widgets. Under den horisontaleLinearLayout er det et Enkelt TextView-element, som kan sammenlignes med en etikett i andre utviklingsmiljøer. En TextView representerer statisk tekst som ikke kan redigeres. UnderTextView er det to EditText widgets, konfigurert til å ta numeriske innganger. Disse inngangselementene brukes til å fange En Bredde-og Lengdegradsverdi som senere vil bli sendt videre til et kartleggingsprogram, som vist nedenfor.

    Merk at hvert visningselement har attributter i android-navneområdet. Noen attributter er felles for alle visninger-for eksempel android:layout_width og android:layout_height attributter. Verdiene som er tilgjengelige for disse attributtene er:

    • Match Parent-dette utvider visningselementet for å ta maksimal plass tilgjengelig. Dette kan også betraktes som betyr » strekk.»
    • Bryt Innhold – dette alternativet resulterer i at elementet utvides akkurat nok til å inneholde underordnede visninger eller attributter, for eksempel tekst eller bilde.

    Distribusjonsbeskrivelse for En Android-applikasjon (AndroidManifest.xml)

    AndroidManifest.xml-filen representerer distribusjonsbeskrivelsen for Et Android-program. Filen viser noen aktivitet, tjeneste, innholdsleverandør, eller mottaker som finnes i programmet, sammen med de aktuelle IntentFilters støttes av programmet. Her er Den komplette AndroidManifest.xml-fil for eksempelprogrammet:

    <?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>

    Vis mervis mer ikon

    < > importerer i hovedsak klasser fra denne pakken. Alle ikke-fullt kvalifiserte klasser i denne filen finnes i pakken identifisert i pakkeattributtet.

  • <program > – koden har et attributt som refererer til en ressurs fra programmets ressurser. Legg merke til @ – symbolet foran de ulike identifikatorene. Dette er et hint for verktøykjeden å se i den respektive mappen til programmets ressurser for hver ressurs.
  • < aktivitet> taggen inneholder følgende attributter og verdier av notat:

    • android: navn representerer Java-klassen som implementerer denne aktiviteten
    • android: label inneholder navnet på programmet. Merk at det refererer til en av strengressursene. - strengen .xml filen inneholder lokaliserte strenger for programmet.
    • <intent-filter> representerer IntentFilter tilgjengelig i eksempelprogrammet. Dette bestemte settet med handling og kategoriattributter er de vanligste IntentFilter sett I Android-applikasjoner. Dette filteret sier i hovedsak at det implementerer hovedhandlingen (eller inngangspunktet) og er tilgjengelig i den nåværende lanseringsskjermen for OPERATIVSYSTEMET. Enkelt sagt betyr dette at det kan startes som et program fra den primære listen over applikasjoner på En Android-enhet.
  • Trinn 3: Bygg programmet

    for å bygge programmet, velg skiftenøkkelikonet (ser mer ut som en hammer til Meg) i menyen Til Android Studio.

    byggeprosessen, som introdusert tidligere, er en flertrinnsprosess som kan tilpasses for en bestemt applikasjon. For denne opplæringen endrer vi ikke byggeprosessen. Utgangen av byggeprosessen skal se slik ut:

    Skjermbilde Av Bygge Utgang I Android Studio

    for å demonstrere byggeprosessen, har vi innført en feil i kildekoden; vi har lagt til en ekstra plass i navnet på metoden findViewById, vist i følgende figur:

    Skjermbilde av forsettlig feil i kildekoden

    dette skaper en syntaks-eller analysefeil som hentes av byggeprosessen og vises i detaljene i build results-vinduet I Android Studio. Ved å fikse feilen i kildekoden, bygger programmet riktig, og feilene fjernes fra problemlisten.

    Trinn 4: Kjør programmet

    Nå som programmet har kompilert vellykket, er det på tide å kjøre prøveprogrammet.

    TIDLIGERE i denne opplæringen BLE AVD-Lederen introdusert som middel for å konfigurere emulatoren for testing av applikasjoner uten behov for en ekte enhet. Å kjøre et program ved hjelp av emulatoren er spesielt nyttig fordi det tillater testing uten å måtte kjøpe mange kostbare enheter.

    for å sette opp en emulator, eller mer riktig, En Android Virtuell Enhet (Avd), velg Verktøy > AVD Manager. Eller bare klikk på Play (Run) – ikonet.

    dette lanserer et vindu som lar deg velge enten en ekte enhet som er koblet til MED EN USB-kabel eller en tilgjengelig AVD-forekomst, som vist i følgende figur:

    Skjermbilde Av Dialogboksen Velg Distribusjonsmål og Opprett Ny Virtuell Enhet sirklet

    hvis det er tilkoblede enheter, vises hver i rullegardinmenyen Under Tilkoblede Enheter. Alternativt kan du velge fra en av De Tilgjengelige Virtuelle Enhetene. I forrige figur er det en enkelt avd definert med tittelen Nexus One API P . For å opprette en ny AVD, velg Knappen Opprett Ny Virtuell Enhet.

    Til slutt klikker DU OK for å starte programmet på det valgte distribusjonsmålet. AVD eller emulator lanserer med vår prøve program som kjører på den.

    Skjermbilde av prøven app kjører i emulator eller avd

    Trinn 5: Test programmet i emulator

    nå som programmet kjører på emulator, la oss ta en titt på hva som skjer bak kulissene. I Android Studio velger Du Vis > Verktøyvinduer. Vi vil markere bare et par av disse verktøyalternativene, selv om hver av dem er et emne for seg selv.

    Android Studio Tools

    Se Først På Android Profiler som viser ET løpende diagram OVER CPU, Minne og Nettverkstrafikk. Android Profiler tillater oss å veksle mellom ulike enheter / emulator forekomster og respektive kjørende prosesser. Følgende figur viser beregningene for vårt eksempelprogram som kjører på en emulatorforekomst.

    Skjermbilde Av Android Profiler for å kjøre prøve app

    Logging Er et nyttig verktøy for alle utviklere på alle plattformer. For Android-utviklere er navnet På verktøyet LogCat.

    LogCat er en løpende loggfil med aktivitet som finner sted i VM. Programmer kan lage sine egne oppføringer i denne listen med en enkel linje med kode som følger: Logg.i (tag, melding); 1 , hvor tag og melding er Begge Java-strenger. Den Logg klassen er en del av android.util.Logg pakke.

    Skjermbilde Av LogCat for den løpende eksempelappen

    et annet nyttig verktøy er filutforskeren, som tillater filsystemtilgang Til Emulatoren. Følgende figur viser hvor opplæringens prøveapplikasjon er distribuert på Emulatoren.

    Skjermbilde Av Device File Explorer

    Brukerprogrammer distribueres i/data/app Mens Android innebygde programmer finnes i katalogen/system/app .

    fullskala feilsøking Av En Android-applikasjon er utenfor rammen av denne opplæringen, men vær trygg på At Android Studio støtter alle de moderne applikasjonsfeilingsverktøyene vi kan håpe på med ting som Å Gå inn og Gå over funksjonssamtaler.

    Teste prøveprogrammet

    Trykk På Hit Me! på etiketten endres til «Ouch!»

    Skjermbilde av prøven app i emulator etter å trykke På Hit Me knappen

    Trykk På Kartet Meg! programmet er lansert med den angitte breddegrad og lengdegrad som finnes I EditText widgets.

    Skjermbilde av eksempelappen i emulatoren etter å ha tappet På Map Me-knappen

    ledningen av knappene Er I Hovedaktivitet.xml-kode. Legg spesielt merke til hvordan bredde – og lengdegradverdiene trekkes ut og pakkes inn I En Hensikt, som senere brukes til å starte kartleggingsprogrammet.

    denne opplæringen introduserte Android-plattformen, Android Studio, og de viktigste elementene I Android utvikling. Du bør nå være klar til å lage Dine Egne Android-applikasjoner.

    er du klar for noe mer? Prøv denne veiledningen der Du bruker Bluetooth Low Energy (Ble) Api-Er til å bygge iot-tilkoblede enheter.

    Leave a Reply

    Din e-postadresse vil ikke bli publisert.