Hello Kitty - Oppretter den første applikasjonen for Android. Hvordan begynne å utvikle for Android

Artikkelen beskriver de viktigste vanskelighetene med å lage applikasjoner for Android.
De grunnleggende konseptene for Android-programmering er dekket.
Som et eksempel er opprettelsen av et Sudoku-spill fra boken Hallo, Android - Ed Burnette beskrevet.
Vær forsiktig det er mange skjermbilder.

1. Utviklingsvansker

Android er et unikt operativsystem. Applikasjonsutvikleren må kjenne funksjonene og nyansene for å oppnå et godt resultat. Det er noen utfordringer som må tas i betraktning ved utforming (). La oss liste dem kort:
1) Applikasjonen krever to ganger (eller til og med fire) mer plass for installasjon enn den opprinnelige størrelsen på applikasjonen.
2) Arbeidshastigheten med filer på den innebygde flash-stasjonen synker titalls ganger ettersom ledig plass minker.
3) Hver prosess kan bruke opptil 16 MB (noen ganger 24 MB) RAM.

2. Prinsipper for utvikling av produktive applikasjoner for Android

For å jobbe trenger du Android SDK og Eclipse. Det er skrevet om hvordan du installerer alt og kommer i gang.

Følg disse trinnene for å laste et prosjekt inn i Eclipse:
1) Pakk ut prosjektet i en egen mappe i Eclipse-arbeidsområdet.
2) Velg menypunktet Fil->Ny->Android-prosjekt.
3) I dialogboksen Nytt Android-prosjekt velger du alternativet Opprett prosjekt fra eksisterende kilde.
4) I feltet Plassering angir du banen til mappen med prosjektet. Klikk Neste.

Programmeny

Spillmenyen er beskrevet i filen res/layout/main.xml. Grensesnittbeskrivelsen kan redigeres som XML eller som et gjengitt grensesnitt. For å bytte, bruk fanene nederst i innholdsvisningsområdet.

Kontroller er vanligvis inneholdt i en beholder, i vårt tilfelle en LinearLayout. Den ordner alle elementene i én kolonne.

Ressurser

Vær oppmerksom på at alle tekstetiketter (android:text) henter data fra ressurser. For eksempel spesifiserer oppføringen android:text="@string/main_title" at teksten skal ses etter i filen res/values/string.xml i en node som heter main_title (Android Sudoku). Bakgrunnsfargen finnes også i ressursene (android:background="@color/background") men i color.xml-filen (#3500ffff). Det kan oppstå en feil når du åpner ressursfiler i redigeringsprogrammet. Men du kan alltid bytte til XML-visning.

Kontroller som må nås fra kode må ha en id. Knapper har en id (android:id="@+id/continue_button") slik at en klikkbehandler kan festes til knappen. Plusstegnet indikerer at du må opprette en identifikator for knappen i filen /gen/org.example.sudoku/R.java (public static final int continue_button=0x7f0b000b;). Denne filen genereres automatisk og det anbefales ikke å endre den. Filen inneholder R-klassen, gjennom hvilken du kan få tilgang til et hvilket som helst grensesnittelement og andre ressurser.

Opprette vinduer

La oss vurdere å lage et vindu med informasjon om programmet. Oppsettet til dette vinduet er i filen /res/layout/about.xml. Aktivitetsklassen er beskrevet i filen /src/org.example.sudoku/About.java. Aktiviteten er knyttet til markering i AndroidManifest.xml-filen. Denne filen kan vises enten gjennom en editor eller som XML. Du kan velge forskjellige deler av filen i forskjellige redigeringsfaner. Applikasjonsdelen inneholder aktivitetsparametere. Merk at Theme-parameteren er :style/Theme.Dialog. Dette gjør vindusstilen mer som en modal dialog.

Vinduet med informasjon om programmet kalles opp fra Sudoku-klassen ved å klikke på Om-knappen. Sudoku-klassen er skrevet slik at den håndterer selve Click-hendelsen (offentlig klasse Sudoku utvider Activity implementerer OnClickListener). Den offentlige void onClick(View v)-metoden bestemmer hvilken knapp som utløste hendelsen og utfører den tilsvarende koden. For å vise Om-vinduet kalles den tilsvarende hensikten.
sak R.id.about_button:
Intent i = new Intent(this, About.class);
startAktivitet(i);
gå i stykker;

Hendelsesbehandlere kan også installeres på spesifikke kontroller. For eksempel, i Keypad-klassen, når klassen opprettes, installeres behandlere for individuelle knapper i setListeners()-metoden.

Enkel dialog

Brukeren bør få mulighet til å velge vanskelighetsgrad. Dette er en liten dialog der du må velge ett av flere alternativer. Jeg er veldig glad for at du ikke trenger å lage en egen intensjon for dette, men bare bruke AlertDialog-klassen.
La oss se på prosessen med å starte et nytt spill. Brukeren klikker på Nytt spill-knappen. Klikkbehandleren er en metode i Sudoku-klassen - onClick. Deretter kalles openNewGameDialog-metoden, som viser dialogen for valg av vanskelighetsgrad og starter spillet med det valgte vanskelighetsnivået. Denne dialogboksen er bygget ved hjelp av AlertDialog-klassen.

Privat void openNewGameDialog() ( new AlertDialog.Builder(this).setTitle(R.string.new_game_title).setItems(R.array.difficulty, new DialogInterface.OnClickListener() ( offentlig void onClick(DialogInterface dialoggrensesnitt, int i) ( startGame (jeg viser(); )

Vær oppmerksom på at innholdet i dialogen (et sett med knapper) er bygget fra en rekke strenger R.array.difficulty. En dialogknapp-klikkhandler blir umiddelbart tildelt, som, basert på nummeret på knappen som trykkes, starter et nytt spill med en gitt vanskelighetsgrad ved å kalle startGame-metoden.

Grafisk kunst

Spillklassen er ansvarlig for spilllogikken. Her lastes oppgaver og vinnerbetingelser sjekkes. Spillklassen er en aktivitet, men grensesnittet er ikke beskrevet i XML, men er laget av kode. OnCreate-metoden oppretter en visning:

PuzzleView = ny PuzzleView(this);
setContentView(puzzleView);
puzzleView.requestFocus();

PazzleView er en klasse avledet fra View, den tegner spillefeltet og behandler skjermberøringshendelser (onTouchEvent-metoden) og tastetrykk (onKeyDown-metoden).

La oss se på tegneprosessen i Android. For å tegne må du overbelaste onDraw-metoden. Metoden mottar Canvas-objektet som tegningen utføres gjennom. For å sette farger opprettes objekter av Paint-klassen. Fargen er spesifisert i ARGB-format. Det er bedre å lagre farger som ressurser (colors.xml-fil). Paint er ikke bare en klasse for lagring av fargeinformasjon. Når du for eksempel tegner tekst, inneholder den informasjon om skyggemetode, skrifttype og justering av teksten.

Canvas inneholder et sett med metoder for å tegne grafikk (drawRect, drawLine, drawPath, drawText og andre).

For å optimalisere grafikk er det bedre å avstå fra å lage objekter og unødvendige beregninger i onDraw-metoden (det betraktede eksemplet på grafikkimplementering er ikke optimalt).

Musikk

MediaPlayer-klassen brukes til å spille musikk. Musikk til spillet er lagt til ressursene. Du trenger bare å kopiere de nødvendige filene til /res/raw-mappen (WAV, AAC, MP3, WMA, AMR, OGG, MIDI-formater).
Først må du opprette en forekomst av MediaPlayer-klassen:
mp = MediaPlayer.create(kontekst, ressurs);
her er konteksten vanligvis klassen som initierer lanseringen av musikk, ressurs er identifikatoren til ressursen med musikk. For å kontrollere avspillingen, bruk start-, stopp- og slippmetodene.

I spillet spilles musikk i hovedmenyen (lansert fra Sudoku-klassen) og i gameplay (lansert fra Game-klassen). Musikkklassen ble opprettet for å kontrollere avspillingen. Klassen inneholder en statisk forekomst av MediaPlayer, som eliminerer behovet for å lage et eget prosjekt for hver lansering av lydressursen.

I Sudoku- og Game-klassene overstyres onResume- og onPause-metodene, der musikken starter når aktiviteten starter og stopper når den deaktiveres.

konklusjoner

Eksemplet som diskuteres i artikkelen er ikke for komplisert, noe som lar deg forstå det uten mye innsats. Samtidig berører den ulike aspekter ved Android-utvikling.

P.S. Tusen takk til brukeren

I enhver virksomhet er det vanskeligste begynnelsen. Det er ofte vanskelig å komme inn i kontekst, og det var det jeg møtte da jeg bestemte meg for å utvikle min første Android-applikasjon. Denne artikkelen er for de som vil begynne, men ikke vet hvor.

Artikkelen vil dekke hele applikasjonsutviklingssyklusen. Sammen skal vi skrive et enkelt Tic-Tac-Toe-spill med én skjerm (i Android OS kalles dette Activity).

Mangel på Java-utviklingserfaring bør ikke være et hinder for å mestre Android. Eksemplene vil derfor ikke bruke Java-spesifikke konstruksjoner (eller de vil bli minimert så mye som mulig). Hvis du skriver for eksempel PHP og er kjent med de grunnleggende prinsippene for programvareutvikling, vil denne artikkelen være mest nyttig for deg. På sin side, siden jeg ikke er ekspert på Java-utvikling, kan det antas at kildekoden ikke kvalifiserer for etiketten "beste praksis for Java-utvikling".

Installere nødvendige programmer og verktøy

Jeg vil liste opp de nødvendige verktøyene. Det er 3 av dem:

  1. IDE med støtte for Android-utvikling:
    • Eclipse + ADT-plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Verktøyene installeres i den rekkefølgen som er spesifisert ovenfor. Det er ingen vits i å installere alle de listede IDE-ene (med mindre du har problemer med å velge den rette). Jeg bruker IntelliJ IDEA Community Edition, en av de mest avanserte IDE-ene for Java tilgjengelig i dag.

Starte en virtuell enhet

Etter å ha lansert AVD Manager og installert tilleggspakker (SDK av forskjellige versjoner), kan du begynne å lage en virtuell enhet med de nødvendige parameterne. Det burde ikke være vanskelig å forstå grensesnittet.

Enhetsliste

Opprette et prosjekt

Jeg er alltid ivrig etter å komme på jobb, og minimerer forberedende aktiviteter, som inkluderer å lage et prosjekt i IDE, spesielt når prosjektet er lærerikt og ikke har til hensikt å bli produsert.

Så, Fil->Nytt prosjekt:

Ved å trykke på F6-knappen vil prosjektet bli satt sammen, kompilert og lansert på den virtuelle enheten.

Prosjektstruktur

Det forrige skjermbildet viser strukturen til prosjektet. Siden vi i denne artikkelen forfølger rent praktiske mål, vil vi kun fokusere på de mappene som vi vil bruke i arbeidet. Dette er følgende kataloger: gen, res Og src.

I mappe gen det er filer som genereres automatisk når prosjektet bygges. Du kan ikke endre dem manuelt.

Res-mappen er beregnet for lagring av ressurser som bilder, tekster (inkludert oversettelser), standardverdier, oppsett.

src- dette er mappen der hoveddelen av arbeidet vil foregå, fordi filer med kildekoden til programmet vårt er lagret her.

Første linjer

Så snart Activity (applikasjonsskjermbildet) er opprettet, kalles onCreate()-metoden. IDE fylte den med 2 linjer:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
SetContentView-metoden (tilsvarer this.setContentView) setter xml-oppsettet for gjeldende skjermbilde. I det følgende vil vi kalle xml-oppsett for "layout" og skjermer for "Aktivitet". Oppsettet i applikasjonen vil være som følger:

TableLayout er ideell for denne applikasjonen. ID kan tilordnes til enhver ressurs. I dette tilfellet er TableLayout tildelt id = main_l. Ved å bruke findViewById()-metoden kan du få tilgang til visningen:
privat TableLayout layout; // dette er en egenskap for KrestikinolikiActivity-klassen public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( ); )

Nå må vi implementere buildGameField()-metoden. For å gjøre dette, må du generere et felt i form av en matrise. Dette vil bli gjort av Game-klassen. Først må du lage en Square-klasse for cellene og en Player-klasse hvis objekter vil fylle disse cellene.

Square.java

pakke com.example; offentlig klasse Square ( privat spiller spiller = null; offentlig tomrom fyll (spiller spiller) ( this.player = spiller; ) offentlig boolean isFilled() ( if (spiller != null) ( return true; ) return usant; ) offentlig spiller getPlayer () (retur spiller; ) )

Player.java

pakke com.example; offentlig klasse Player ( privat strengnavn; offentlig spiller(strengnavn) ( dette.navn = navn; ) offentlig tegnsekvens getName() ( returner navn på tegnsekvens; ) )

Alle klasser i applikasjonen vår er plassert i src-mappen.

Game.java

pakke com.example; offentlig klasse Spill ( /** * felt */ privat kvadratfelt; /** * Konstruktør * */ offentlig spill() ( felt = nytt kvadrat; kvadrattall = 0; // fyller ut feltet for (int i = 0, l = felt.lengde;i

Initialisering av spill i KrestikinolikiActivity-konstruktøren.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // vil bli implementert senere)

buildGameField()-metoden til KrestikinolikiActivity-klassen. Den legger dynamisk til rader og kolonner til tabellen (spillfelt):
private knapper = ny knapp; //(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
Linje 8 oppretter et objekt som implementerer View.OnClickListener-grensesnittet. La oss lage en nestet lytterklasse. Den vil bare være synlig fra KrestikinolikiActivity.
public class Listener implementerer View.OnClickListener ( privat int x = 0; privat int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick (View view) ( Knappeknapp = (Knapp) visning; ) )
Det gjenstår å implementere spilllogikken.
offentlig klasse Spill ( /** * spillere */ private spillere; /** * felt */ privat kvadratfelt; /** * har spillet startet? */ privat boolean startet; /** * nåværende spiller */ privat Player activePlayer; /** * Teller antall fylte celler */ private int fylt; /** * Totalt antall celler */ private int squareCount; /** * Konstruktør * */ public Game() ( felt = ny kvadrat; squareCount = 0; // fyller ut feltet for (int i = 0, l = felt.lengde; i

Bestemmelse av vinneren

K.O. foreslår at vinneren i tic-tac-toe er den som stiller opp X eller O på en linje lik lengden på feltet vertikalt, horisontalt eller diagonalt. Den første tanken som kommer til hjernen er å skrive metoder for hver sak. Jeg tror Ansvarskjede-mønsteret ville fungere bra i dette tilfellet. La oss definere grensesnittet
pakke com.example; offentlig grensesnitt WinnerCheckerInterface ( public Player checkWinner(); )
Siden Game har ansvaret for å avgjøre vinneren, implementerer det dette grensesnittet. Det er på tide å lage virtuelle "linjemenn", som hver vil sjekke sin side. Alle implementerer WinnerCheckerInterface-grensesnittet.

WinnerCheckerHorizontal.java

pakke com.example; offentlig klasse WinnerCheckerHorizontal implementerer WinnerCheckerInterface (privat spillspill; offentlig WinnerCheckerHorizontal(Spillspill) ( this.game = spill; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = felt.lengde; i

WinnerCheckerVertical.java

pakke com.example; offentlig klasse WinnerCheckerVertical implementerer WinnerCheckerInterface ( privat spillspill; offentlig WinnerCheckerVertical (Spillspill) ( this.game = spill; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = felt.lengde; i

WinnerCheckerDiagonalLeft.java

pakke com.example; offentlig klasse WinnerCheckerDiagonalLeft implementerer WinnerCheckerInterface (privat spillspill; offentlig WinnerCheckerDiagonalLeft(Spillspill) ( this.game = spill; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = felt.lengde; i

WinnerCheckerDiagonalRight.java

pakke com.example; offentlig klasse WinnerCheckerDiagonalRight implementerer WinnerCheckerInterface (privat spillspill; offentlig WinnerCheckerDiagonalRight(Spillspill) ( this.game = spill; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = felt.lengde; i
La oss initialisere dem i spillkonstruktøren:
//(....) /** * "Dommere" =). Etter hvert trekk vil de sjekke * for å se om det er en vinner */ private WinnerCheckerInterface winnerCheckers; //(....) public Game() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Implementering av checkWinner():
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnerCheckers) ( Spillervinner = winChecker.checkWinner(); if (vinner != null) ( returner vinner; ) ) returner null; )
Vi sjekker vinneren etter hvert trekk. La oss legge til kode i onClick()-metoden til Listener-klassen
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Spillervinner = g.checkWinner(); if (vinner != null) ( gameOver(vinner); ) if (g.isFieldFilled()) ( // hvis feltet er fylt gameOver(); ) )
GameOver()-metoden er implementert i 2 varianter:
private void gameOver(Player player) ( CharSequence text = "Spiller \"" + player.getName() + "\" vant!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
For Java er gameOver(Player player) og gameOver() forskjellige metoder. Ved å bruke Builder Toast.makeText kan du raskt opprette og vise et varsel. refresh() oppdaterer feltets tilstand:
private void refresh() ( Square field = game.getField(); for (int i = 0, len = field.length; i

Klar! Jeg håper denne artikkelen hjalp deg med å bli komfortabel i Android-utviklingens verden. Takk for din oppmerksomhet!

Video av den ferdige søknaden

Denne opplæringen vil lære deg det grunnleggende om hvordan du skriver en Android-applikasjon ved å bruke Android Studios utviklingsmiljø. Android-enheter blir mer og mer vanlig, og etterspørselen etter nye applikasjoner bare øker hele tiden. Android Studio er et gratis, brukervennlig utviklingsmiljø.

For denne opplæringen er det best hvis du har minst en bestått kunnskap om Java siden det er språket som brukes av Android. Det vil ikke være for mye kode i denne opplæringen siden jeg antar at du har litt kunnskap om Java eller er klar til å finne noe du ikke allerede vet. Å lage en applikasjon vil ta 30-60 minutter, avhengig av hvor raskt du laster ned og installerer alle nødvendige programmer. Etter å ha fulgt denne opplæringen om hvordan du lager din første Android-app, kan du finne deg selv en morsom ny hobby eller til og med starte en karriere som en spirende mobilapputvikler.

Trinn 1: Installer Android Studio

  1. Du må installere JDK ( Java Development Kit) og JRE (Java Runtime Environment). Du kan laste den ned fra denne linken. Der velger du versjon for operativsystemet ditt, godtar lisensavtalen, laster ned og installerer.
  2. Gå nå hit http://developer.android.com/sdk/index.html og last ned (vær forsiktig, du må laste ned ca. 3 gigabyte).
  3. Vi starter installasjonen og følger instruksjonene.

Trinn 2: Opprett et nytt prosjekt

  1. Åpne Android Studio.
  2. På menyen " Kjapp start", plukke ut " Start et nytt Android Studio-prosjekt».
  3. I vinduet " Opprett nytt prosjekt"(vinduet som åpnet), navngi prosjektet ditt " Hei Verden».
  4. Firmanavn (valgfritt.*
  5. Klikk " Neste».
  6. Pass på at avmerkingsboksen bare er på " Telefon og nettbrett».
  7. Hvis du planlegger å teste din første applikasjon på telefonen, må du kontrollere at riktig versjon av Android er valgt (ikke eldre enn den på telefonen).
  8. Klikk " Neste».
  9. Plukke ut " Tom aktivitet».
  10. Klikk " Neste».
  11. La alle andre felt være som de er.
  12. Klikk " Bli ferdig».

*Typisk firmanavn for Android-prosjekter er «eksempel.navn.her.com».

Trinn 3: Redigering av hilsenen

  1. Gå til fanen aktivitet_hoved.xml, mest sannsynlig er den allerede aktiv.
  2. Sørg for at fanen nederst på skjermen er aktiv Design(mest sannsynlig er dette sant).
  3. Dra setningen " Hallo, Verden! » fra øverste venstre hjørne av telefonen til midten av skjermen.
  4. På venstre side av skjermen er det et mappetre. Åpne mappen som heter " verdier».
  5. I denne mappen dobbeltklikker du på filen " strenger.xml».
  6. I denne filen finner du linjen som inneholder teksten " Hei Verden!" og legg til denne teksten " Velkommentilminapp! ».
  7. Gå tilbake til " aktivitet_hoved.xml».
  8. Sørg for at teksten er sentrert på telefonskjermen og inneholder teksten " Halloverden! Velkommentilminapp! ».

Trinn 4: Legg til en knapp

  1. På " aktivitet_hoved.xml"velg fanen" Design».
  2. I kolonnen til venstre for vinduet der telefonen befinner seg, finn en mappe som heter " Widgets" Det er forskjellige knapper der.
  3. Ta tak i " Knapp» og dra den til telefonskjermen. Den skal være sentrert på skjermen rett under teksten din.
  4. Kontroller at knappen fortsatt er valgt (blå ramme rundt den).
  5. I nedre høyre hjørne er det et vindu med egenskapene til det valgte objektet. Rull ned og finn linjen som heter " tekst».
  6. Endre teksten " Ny knapp"på" Neste side».

Trinn 5: Lag en andre aktivitet

  1. Øverst i prosjektets filsystemtre, høyreklikk på mappen kalt " app».
  2. Plukke ut Ny > Aktivitet > Tom aktivitet.
  3. I vinduet som vises, i den øverste linjen, skriv inn " SecondActivity».
  4. Klikk " Bli ferdig».
  5. Gå til " aktivitet_sekund.xml" og sørg for at fanen " er valgt nederst Design».
  6. Flytt teksten fra øverste venstre hjørne av telefonen til midten av skjermen som vi gjorde i de foregående trinnene.
  7. Sørg for at tekstblokken fortsatt er valgt (blå ramme), og se etter linjen "i nedre høyre hjørne av objektets egenskaper" id"og skriv inn der" tekst2 ».
  8. I øvre venstre hjørne (i prosjekttreet), dobbeltklikk på " strenger.xml».
  9. Under linjen Hei Verden! Velkommen til appen min!

    legg til følgende linje

    Velkommen til den andre siden!

  10. Gå tilbake til " aktivitetssekund.xml».
  11. Velg tekstblokken igjen.
  12. I nedre høyre hjørne av objektegenskapene, finn linjen " tekst" og gå inn der «@ streng/sekund_side».
  13. Pass på at tekstboksen nå sier " Velkommentildesekundside! ” og bloggen ligger midt på skjermen.

Trinn 6: Skriv handlingen for knappen


Trinn 7: Testing av applikasjonen

  1. I verktøylinjen øverst i Android Studio-vinduet klikker du på det grønne avspillingssymbolet.
  2. I vinduet " VelgeEnhet» velg elementet « Lanseringemulator» og velg enheten.
  3. Klikk på knappen OK».
  4. Når emulatoren starter (dette kan ta lang tid), åpnes applikasjonen automatisk på den virtuelle enheten.
  5. Sørg for at all tekst vises riktig og at du kommer til neste side ved å klikke på knappen.

Merk følgende: Hvis du mottar meldingen " HAX-kjernemodulen er ikke installert!", så er det to mulige alternativer. Faktum er at bare moderne Intel-prosessorer støtter denne virtualiseringen, og du trenger bare å aktivere den i BIOS. Hvis du har en prosessor som ikke støtter denne funksjonen, må du teste applikasjonen på en ekte telefon eller bruke en tredjepartsemulator i stedet for den innebygde.

Slik får du .apk-fil i Android Studio

Etter min mening er dette problemet godt dekket i denne artikkelen, så jeg vil ikke gjenta det. Jeg syntes det var lettest for den første leksjonen Manuell metode.

Når du mottar filen, kan du kopiere den til telefonen og installere applikasjonen.

Trinn 8: Resultat

Gratulerer! Du har nettopp skrevet ferdig din første Android-applikasjon med noen grunnleggende funksjoner. Den ferdige applikasjonen skal ha en brukervelkomstside og en knapp som tar brukeren til den andre siden.

Du har kort blitt kjent med utviklingen av applikasjoner for Android og kan ha vekket i deg selv ønsket om å lære alt som er nødvendig for å videreutvikle deg i denne retningen.

Hvert år blir Android-operativsystemet ikke bare et passende OS for vanlige brukere, men også en kraftig plattform for utviklere. Vel, hva kan du gjøre: Google møter alltid utviklere halvveis, og gir mange muligheter og kraftige verktøy, krydret med informativ dokumentasjon.
I tillegg bør man ikke miste av syne at den "grønne roboten" er ledende i popularitet blant mobile operativsystemer. Dette antyder at ved å programmere for Android vil du ha et bredt publikum, som senere kan gi profitt. Generelt er Android en slags "oase" for utviklere. Derfor har vi utarbeidet et spesielt utvalg programmeringsspråk for deg, samt utviklingsmiljøer for dette operativsystemet.
Oppmerksomhet, et lite råd for nybegynnere
: Android-programmering kan virke vanskelig eller for monotont i begynnelsen. Tips: Sjekk ut lenkene til nyttig dokumentasjon før du setter i gang, så vil ikke programmering på Android være noe problem for deg.

Java er hovedverktøyet for Android-utviklere

Utviklingsmiljøer: Android Studio (IntelliJ IDEA), Eclipse + ADT-plugin
Egnet for bredt spekter av oppgaver
Java er hovedspråket for Android-programmerere, et must for nybegynnere. Hovedkildekoden for Android er skrevet på dette språket, så det er lett å se hvorfor de fleste velger dette språket. Programmer skrevet i Java kjører på Android ved å bruke den virtuelle maskinen ART (eller Dalvik i Jelly Bean og tidligere versjoner av Android), en analog av den virtuelle Java-maskinen, som Google har en alvorlig juridisk kamp med Oracle om.

Google støtter for tiden offisielt det ganske kraftige utviklingsmiljøet Android Studio, som er bygget på Intellij IDEA fra JetBrains. Glem heller ikke den svært detaljerte dokumentasjonen fra Google, som dekker alt fra match_parent og wrap_content til konstruktører, konstanter og hovedmetoder i JavaHttpConnection-klassen - den er definitivt verdt å lese.

Ikke glem Eclipse, et veldig populært miljø for Java-programmerere. Med den offisielle ADT-pluginen fra Google vil dette verktøysettet bli et kraftig og lett våpen i dine hender. Men gutta fra Mountain View sluttet å støtte Eclipse siden i fjor sommer, og ga plass til det nye Android Studio. Anbefalt for bruk på svake PC-er.

Nødvendig dokumentasjon:

C++ er et kraftig verktøy i hendene på en mester

Hovedutviklingsmiljøer: Android Studio (versjon 1.3 og nyere), Visual Studio 2015, QtCreator
Egnet for spillmotorer og ressurskrevende applikasjoner.
C++ er et middelaldrende, men veldig kraftig programmeringsspråk som feiret trettiårsjubileum i fjor. Det ble oppfunnet i 1985 takket være innsatsen til vennen Björn Stroustrup og har fortsatt toppposisjonene til de mest populære programmeringsspråkene. "Proffene" gir deg full handlefrihet, og begrenser deg bare til det som er rimelig.


Gjennom hele Androids eksistens har det blitt laget mange rammeverk og utviklingsverktøy for C++. Jeg vil spesielt fremheve de velkjente Qt og IDE QtCreator, som lar deg utvikle tverrplattformapplikasjoner for Windows, Windows Phone, Windows RT, iOS, SailfishOS og Android (en gang inkluderte denne listen også Symbian). I tillegg får du et praktisk Tulip-bibliotek med beholdere, algoritmer og maler, som absorberer det beste fra Java og Android. Og til slutt får du mange forskjellige QT-moduler for arbeid på høyt og lavt nivå med systemet. Din ydmyke tjener koder spesifikt i C++ og Qt.

I fjor, på Windows: The Next Champter-konferansen, ble det rettet stor oppmerksomhet mot det ganske populære utviklingsmiljøet Visual Studio 2015. En av hovedinnovasjonene var støtte for utvikling av applikasjoner for både Windows Phone og Android – Microsoft prøvde på en eller annen måte å øke antallet av applikasjoner for operativsystemet ditt.

Det er også umulig å ikke nevne at det offisielle Android Studio begynte å støtte NDK. Ved hjelp av NDK kan du bruke OpenGL-grafikk når du jobber med Android. Trenger du fart og effektivitet - velg NDK! Denne utviklingsmetoden er perfekt for spillmotorer som krever høy ytelse.

Android-utvikling i C eller C++ kan virke enklere enn i Java, men til tross for at språket gir deg full handlefrihet og ikke begrenser deg i trinnene dine, har det noen spesifikke funksjoner som vil ta mye tid å lære - ikke uten grunn har C++ blitt sammenlignet med nunchucks (et utmerket våpen som dessverre krever stor dyktighet). Det kan imidlertid være morsomt å utvikle Android-applikasjoner i C og C++.

Nødvendig dokumentasjon:

Andre språk

Nå er tiden inne for å snakke om andre mindre populære, men også interessante språk og rammer for dem. Av mange grunner vil du imidlertid ikke være like vellykket som du er med Java og C++.

Corona (LUA Script)


Egnet for lage spill og enkle applikasjoner
Hvis du av en eller annen grunn ikke vil lære Java eller forstå å bygge et grensesnitt via XML, kan du velge denne IDE selv. Corona er et ganske lett utviklingsmiljø, koden som må skrives i en ganske lett LUA (Pascal-elskere vil sette pris på det).

Dette verktøysettet vil hjelpe deg med å skrive enkle 2D-spill, der det finnes biblioteker for 2D-objekter, lyder, nettverk og spillmotor. Spillene som er laget fungerer med OpenGL, noe som betyr høy effektivitet. Flott for nybegynnere, kanskje det er her du kan lage din første mobilapplikasjon på Android!


Nødvendig dokumentasjon:

Adobe PhoneGap (HTML5, JavaScript, CSS)


Egnet for lage ikke-ressurskrevende applikasjoner
Hvis du allerede er kjent med HTML, CSS og JavaScript, kan du prøve PhoneGap som et alternativ. Denne IDE vil tillate deg å bygge fullverdige applikasjoner utviklet i de ovennevnte programmerings- og markup-språkene.

Faktisk er ferdige applikasjoner fra PhoneGap de enkleste WebViews, animert med JavaScript. Ved å bruke ulike API-er kan du bruke ulike enhetsfunksjoner akkurat som i native applikasjoner. Det som er interessant er at applikasjonene er kompilert på serveren og deretter tilgjengelig for bruk på iOS, Android, Windows Phone, Web OS og BlackBerry OS. Med en så bred funksjonalitet på tvers av plattformer, kan apputvikling øke betydelig hastighet.


Nødvendig dokumentasjon:

Sikring (JavaScript og UX)


Egnet for lage både enkle og komplekse applikasjoner
Når folk snakker om Android-utviklingsverktøy, tenker de ofte på Fuse. Dette verktøyet er et av de mest brukervennlige i sitt slag, og det kan presentere en lang rekke muligheter og fordeler for utvikleren.

Hovedlogikken til Fuse-applikasjoner er bygget på JavaScript - et enkelt og forståelig språk med lav inngangsterskel. Grensesnittgrunnlaget er representert av UX-markering - intuitivt forståelig for alle. Vel, "bollene" i miljøet lar deg bruke endringer direkte mens applikasjonen kjører på enheten eller emulatoren din - akkurat som i Android Studio 2.0 og høyere. Med Fuse kan utvikling av Android-apper være enkel og morsom.

Nødvendig dokumentasjon:

Ordene "mot slutten"

Selvfølgelig har vi ikke vist deg alle de eksisterende utviklingsverktøyene. Med denne artikkelen ønsket vi å forklare deg at det ikke er så vanskelig å bli Android-utvikler, selv om det ofte krever innsats og utholdenhet. Utviklingsverdenen for mobile plattformer er åpen for deg, men husk: det første trinnet er alltid ditt.

Hvordan fungerer Android-utviklingsprosessen? La oss fremheve noen grunnleggende ting:

  • I Java-filer beskriver du programlogikk – hva du vil at programmet skal gjøre.
  • I XML-filer utvikler du layouter - utseendet.
  • Når appen er skrevet, må du bruke et byggeverktøy for å kompilere alle filene og pakke dem sammen til en .apk-fil som kan kjøres på Android-enheter og/eller publiseres på Google Play.
  • Alle verktøy og filer som brukes til å lage en Android-applikasjon kombineres til et integrert utviklingsmiljø (IDE). En IDE er et program du åpner for å redigere kodefilene dine og kompilere og kjøre dem.
  • Tidligere var standard IDE for Android-utvikling Eclipse, men den er nå erstattet av det mer funksjonelle Android Studio, et Google-produkt.

Du vil selvfølgelig finne dypere prosesser som foregår bak kulissene til trinnene ovenfor. For eksempel vil avanserte brukere ønske å vite rollen til den virtuelle Dalvik-maskinen. På slutten av artikkelen vil det være lenker til nyttige ressurser som enhver Android-utvikler bør være kjent med. Den første er den offisielle dokumentasjonen fra Google.

  • La oss laste ned og installere Android Studio.
  • La oss lære om lansering og testing av applikasjoner på Android-enheter og emulatorer.
  • La oss lage en enkel Android-applikasjon som viser "Hello World" på skjermen til en mobilenhet.

På slutten av artikkelen kan du lese nyttige anbefalinger fra selskapet for nybegynnere.

Installere utviklingsmiljøet for Android Studio

Det er virkelig fristende å begynne å lese dokumentasjon og skrive kode for å finne ut hva plattformen er i stand til. Og vi gjør det snart! For å begynne å jobbe med Android-plattformen må du imidlertid sette opp et utviklingsmiljø.

For de som er nye til Android-programmering, er det spesielt viktig å ta seg god tid og metodisk følge hvert trinn. Selv om du følger trinnene riktig, kan det hende du må feilsøke et lite miljøoppsettproblem avhengig av systemkonfigurasjonen eller produktversjonen. For å gjøre dette, bruk søketjenester. Man kan spesielt fremheve ressursen StackOverflow.

Det er viktig å ikke la noen fallgruver komme i veien for det endelige målet ditt om å lære Android-programmering. Det er kjent at selv fagfolk noen ganger opplever visse problemer med å sette opp arbeidsmiljøet sitt. I slike tilfeller er kommandolinjekunnskap viktig. Hvis du ønsker å bli mer kjent med dette verktøyet, er det en lenke til en god introduksjon nedenfor.

Sammen med opplæring i syntaks er det viktig å trene seg opp til å ha tankegangen til en vellykket programmerer, som ikke vil akseptere feilmeldingsfilen X ikke funnet som en endelig dom. Denne typen tenkning trenes lett opp av deg i tilfeller der du ikke gir opp og ser etter en løsning på problemet som har oppstått.

Gå til Android Studio developer.android.com/studio/index.html og se etter en knapp for å laste ned den nyeste versjonen for plattformen din.

Klikk på nedlastingsknappen og du vil bli bedt om å lese vilkårene og betingelsene for bruk av programvareproduktet. Etter å ha lest nøye (som du alltid gjør) og godtatt, begynner nedlastingen. Dette vil sannsynligvis ta noen minutter. Etter dette kan du installere Android Studio akkurat som alle andre programmer. Den første nedlastingssiden inneholder installasjonsinstruksjoner for Mac og Windows.

Nå som du har installert Android Studio, la oss starte det! Start Android Studio. Programmet vil spørre om du vil importere innstillingene dine. Siden du starter fra bunnen av, velg bare det andre alternativet og fortsett.

Du bør se en vakker lasteskjerm i Material Design-stil.

Når nedlastingen er fullført, vil du bli tatt til en velkomstskjerm.

Selv om du nettopp har lastet ned Android Studio, har du kanskje ikke den nyeste versjonen. For å unngå problemer med versjoner i fremtiden, klikk på "Se etter oppdateringer nå"-knappen og følg om nødvendig alle instruksjonene for å få den nyeste versjonen. Noen ganger vil Studio automatisk informere deg om at det er en oppdatering med en skjerm som dette:

I dette tilfellet velger du alltid Oppdater og start på nytt. Flott! Vi har fullført installasjonen av utviklingsmiljøet.

Oppretter det første Android-prosjektet

Det er på tide å lage det første prosjektet. La oss starte med noe enkelt. Programmerere kaller vanligvis det første programmet "Hello World". La oss følge denne tradisjonen og så gjøre noen små endringer for å få appen til å bruke navnet ditt som en hilsen. På slutten kan du laste den ned til enheten din og vise den til vennene dine. Android Studio har et lite steg-for-steg-verktøy som hjelper deg med å lage prosjektet ditt. Klikk på "Nytt prosjekt" på startskjermen:

Fyll den ut slik. Bytt gjerne ut "eksempel" i pakkenavnet med noe annet for å fjerne advarselen nederst på skjermen. Du kan også angi prosjektplasseringen ved å peke på en hvilken som helst mappe på harddisken

For rullegardin-SDK-versjoner, legg merke til beskrivelsesdelen nederst i dialogboksen. Den forklarer hva hver innstilling gjør.

Installer minimum nødvendig SDK som vist på skjermbildet. Dette angir minimumsversjonen av Android som kreves for å kjøre applikasjonen. Å velge denne verdien for dine egne prosjekter er et spørsmål om å balansere SDK-funksjonene du ønsker med enhetene som vil bli støttet.

For mer informasjon om API-versjoner og deres bruk, er det en spesiell Dashboards-side på nettstedet for Android-utviklere https://developer.android.com/about/dashboards/index.html.

Etter at du har valgt versjon, åpnes skjermbildet for valg av startmal. Du kan opprette en applikasjon som allerede samhandler med Google Maps API og viser kartet. I vårt testeksempel velger du Tom aktivitet og klikker på "Neste"-knappen.

Og nå er du ved det siste trinnet i søknadsopprettingsprosessen. Før du klikker på Fullfør, vær oppmerksom på et par ting. Dette er første gang du kommer over referanser til de viktigste arkitektoniske komponentene i en applikasjon.

  • - dette er den første, men ikke den siste omtalen av ordet aktivitet. I Android-sammenheng er en aktivitet vanligvis tenkt på som en "skjerm" i applikasjonen din. Dette elementet er veldig fleksibelt. Når Android Studio oppretter MainActivity-klassen, arver den den fra Activity-klassen i Android SDK. De som er kjent med objektorientert programmering vil forstå dette konseptet, men for nybegynnere betyr dette i utgangspunktet at MainActivity vil være en tilpasset versjon av aktiviteten.

  • Layoutnavn— utformingen av det som skal vises til brukeren er definert i en spesiell form for Android XML. Du vil snart lære hvordan du leser og redigerer disse filene.

Klikk Fullfør. Det vil ta litt tid å opprette og laste ned prosjektet. Etter en tid vil Android Studio fullføre byggingen av prosjektet ditt. Selvfølgelig er prosjektet fortsatt tomt, men det har alt du trenger for å kjøre på en Android-enhet eller emulator.

Etter å ha lastet prosjektet ser du layoutfilen i XML-format. Før vi går videre til Android-programmering, la oss snakke om hvordan vi kan kjøre denne applikasjonen. Det er på tide å si "Hei verden!"

Kjøre et program på en emulator

Nå er det på tide å si noen ord om emulatoren. Android Studio kommer med programvare som kan etterligne en Android-enhet for å kjøre apper, bla gjennom nettsteder, feilsøke og alt annet på den.

Denne funksjonen leveres av Android Virtual Device (AVD) Manager. Hvis du ønsker det, kan du sette opp flere emulatorer, angi skjermstørrelse og plattformversjon for hver nye emulator. Denne funksjonaliteten er veldig nyttig fordi den sparer utviklere fra å måtte kjøpe flere enheter for å teste programmer.

Klikk på Kjør-knappen i form av en grønn pil.

Du må vente en stund på at emulatoren skal lastes, og når den er klar, vil du se noe slikt:

Gratulerer! Du har laget din første Android-app!

Og så... Hvorfor og hvordan fungerte det?

For å begynne å gjøre endringer og legge til interessante funksjoner, må du få en praktisk kunnskap om hva som skjer bak kulissene. Ta en titt på Android Studio-prosjektdelen med filer og mapper på venstre side av skjermen. Du må kanskje klikke på den lille fanen på kanten (se nedenfor) hvis prosjektutforskeren ikke er synlig for øyeblikket.

Bla gjennom mappestrukturen i noen minutter og dobbeltklikk på filene for å se innholdet i hovedvinduet. Hvis alt dette virker mystisk, ikke bekymre deg!

Android-prosjektstruktur: Team

Ethvert godt team består av mennesker som utfører sine tildelte roller. Ønsker du å få jobben gjort riktig? Du trenger det rette laget. Android-prosjekter har flere nøkkelelementer, og hver av dem har en spesifikk rolle å spille:

Java: Profesjonell

Dette er den delen av koden din som er ansvarlig for applikasjonslogikken. Koden din vil være plassert i src\main\java-katalogen i hovedprosjektmappen. For å lære Java anbefaler jeg Bruce Eckels bok "The Philosophy of Java";

Ressurser: Kunstner

Det er ikke nok å bare lage en Android-applikasjon, den må også være stilig. Appen din vil aldri skille seg ut hvis den ikke har klare ikoner og bilder, godt utformede oppsett og kanskje til og med jevne animasjoner.

Når den er initialisert, inneholder mappen følgende mapper:

  • drawable, som lagrer ikoner. Nå er det bare standard applikasjonsikon.
  • layout med XML-filer som representerer skjermdesign.
  • meny med XML-filer med lister over elementer som vil vises i handlingspanelet.
  • verdier med XML-filer som inneholder størrelser, farger, strengkonstanter og stiler.

AndroidManifest.xml: Boss

Denne XML-filen informerer systemet om applikasjonens maskinvare- og programvarekrav og inneholder versjonsnavnet og ikonet. Manifestet inneholder også informasjon om alle aktiviteter i applikasjonen. Trenger du arbeidet utført av søknaden din? Snakk med sjefen din først.

Forandring

Naviger til res/values/strings.xml og dobbeltklikk på filen. Når du åpner filen, vil du se to strengressurser i XML.

Disse ressursene brukes på forskjellige steder, men det er veldig praktisk å ha all teksten som brukes i applikasjonen din i én fil. Hvis du trenger å oversette det, eller hvis andre markedsfører ber deg fjerne alle unødvendige lenker, er det enkelt å gjøre alle endringene her.

Endre hello_world-strengen som applikasjonen viser på skjermen. Endre innholdet til noe mer personlig, som å bruke ditt eget navn. Du får noe sånt som:

Matt lærer Android!

Klikk Kjør. Applikasjonen bør starte på nytt, og du vil se en personlig melding:

Vi gratulerer deg - du har fullført ditt første prosjekt og lært hvordan du redigerer kildekoden. Det første steget i Android-programmering er tatt. Vi ønsker deg lykke til på denne vanskelige, men utrolig interessante veien! Hvis du trenger profesjonell Android-applikasjonsutvikling, kontakt Infoshell-spesialister.