Mida tähendab programmeerimine Androidis. Neli võimalust ise Androidi rakenduse tegemiseks. IbuildApp on võimas mootor oma projektide arendamiseks

Igal juhul on kõige raskem algus. Sageli on raske konteksti sattuda, millega ma silmitsi seisin, kui otsustasin välja töötada oma esimese Androidi rakenduse. See artikkel on mõeldud neile, kes soovivad alustada, kuid ei tea, kust.

Artikkel hõlmab kogu rakenduse arendustsüklit. Koos kirjutame lihtsa ühe ekraaniga Tic-Tac-Toe mängu (Android OS-is nimetatakse seda Activityks).

Java arendamise kogemuse puudumine ei tohiks Androidi valdamisel takistuseks saada. Seega ei kasutata näidetes Java-spetsiifilisi konstruktsioone (või minimeeritakse neid nii palju kui võimalik). Kui kirjutate näiteks PHP-s ja tunnete tarkvaraarenduse aluspõhimõtteid, on see artikkel teile kõige kasulikum. Kuna ma omakorda ei ole Java arenduse ekspert, siis võib eeldada, et lähtekood ei pretendeeri sildile “Java arenduse parimad praktikad”.

Vajalike programmide ja utiliitide installimine

Panen kirja vajalikud tööriistad. Neid on 3:

  1. IDE koos Androidi arendustoega:
    • Eclipse+ADT pistikprogramm
    • IntelliJ IDEA kogukonna väljaanne
    • Netbeans + nbandroidi pistikprogramm

Kommunaalteenused paigaldatakse ülaltoodud järjekorras. Kõiki loetletud IDE-sid pole mõtet installida (välja arvatud juhul, kui teil on raskusi õige valikuga). Kasutan IntelliJ IDEA Community Editionit, mis on hetkel Java jaoks üks kõige arenenumatest IDE-dest.

Virtuaalse seadme käivitamine

Pärast AVD Manageri käivitamist ja lisapakettide (erinevate versioonide SDK-de) installimist võite alustada vajalike parameetritega virtuaalse seadme loomist. Liidese mõistmine ei tohiks olla keeruline.

Seadmete loend

Loo projekt

Olen alati valmis alustama, minimeerides ettevalmistavad tegevused, mis hõlmavad projekti loomist IDE-s, eriti kui projekt on hariv ja ei pretendeeri tootmisele.

Nii et Fail-> Uus projekt:

Vajutades nuppu F6, pannakse projekt kokku, kompileeritakse ja käivitatakse virtuaalseadmes.

Projekti struktuur

Eelmine ekraanipilt näitab projekti struktuuri. Kuna selles artiklis taotleme puhtalt praktilisi eesmärke, keskendume ainult nendele kaustadele, mida protsessis kasutame. Need on järgmised kataloogid: geen, res Ja src.

Kaustas geen on failid, mis luuakse projekti koostamisel automaatselt. Te ei saa neid käsitsi muuta.

Res-kaust on mõeldud ressursside, näiteks piltide, tekstide (sh tõlgete), vaikeväärtuste, paigutuste salvestamiseks.

src- see on kaust, milles toimub põhiosa tööst, sest siin on salvestatud failid meie programmi lähtetekstidega.

Esimesed read

Niipea kui tegevus (rakenduse ekraan) on loodud, kutsutakse välja meetod onCreate(). IDE täitis selle kahe reaga:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
Meetod setContentView (vastab sellele.setContentView) määrab praeguse ekraani xml-paigutuse. Lisaks nimetatakse xml-paigutusi "paigutus" ja ekraane - "Tegevus". Rakenduse paigutus on järgmine:

Selle rakenduse jaoks on TableLayout ideaalne. ID saab määrata mis tahes ressursile. Sel juhul määratakse TableLayout id = main_l. Meetodi findViewById() abil pääsete juurde vaatele:
privaatne TableLayout paigutus; // see on klassi KrestikinolikiActivity atribuut public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( ;)

Nüüd peame rakendama buildGameField() meetodi. Selleks tuleb genereerida maatriksi kujul väli. Sellega tegeleb Mänguklass. Kõigepealt tuleb luua lahtrite jaoks ruuduklass ja mängijaklass, mille objektid need lahtrid täidavad.

Ruut.java

pakett com.example; public class Ruut ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) public Player getPlayer () ( tagasimängija; ) )

Player.java

pakett com.example; avalik klass Player ( privaatne stringi nimi; avalik mängija (stringi nimi) ( this.name = nimi; ) public CharSequence getName() ( tagastab (CharSequence) nimi; ) )

Kõik meie rakenduse klassid asuvad src kaustas.

Game.java

pakett com.example; public class Game ( /** * väli */ privaatne ruutväli; /** * Konstruktor * */ public Game() ( väli = uus ruut; squareCount = 0; // välja täitmine jaoks (int i = 0, l = väli.pikkus;i

Mängu lähtestamine KrestikinolikiActivity konstruktoris.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // rakendatakse hiljem)

KrestikinolikiActivity klassi meetod buildGameField(). See lisab tabelisse (mänguväljale) dünaamiliselt ridu ja veerge:
privaatne Nupu nupud = uus nupp; //(....) private void buildGameField() ( Square field = game.getField(); for (int i = 0, lenI = field.length; i
8. rida loob objekti, mis rakendab View.OnClickListeneri liidest. Loome pesastatud kuulaja klassi. See on nähtav ainult lehelt KrestikinolikiActivity.
public class Listener rakendab View.OnClickListeneri ( privaatne int x = 0; privaatne int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(Kuva vaade) ( Nupu nupp = (Nupu) vaade; ) )
Jääb üle mängu loogika ellu viia.
avalik klass Mäng ( /** * mängijad */ privaatne mängija mängija Player activePlayer; /** * Loendab täidetud lahtrite arvu */ privaatne int täidetud; /** * Lahtrite koguarv */ privaatne int squareCount; /** * Konstruktor * */ public Game() ( väli = new Square; squareCount = 0; // välja täitmine for (int i = 0, l = field.length; i

Võitja väljaselgitamine

K. O. soovitab, et tic-tac-toe võidab mängija, kes asetab X või O joonele, mis on võrdne väljaku pikkusega vertikaalselt, horisontaalselt või diagonaalselt. Esimene mõte, mis pähe tuleb, on kirjutada iga juhtumi jaoks meetodid. Ma arvan, et vastutusahela muster töötab sel juhul hästi. Määratlege liides
pakett com.example; avalik liides WinnerCheckerInterface ( public Player checkWinner(); )
Kuna mäng vastutab võitja otsustamise eest, rakendab see seda liidest. On aeg luua virtuaalsed "liinimehed", kellest igaüks paneb oma poole proovile. Kõik need rakendavad WinnerCheckerInterface'i liidest.

WinnerCheckerHorizontal.java

pakett com.example; public class WinnerCheckerHorizontal rakendab WinnerCheckerInterface'i ( privaatne mängumäng; avalik WinnerCheckerHorizontal(mängumäng) ( this.game = mäng; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = väli.pikkus;i

WinnerCheckerVertical.java

pakett com.example; public class WinnerCheckerVertical rakendab WinnerCheckerInterface'i ( privaatne mängumäng; avalik WinnerCheckerVertical (mängumäng) ( this.game = mäng; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = väli.pikkus;i

WinnerCheckerDiagonalLeft.java

pakett com.example; public class WinnerCheckerDiagonalLeft rakendab WinnerCheckerInterface'i ( privaatne mängumäng; avalik WinnerCheckerDiagonalLeft(Game game) ( this.game = mäng; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = väli.pikkus; i

WinnerCheckerDiagonalRight.java

pakett com.example; public class WinnerCheckerDiagonalRight rakendab WinnerCheckerInterface'i ( privaatne mängumäng; avalik WinnerCheckerDiagonalRight(Mängumäng) ( this.game = mäng; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = väli.pikkus; i
Initsialiseerime need mängukonstruktoris:
//(....) /** * "Kohtunikud" =). Pärast iga käiku kontrollivad nad, kas * on võitja */ privaatne WinnerCheckerInterface winnerCheckers; //(....) avalik mäng() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); WinnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
CheckWinner() rakendamine:
public Player checkWinner() ( jaoks (WinnerCheckerInterface winChecker: winnerCheckers) ( Mängija võitja = winChecker.checkWinner(); if (võitja != null) ( tagastab võitja; ) ) tagastab null; )
Võitjat kontrollime pärast iga liigutust. Lisage kood kuulaja klassi meetodile onClick().
public void onClick(vaatevaade) ( Nupu nupp = (Nupu) vaade; Mäng g = mäng; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Mängija võitja = g.checkWinner(); if (võitja != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // kui väli on täidetud gameOver(); ) )
GameOver() meetodit rakendatakse kahes variandis:
privaatne tühine gameOver(Player player) ( CharSequence text = "Mängija \"" + player.getName() + "\" võitis!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) privaatne void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
Java jaoks on gameOver(Player player) ja gameOver() erinevad meetodid. Toast.makeText Builderi abil saate kiiresti teateid luua ja kuvada. refresh() värskendab välja olekut:
privaatne void refresh() ( Ruutväli = game.getField(); for (int i = 0, len = field.length; i

Valmis! Loodan, et see artikkel on aidanud teil Android OS-i arendamise maailmas end mugavalt tunda. Tänan tähelepanu eest!

Video valmis rakendusest

Android OS-i vanus läheneb kümnendale aastapäevale. Kuigi selle operatsioonisüsteemi esimesest väljalaskest on nii palju aega möödas, ei tähenda see sugugi, et rong oleks lahkunud ning Androidi rakenduste arendamise õppimiseks on liiga hilja. Tegelikult on nüüd aeg õppida: hämmastavate Androidi rakenduste loomiseks pole kunagi olnud nii palju tõhusaid viise.

Kõik uued Chromebookid on nüüd ja igavesti saanud Androidi rakenduste toe: neid saab alla laadida, installida ja käivitada nagu nende algkeskkonnas. Androidi rakenduste turg ainult kasvab. Te ei tohiks arvata, et aeg on möödas – pole veel hilja alustada. Kõik, mida vajate alustamiseks: valmistuge, hingake sügavalt sisse, valige õige programmeerimiskeel – ja alustage oma teekonda.

Kuid milline programmeerimiskeel on teie jaoks parim? Õige arendustööriista valimine on esimene ülesanne, mida keegi sinust paremini teha ei saa. Palju sõltub programmeerimiskogemusest (või kogemuste puudumisest konkreetsetes arenduskeskkondades), isiklikust mugavusest konkreetse keele kasutamisel. Õnneks on korralik valik. See artikkel on läbi vaadanud Androidi parimate programmeerimiskeelte valiku.

Androidi rakenduste osas pole Java sugugi vale valik. Lisaks sellele, et see on selle OS-i ametlik programmeerimiskeel, on see ka GitHubi ressursis levinuim teine ​​​​ja see on olnud nii populaarne juba üle 20 aasta. See tähendab, et Java jaoks on palju juhiseid ja õpetusi ning selle keele vananemise pärast lähitulevikus pole üldse vaja karta.

Kuna Java keel on laialt levinud kümnetes programmeerimistööstuses, soovitame teil alustada selle õppimist Java-teemaliste raamatutega Androidi ökosüsteemi kontekstis. Muidugi on Java kõigis keskkondades ühesugune, kuid eraldi paradigmad ja väljendid aitavad uudishimulikul meelel kiiresti Androidi rakenduste arendamise olemusse süveneda. See on ülesanne, mille enamik selleteemalisi raamatuid endale seab.

Väärib märkimist, et Java auväärse vanuse tõttu puuduvad sellel mõned iseloomulikud tunnused, mis on omased noorematele keeltele. Algajatele pole see nii oluline, kuid kogenumate programmeerijate jaoks, kes lülituvad näiteks Swiftilt sellele keelele üle, võib Java alguses põhjustada klaustrofoobiahooge.

Kotlini programmeerimiskeel loodi spetsiaalselt Java virtuaalmasinatel töötamiseks. See tähendab, et Kotlini rakendused kompileeritakse Java koodiks, võimaldades neil töötada mis tahes masinas, mis toetab Java keskkonda. Ja kuna enamikul masinatel on Java tugi, on Kotlini kasutamine suhteliselt lihtne viis platvormiülese tarkvara arendamiseks.

Kotlini kasutamine on Java kõigi parimate külgede rakendamine tarkvaratootes ilma selle puudusteta. Kotlini programmeerimise süntaks ja muud funktsioonid on kaasaegsed, selged ja kiired. See on tõesti mugav arenduskeskkond. Kui Java tundub tülikas, kohmakas ja vanamoodne, näeb Kotlin välja mugav, värske ja isegi ilus. Mingil määral võib arvata, et Kotlin loodi spetsiaalselt Androidi rakenduste arendamiseks.

Aga teisest küljest? Kotlin on väga noor keel. Selle esimesed versioonid ilmusid 2011. aastal ja ametlik väljalaskmine toimus alles 2016. Hea uudis on: Kotlin on tasuta ja avatud lähtekoodiga. Arvata on, et see areneb hüppeliselt. Kuid igal juhul kulub mitu aastat, enne kui see keel osutub tõeliselt usaldusväärseks valikuks.

C# on uskumatu programmeerimiskeel! Ta võttis Javast kõik parima, jättes maha selle keele halvimad omadused. Ja ta arenes samas õiges suunas. Tundub, et Microsoft nägi kunagi Java potentsiaali ja otsustas välja töötada oma parema versiooni.

Pikka aega oli C# kasutamise suur puudus see, et see töötas ainult Windowsi süsteemides: keel põhineb .NET Frameworkil. Kuid 2014. aastal see muutus: Microsoft avas .NET Frameworki lähtekoodi. Veelgi enam, 2016. aastal omandas ettevõte Mono (projekt, mis võimaldab C # programmidel erinevatel platvormidel töötada) arendaja Xamarin.

Nende hiilgavate tegude tulemuseks on see, et täna saate kasutada keskkondi Xamarin.Android ja Xamarin.iOS, et luua Visual Studio või Xamarin Studio mobiilirakendusi. See on suurepärane võimalus arendusega alustamiseks, sest hiljem saab selle keele funktsioone kasutada ka muudes valdkondades – näiteks luua keerulisi mänge Unity ja C# abil. Visuaalsed näited Xamariniga loodud rakendustest? MarketWatch – ei rohkem ega vähem.

Lõpetuseks märgime, et kuni viimase ajani nõudis töö Xamarinis tasu. Kuid Microsoft tegi selle keskkonna tasuta!

Kuigi Androidil pole Pythoni algset tuge, on olemas tööriistad, mis võimaldavad teil Pythonis rakendusi kirjutada ja need seejärel Androidi APK algrakendusteks teisendada. Suurepärane näide Pythoni elujõulisusest tõeliselt tõhusa keelena. Pythoni fännid, kes soovivad kätt proovida Androidi rakenduste arendamisel, hindavad seda võimalust kindlasti – ilma Java metsikusse süvenemata.

Üks populaarsemaid lahendusi Pythoni koodi APK-ks teisendamiseks on Kivy projekt. Ja see pole isegi avatud lähtekoodiga ja mitte ainult Windowsi, Maci, Linuxi ja iOS-i tugi lisaks Androidile. Kivy on loodud rakenduste arendamise tõesti kiirendamiseks. Igatahes saate seda kasutada prototüüpimise tööriistana. Mõne koodireaga saab nii palju ära teha!

Pythoni omatoe puudumisel ei ole aga võimalik Androidi algkeskkonda ära kasutada. Kivyga kirjutatud rakendused kipuvad kompileerima suuremateks APK-deks, käivituvad aeglaselt ja toimivad üldiselt alla keskmise. Iga uus väljalase on aga tõeliselt parem kui eelmine ja tänapäeva mobiilseadmed on nii võimsad, et optimaalsest allapoole jääv rakenduste jõudlus ei tähenda vähe. See tegur ei tohi olla takistuseks.

Paar näidet Kivy keeles kirjutatud Androidi rakendustest: Kognitivo ja Barly.

  1. HTML5 + CSS + JavaScript

See keelte kolmik, mis kunagi loodi veebis esiotsa rakenduste arendamiseks, on vahepeal kasvanud millekski enamaks. Nüüd piisab HTML5, CSS ja JavaScripti tööriistadest, et luua väga erinevaid rakendusi nii mobiilseadmetele kui ka klassikalistele arvutitele. Sisuliselt loob programmeerija veebirakenduse, mis suudab ära kasutada kogu võrguühenduseta platvormide võimsuse ja võlu.

Sel viisil Androidi rakenduste loomiseks saate kasutada Adobe Cordova võimsust, avatud lähtekoodiga raamistikku, mis toetab ka iOS-i, Windows 10 Mobile, Blackberry, Firefoxi ja paljusid teisi. Kuid nii kasulik kui Cordova ka pole, nõuab selles korraliku rakenduse loomine palju tööd. Seetõttu eelistavad paljud programmeerijad projekti Ionic Framework (mis kasutab erinevatel platvormidel juurutamiseks "Cordovat").

Androidi näidisrakendused, mis on kirjutatud HTML5-s, JavaScriptis ja CSS-is: Untappd ja TripCase.

On veel üks võimalus: kasutada React Native raamatukogu. Seda saab juurutada Androidis, iOS-is ja universaalse Windowsi rakenduste platvormil. Seda raamatukogu kasutavad Facebooki, Instagrami ja teiste suurettevõtete spetsialistid, nii et võite selle töökindlusele loota. Treenimine pole just kõige lihtsam, kuid finaali jõudes on teie käes kogu jõud, paindlikkus ja mugavus, mida võiksite soovida.

Lua on vana skriptikeel, mis loodi algselt laiendusena keerukamates keeltes kirjutatud programmidele: C, VB.NET jne. Sellel keelel on mõned omadused, mis eristavad Luat paljudest sarnastest – näiteks massiivide algus 0 asemel 1-ga või algklasside puudumine.

Seega saab Lua teatud ülesannete puhul kasutada peamise programmeerimiskeelena. Selle parim näide on Corona SDK. Corona abil saate luua võimsaid funktsioonirikkaid rakendusi, mida saab juurutada Windowsi, Maci, Androidi, iOS-i ja isegi Apple TV + Android TV jaoks. Coronal on ka sisseehitatud monetiseerimisvõimalused, lisaks on see mahult korralik turg, kust leiate oma töös kasulikke pluginaid.

Enamasti kasutatakse Coronat mängude loomiseks (näiteks Fun Run 2 ja HoPiko), kuid on ka näidiseid utiliitidest, aga ka ärirakendustest (My Days ja Quebec Tourism).

  1. C/C++

Androidi rakenduste loomiseks pakub Google ametlikult kahte arenduskeskkonda.

  • SDK (kasutab Java);
  • ja NDK (kasutab emakeeli nagu C ja C++).

Pange tähele, et terve rakenduse loomiseks C, C ++ ja "palja" Java kasutamine ei tööta. Selle asemel võimaldab NDK luua teeke, mille funktsioonidele pääseb juurde Java-koodi osadega rakenduses.

Üldiselt pole NDK-d vaja kasutada. Seda keskkonda ei tohiks peamisena kasutada, kui ainult seetõttu, et peate rohkem kodeerima C / C ++, mitte Java-s. NDK olemasolu on õigustatud nendes ülesannetes, kui keerukate arvutusülesannete täitmisel on vaja võimalikult palju jõudlust välja pigistada. NDK võimaldab ka manustada oma rakendusse C- ja C++-teeke.

Kuid teinekord tasub igal võimalusel Java juurde jääda. Androidi rakenduste arendamine C/C++ keeles on palju keerulisem kui Javas. Ja enamasti on jõudluse kasv liiga väike.

Milliste rakendustega tahaksite töötada?

Sõnumitoojad, mängud, kalkulaatorid, märkmikud, mängijad. Võimalusi on lõputult! Tänu ülaltoodud programmeerimiskeeltele ja raamistikele on need paljuski piiramatud. Te ei pea neid kõiki järjest uurima – ainult neid, mis on teie probleemi lahendamisel kasulikud. Kui tulevikus on vaja enda teadmisi täiendada, siis saab eneseharimisega tegeleda siis, kui selleks õige aeg tuleb.

Lõpetuseks soovitame lugeda mobiilirakenduste arendamisele pühendatud ajaveebi. Need võimaldavad teil määrata eduka mobiilirakenduse ettevalmistamiseks vajalikud koostisosad ja aidata teil ületada palju raskusi, mis kõigi programmeerijate teel paratamatult tekivad.

See õpetus õpetab teile põhitõdesid, kuidas Android Studio arenduskeskkonda kasutades Androidi rakendust kirjutada. Android-seadmed muutuvad üha tavalisemaks, nõudlus uute rakenduste järele ainult suureneb. Android Studio on tasuta lihtsalt kasutatav arenduskeskkond.

Selle õpetuse jaoks on kõige parem, kui teil on vähemalt pisut Java, kuna see on Androidi kasutatav keel. Juhendis ei ole liiga palju koodi, kuna eeldan, et olete Javaga mõnevõrra tuttav või olete valmis leidma midagi, mida te veel ei tea. Rakenduse loomine võtab aega 30–60 minutit, olenevalt sellest, kui kiiresti te kõik vajalikud programmid alla laadite ja installite. Pärast selle õpetuse järgimist oma esimese Androidi rakenduse loomisel võite leida endale uue lõbusa hobi või isegi alustada karjääri lootustandva mobiilirakenduse arendajana.

1. toiming: installige Android Studio

  1. JDK tuleb installida ( Java arenduskomplekt) ja JRE (Java Runtime Environment). Saate sellelt lingilt alla laadida. Valige seal oma OS-i versioon, nõustuge litsentsilepinguga, laadige alla ja installige.
  2. Nüüd minge siia http://developer.android.com/sdk/index.html ja laadige alla (olge ettevaatlik, peate alla laadima umbes 3 gigabaiti).
  3. Alustame installimist ja järgime juhiseid.

2. etapp: looge uus projekt

  1. Avage Android Studio.
  2. menüüs" Kiire algus”, valige „ Alustage uut Android Studio projekti».
  3. Aknas" Loo uus projekt” (avanenud aken), nimeta oma projektile Tere, Maailm».
  4. Firma nimi (valikuline.*
  5. Klõpsake " Edasi».
  6. Veenduge, et märkeruut oleks ainult valikus " Telefon ja tahvelarvuti».
  7. Kui plaanite testida oma esimest rakendust oma telefonis, siis veenduge, et valitud oleks õige Androidi versioon (mitte vanem kui telefonis olev).
  8. Klõpsake " Edasi».
  9. vali " Tühi tegevus».
  10. Klõpsake " Edasi».
  11. Jätke kõik muud väljad nii, nagu nad on.
  12. Klõpsake " Lõpetama».

* Android-projektide tüüpiline ettevõtte nimi on "example.name.here.com".

3. samm: tervituse redigeerimine

  1. Minge vahekaardile tegevust_main.xml, tõenäoliselt on see juba aktiivne.
  2. Veenduge, et vahekaart oleks ekraani allservas aktiivne disain(tõenäoliselt on).
  3. Lohistage fraas " Tere, Maailm! » telefoni vasakust ülanurgast ekraani keskele.
  4. Kaustapuu asub ekraani vasakus servas. Avage kaust nimega " väärtused».
  5. Topeltklõpsake selles kaustas failil " stringid.xml».
  6. Leidke sellest failist rida, mis sisaldab teksti " Tere, Maailm!" ja lisage sellele tekstile " Tere tulemastjuurdeminurakendus! ».
  7. Tagasi " tegevust_main.xml».
  8. Veenduge, et teie tekst oleks telefoni ekraani keskel ja sisaldaks teksti " Teremaailmas! Tere tulemastjuurdeminurakendus! ».

4. samm: nupu lisamine

  1. Vahekaardil " tegevust_main.xml» vali altpoolt vahekaart « disain».
  2. Telefoni asukoha akna vasakpoolses veerus leidke kaust nimega " Vidinad". Nuppe on erinevaid.
  3. Võtke nupp nuppu” ja lohistage see telefoni ekraanile. See peaks olema ekraani keskel otse teie teksti all.
  4. Veenduge, et nupp on endiselt valitud (sinine kast selle ümber).
  5. Alumises paremas nurgas on aken valitud objekti omadustega. Kerige alla ja leidke rida nimega " tekst».
  6. Muuda teksti" Uus nupp" peal " Järgmine leht».

5. samm: looge teine ​​​​tegevus

  1. Paremklõpsake projekti failisüsteemi puu ülaosas kaustal " rakendus».
  2. Valige Uus > Tegevus > Tühi tegevus.
  3. Sisestage ilmuva akna ülemisele reale " Teine tegevus».
  4. Klõpsake " Lõpetama».
  5. minge lehele " tegevust_teine.xml ja veenduge, et disain».
  6. Liigutage tekst telefoni vasakust ülanurgast ekraani keskele, nagu tegime eelmistes sammudes.
  7. Veenduge, et tekstiplokk on endiselt valitud (sinine raam) ja leidke objekti omaduste alumises paremas nurgas rida " id"ja sisenege sinna" tekst2 ».
  8. Topeltklõpsake vasakus ülanurgas (projektipuus) " stringid.xml».
  9. Joone all Tere, Maailm! Tere tulemast minu rakendusse!

    lisage järgmine rida

    Tere tulemast teisele lehele!

  10. Tagasi " aktiivsus_sekund.xml».
  11. Valige tekstiplokk uuesti.
  12. Leidke objekti omaduste alt paremas nurgas rida " tekst"ja sisenege sinna «@ string/sekund_leht».
  13. Veenduge, et tekstikastis oleks nüüd kirjas " Tere tulemastjuurdeateisekslehel! ” ja ajaveebi paigutatakse ekraani keskele.

6. samm: kirjutage nupu jaoks toiming


7. etapp: rakenduse testimine

  1. Klõpsake Android Studio akna ülaosas asuval tööriistaribal rohelisel esitussümbolil.
  2. Aknas" Valiseade» vali « käivitadaemulaator» ja valige seade.
  3. Klõpsake nuppu " Okei».
  4. Kui emulaator käivitub (see võib võtta kaua aega), avaneb rakendus virtuaalses seadmes automaatselt.
  5. Veenduge, et kogu tekst oleks õigesti kuvatud ja nupul klõpsamine viib teid järgmisele lehele.

Tähelepanu: Kui saate sõnumi " HAX kerneli moodul pole installitud!", on kaks võimalust. Fakt on see, et seda virtualiseerimist toetavad ainult kaasaegsed Inteli protsessorid ja peate selle lubama ainult BIOS-is. Kui teil on protsessor, mis seda funktsiooni ei toeta, peate rakendust testima päris telefonis või kasutama sisseehitatud emulaatori asemel kolmanda osapoole emulaatorit.

Kuidas hankida Android Studios .apk-fail

Minu arvates on see teema selles artiklis hästi käsitletud, nii et ma ei hakka ennast kordama. Esimese tunni jaoks tundus mulle kõige lihtsam Käsitsi viis.

Kui saate faili, saate selle oma telefoni kopeerida ja rakenduse installida.

8. etapp: tulemus

Palju õnne! Olete just lõpetanud oma esimese mõne põhifunktsiooniga Androidi rakenduse kirjutamise. Valmis rakendusel peaks olema kasutaja tervitusleht ja nupp, mis viib kasutaja teisele lehele.

Oled saanud pilgu Androidi rakenduste arendamisse ja võisid äratada endas soovi õppida kõike, mida vajad, et selles suunas edasi areneda.

Artiklis kirjeldatakse peamisi raskusi Androidi rakenduste loomisel.
Vaadeldakse Androidi programmeerimise põhikontseptsioone.
Näiteks kirjeldatakse Sudoku mängu loomist raamatust Tere, Android - Ed Burnette.
Hoiduge paljude ekraanipiltide eest.

1. Arenguraskused

Android on ainulaadne operatsioonisüsteem. Rakenduse arendaja peab hea tulemuse saamiseks teadma selle funktsioone ja nüansse. Arendamisel () tuleb arvestada mõningate raskustega. Loetleme need lühidalt:
1) Rakendus nõuab installimiseks kaks korda (või isegi neli) rohkem ruumi kui rakenduse algne suurus.
2) Sisseehitatud välkmäluseadme failidega töötamise kiirus langeb vaba ruumi vähenemisega kümme korda.
3) Iga protsess võib kasutada kuni 16 MB (mõnikord 24 MB) RAM-i.

2. Androidi produktiivsete rakenduste arendamise põhimõtted

Töötamiseks vajate Androidi SDK-d ja Eclipse'i. Selle kohta, kuidas kõike installida ja käivitada, on kirjutatud.

Projekti Eclipse'i laadimiseks järgige alltoodud samme.
1) Pakkige projekt lahti tööruumis Eclipse eraldi kausta.
2) Vali menüükäsk Fail->Uus->Android Project.
3) Valige dialoogiaknas Uus Androidi projekt suvand Loo projekt olemasolevast allikast.
4) Määrake väljale Location projektiga kausta tee. Klõpsake nuppu Edasi.

Programmi menüü

Mängu menüü on kirjeldatud failis res/layout/main.xml. Liidese kirjeldust saab redigeerida XML-ina või renderdatud liidesena. Vahetamiseks kasutage sisu kuvamisala allservas olevaid vahekaarte.

Tavaliselt asuvad juhtelemendid konteineris, meie puhul LinearLayoutis. See paigutab kõik elemendid ühte veergu.

Vahendid

Pange tähele, et kõik tekstisildid (android:text) võtavad andmeid ressurssidest. Näiteks kirje android:text="@string/main_title" määrab, et teksti tuleks otsida failist res/values/string.xml sõlme nimega main_title (Android Sudoku). Taustavärv sisaldub ka ressurssides (android:background="@color/background"), kuid failis color.xml (#3500ffff). Ressursifailide avamisel redaktoris võib ilmneda tõrge. Kuid võite alati lülituda XML-i kaardistamisele.

Juhtelementidel, millele tuleb koodi kaudu juurde pääseda, peab olema ID. Nuppudel on ID (android:id="@+id/continue_button"), et saaksite nupule lisada klikikäsitleja. Plussmärk näitab, et nupule tuleks anda ID failis /gen/org.example.sudoku/R.java (avalik staatiline lõplik int jätka_nupp=0x7f0b000b;). See fail genereeritakse automaatselt ja seda ei soovitata muuta. Fail sisaldab R-klassi, mille kaudu pääsete juurde mis tahes liidese elemendile ja muudele ressurssidele.

Akende loomine

Kaaluge programmi kohta teabega akna loomist. Selle akna paigutus on failis /res/layout/about.xml. Tegevusklassi kirjeldatakse failis /src/org.example.sudoku/About.java. Tegevus on lingitud failis AndroidManifest.xml oleva märgistusega. Seda faili saab vaadata kas redaktori kaudu või XML-vormingus. Redaktori erinevatel vahekaartidel saate valida faili erinevaid jaotisi. Jaotis Rakendus sisaldab tegevuse parameetreid. Pange tähele, et parameetri Theme väärtuseks on määratud :style/Theme.Dialog. See muudab akna rohkem modaalseks dialoogiks.

Programmi teabega aken kutsutakse Sudoku klassist, vajutades nuppu Teave. Sudoku klass on kirjutatud Click-sündmuse enda käsitlemiseks (avalik klass Sudoku laiendab Activity rakendab OnClickListenerit). Public void onClick(View v) meetodis tehakse kindlaks, milline nupp sündmuse käivitas ja käivitatakse vastav kood. Vastav Intent kutsutakse näitama akent Teave.
case R.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
murda;

Sündmuste käitlejaid saab paigaldada ka konkreetsetele juhtseadmetele. Näiteks Klaviatuuri klassis määratakse klassi loomisel üksikute nuppude töötlejad meetodis setListeners().

lihtne dialoog

Kasutajale tuleks anda võimalus valida raskusaste. See on väike dialoog, milles peate valima ühe mitmest valikust. Mul on väga hea meel, et selleks ei pea te looma eraldi Intenti, vaid lihtsalt kasutama AlertDialog klassi.
Analüüsime uue mängu alustamise protsessi. Kasutaja klõpsab nuppu Uus mäng. Klikitöötleja on Sudoku klassi meetod onClick. Järgmisena kutsutakse välja meetod openNewGameDialog, mis näitab raskusastme valimise dialoogi ja käivitab mängu valitud raskusastmega. See dialoog on loodud klassi AlertDialog abil.

Privaatne void openNewGameDialog() ( new AlertDialog.Builder(this) .setTitle(R.string.new_game_title) .setItems(R.array.difficulty, new DialogInterface.OnClickListener() ( avalik void onClick(DialogInterfacei dialoogiliides)(Intername (i); ) )) .show(); )

Pange tähele, et dialoogi sisu (nuppude komplekt) on üles ehitatud stringimassiivist R.array.difficulty. Dialooginuppude vajutamiseks määratakse koheselt käsitleja, mis vajutatud nupu numbri järgi alustab uut etteantud raskusastmega mängu, kutsudes startGame meetodit.

Graafika

Mängu loogika eest vastutab klass Mäng. Siia laaditakse ülesanded, kontrollitakse võidutingimusi. Klass Mäng on tegevus, kuid liidest ei kirjeldata XML-is, vaid see on loodud koodi abil. Vaade luuakse meetodil onCreate:

PuzzleView = uus PuzzleView(see);
setContentView(puzzleView);
puzzleView.requestFocus();

PazzleView on vaatest tuletatud klass, see loob mänguvälja ja käsitleb ekraani puutesündmusi (meetod onTouchEvent) ja klahvivajutusi (onKeyDown meetod).

Vaatame joonistamisprotsessi Androidis. Joonistamiseks peate onDraw meetodit üle koormama. Meetod võtab vastu lõuendiobjekti, mille kaudu joonistatakse. Värvide määramiseks luuakse Paint klassi objektid. Värv on määratud ARGB-vormingus. Värvi on kõige parem salvestada ressurssidena (colors.xml fail). Paint ei ole ainult klass värviteabe salvestamiseks. Näiteks teksti joonistamisel sisaldab see teavet varjutusmeetodi, fondi ja teksti joonduse kohta.

Canvas sisaldab graafika joonistamise meetodite komplekti (drawRect, drawLine, drawPath, drawText ja teised).

Graafika optimeerimiseks on parem hoiduda onDraw meetodi sees objektide loomisest ja tarbetutest arvutustest (vaadatud näide graafika rakendamisest pole optimaalne).

Muusika

Muusika esitamiseks kasutatakse MediaPlayeri klassi. Mängu muusika on lisatud ressurssidesse. Vajalikud failid tuleb lihtsalt /res/raw kausta kopeerida (WAV, AAC, MP3, WMA, AMR, OGG, MIDI formaadid).
Kõigepealt peate looma MediaPlayeri klassi eksemplari:
mp = MediaPlayer.create(kontekst, ressurss);
siin on kontekst tavaliselt klass, mis algatab muusika käivitamise, ressurss on ressursi identifikaator koos muusikaga. Taasesituse juhtimiseks kasutatakse alustamise, peatamise ja vabastamise meetodeid.

Mängus mängitakse muusikat peamenüüs (käivitatakse Sudoku klassist) ja mängus (käivitatakse klassist Mäng). Muusikaklass loodi taasesituse juhtimiseks. Klass sisaldab MediaPlayeri staatilist eksemplari, mis välistab vajaduse luua iga heliressursi käivitamise jaoks eraldi projekt.

Meetodid onResume ja onPause on alistatud klassides Sudoku ja Game, kus muusika käivitub tegevuse alguses ja peatub, kui tegevus on välja lülitatud.

järeldused

Artiklis käsitletav näide ei ole liiga keeruline, mis võimaldab teil seda ilma suurema vaevata mõista. Samal ajal puudutab see Androidi arendamise erinevaid aspekte.

P.S. Suur tänu kasutajale

Kuidas Android Studios mobiilirakendust luua

Android Studio on IntelliJ IDEA-l põhinev integreeritud arenduskeskkond (IDE), mida Google nimetab Androidi rakenduste ametlikuks IDE-ks.

See juhend kirjeldab Androidi rakenduste arendamine:

  • Navigeerige failide vahel, kasutades File Explorerit
  • Faili AndroidManifest.xml installimine
  • Failide importimine projekti
  • Täiustatud paigutuse redaktor koos dünaamilise eelvaate funktsiooniga
  • Logcati ja Android Monitori kasutamine rakenduste silumiseks

Android Studio alustamine

Käivitage aknas Android Studio Android Studio häälestusviisard vali Alustage uut Android Studio projekti(alustage uut projekti).

Aknas Loo uus projekt vali rakenduse nimi(rakenduse nimi) sisestage Fortune ballina ettevõtte domeen; põllul projekti asukoht valige koht, kuhu rakendus salvestatakse. Klõpsake Edasi.

Teie ees on aken Sihtige Android-seadmeid. Valige Telefon ja tahvelarvuti. Põllul Minimaalne SDK täpsustada API 15. Klõpsake Edasi.

Aknas Lisage tegevus mobiilile vali põhitegevus. Hinnake kõiki valikuid, see aken annab ülevaate saadaolevatest paigutustest.

Klõpsake Edasi.

Aknas Kohandage tegevust, mille ekraanipilt on paigutatud allpool, saate muuta tegevuse nimi(tegevuse nimi), Paigutuse nimi(küljenduse nimi) Pealkiri(üldnimetus) ja Menüü Ressursi nimi(ressursside menüü nimi). Jätke vaikeseaded ja klõpsake Lõpetama.

Mõne sekundi pärast ilmub järgmine aken:

Sama aken avaneb teie seadmes või emulaatoris. Emulaator toimib seadmena, selle laadimine võtab veidi aega.

See on juba rakendus. Tal on palju puudu, kuid nüüd saate liikuda järgmise sammu juurde.

Projekti ja faili struktuur

Aknas kuvatakse projekti failid.

Rippmenüüs (ekraanipilt allpool) on failide jaoks mitu filtrit. Peamised neist on Project ja Android.

Projekti filter näitab kõiki rakenduste mooduleid – igal projektil on vähemalt üks moodul. Muud tüüpi moodulid hõlmavad kolmandate osapoolte teekide mooduleid või muude Androidi rakenduste mooduleid (nt Android Weari rakendused, Android TV rakendused). Igal moodulil on oma omaduste komplekt, sealhulgas gradle-fail, ressursid ja lähtefailid (java-failid).

Märge. Kui projekt pole avatud, klõpsake paneeli vasakus servas vahekaarti Projekt, nagu on näidatud ekraanipildil. Vaikimisi on installitud Androidi filter, mis rühmitab failid teatud tüübi järgi. Ülemisel tasemel näete järgmisi kaustu.

  • avaldub
  • Gradle skriptid

Järgmistes jaotistes kirjeldatakse kõiki neid kaustu üksikasjalikult, alustades manifestidest.

AndroidManifest.xml ülevaade

Igal Androidi rakendusel on manifestide kaustas fail AndroidManifest.xml. See XML-fail annab teie süsteemile teada rakenduse nõuetest. Selle faili olemasolu on kohustuslik, sest just tema lubab Androidi süsteemil rakendust luua.

Avage manifestide kaust ja AndroidManifest.xml. Topeltklõps avab faili.

Manifesti ja rakenduse märgendid on manifesti jaoks vajalikud ja ilmuvad ainult üks kord.

Iga silt määrab ka atribuutide komplekti koos elemendi nimega. Näiteks võivad mõned rakenduse atribuudid olla järgmised:

android:ikoon, android:silt ja android:teema

Muu hulgas võib manifest ilmuda:

  • uses-permission: taotleb spetsiaalset luba, mis rakendusele antakse, et see korralikult töötaks. Näiteks peab rakendus küsima kasutajalt luba võrku pääsemiseks – juhuks, kui lisate loa android.permission.INTERNET.
  • tegevus: teatab tegevusest, mis on osaliselt vastutav visuaalse kasutajaliidese ja loogika eest. Kõik rakenduses toodud tegevused tuleb lisada manifesti - süsteem ei märka märgistamata tegevust ja seda ei kuvata rakenduses.
  • teenus: lisab teenuse, mida kavatsete kasutada pikkade toimingute või täiustatud API-side rakendamiseks teiste rakendustega. Sel juhul oleks näiteks võrgukõne, mille kaudu rakendus andmeid vastu võtab. Erinevalt tegevustest pole teenustel kasutajaliideseid.
  • vastuvõtja: tänu leviedastusteadete vastuvõtjale võtab rakendus vastu signaale süsteemisõnumite või teiste rakenduste sõnumite kohta isegi siis, kui rakenduse muud komponendid ei tööta. Sellise olukorra näiteks on madala laetuse tasemega aku ja sellest operatsioonisüsteemi teavitamine.

Täieliku siltide loendi leiate Androidi arendaja saidi manifestifailist.

Manifestifaili seaded

Lisage tegevusele järgmine atribuut:

android:screenOrientation=”portree”. et piirata ekraani ainult portreerežiimiga. Kui seda ei tehta, on ekraan olenevalt seadme asukohast kas horisontaal- või portreerežiimis. Pärast atribuudi lisamist näeb manifesti fail välja nagu ekraanipildil.

Looge ja käivitage rakendus. Kui testite oma seadet, pöörake see ümber ja veenduge, et ekraan ei liiguks horisontaalasendisse, kui olete selle AndroidManifestis keelanud.

Gradle'i ülevaade

Liigume edasi Gradle'i juurde. Gradle muudab Androidi projekti installitavaks APK-ks, mida saab seadmetesse installida. Fail build.gradle on Gradle'i skriptides kahel tasemel: moodul ja projekt.

Avage fail build.gradle (Module:app). Näete gradle'i vaikeinstalli:

rakenda pistikprogrammi: "com.android.application" android (compileSdkVersion 25buildToolsVersion "25.0.2"defaultConfig (applicationId "com.raywenderlich.fortuneball"minSdkVersion 15targetSdkVersion 25versionNametestrun ".0.version"Instrument ".0.version" .AndroidJUnitRunner") buildTypes (release (minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"))) sõltuvused (kompileeri fileTree(dir: "libs", sisaldab: ["*.jar"])androidTestCompile(" com.android.support.test.espresso:espresso-core:2.2.2", (välja arvatud rühm: "com.android.support", moodul: "support-annotations")) kompileerige "com.android.support:appcompat- v7:25.1.0"kompileeri "com.android.support:design:25.1.0"testCompile "junit:junit:4.12")

Analüüsime põhikomponente:

  • rakenda pistikprogrammi: „com.android.application” rakendab Androidi pistikprogrammi vanematasandil ja teeb kättesaadavaks rakenduse loomiseks vajalikud tipptaseme ülesanded.
  • Androidi (…) jaotise kõrval on seadete valikud, näiteks targetSdkVersion. Teie rakenduse siht-SDK peab olema uusimal API tasemel. Teine oluline komponent on minSDKVersion (määratleb minimaalse SDK versiooni, mis peab olema seadmesse installitud, et rakendus saaks töötada). Näiteks kui SDK versioon on 14, ei saa rakendus selles seadmes töötada, kuna antud juhul on minimaalne toetatud versioon 15.
  • Viimane komponent on sõltuvused (…). Pange tähele, et kompileerige "com.android.support:appcompat-v7:VERSION" ja kompileerige "com.android.support:design:VERSION". Need pakuvad uute ja vanade API-de tugi- ja ühilduvusfunktsioone.

Lisaks Androidi ühilduvuse teekidele saate sõltuvuste (…) komponendile lisada ka kolmandate osapoolte teeke, näiteks animatsiooniteek sisaldab kasutajaliidese efekte. Otsige üles sõltuvused ja lisage järgmised kaks rida:

sõltuvused ( ... koosta "com.daimajia.easing:library:2. [e-postiga kaitstud]"compile "com.daimajia.androidanimations:library: [e-postiga kaitstud]"}

Siin saate lisada kolmanda osapoole sõltuvusi. Teegid laaditakse automaatselt alla ja integreeritakse Android Studiosse. Nende sõltuvuste oma rakendusse integreerimiseks klõpsake nuppu Sünkrooni kohe.

Sünkroonimine võtab mõne sekundi. Gradle'i värskendused kuvatakse alumise paneeli vahekaardil Sõnumid.

Need on kõik seaded, mida Gradle'is praegu vajate. Sellised manipulatsioonid lisavad rakendusse animatsiooni.

Failide import

Androidi rakenduse arendamisel on oluline integreerimine teiste ressurssidega: pildid, kohandatud fondid, helid, videod jne. Need ressursid imporditakse Android Studiosse ja paigutatakse vastavatesse kaustadesse, mis võimaldab operatsioonisüsteemil valida rakenduse jaoks õiged ressursid. rakendus. Meie rakendus Fortune Ball peab importima pildid joonistatavatesse kaustadesse. Need kaustad võivad sisaldada pilte või spetsiaalseid XML-joonistusi (st saate joonistada kujundeid XML-koodiga ja kasutada neid oma paigutustes).

Android Studios minge Androidilt projektile

Avage kaust res (app > src > main). Paremklõpsake kaustal res, valige Uus > Androidi ressursside kataloog.

Ilmub aken nimega Uus ressursikataloog.

Valige ripploendist Ressursi tüüp joonistatav valik. Valige loendis Saadaolevad kvalifikaatorid suvand Tihedus, seejärel klõpsake nuppu, mis on ekraanipildil esile tõstetud.

Järgmises aknas valige loendist Tihedus XX-High Density. Klõpsake nuppu OK.

Korrake kõike, et luua kaustad drawable-xhdpi, drawable-hdpi ja drawable-mdpi. Valige loendist Tihedus vastavalt X-kõrge, kõrge (kõrge) ja keskmine (keskmine) tihedus.

Iga kaust, millel on tiheduse määraja (nt xxhdpi, xhdpi, hdpi), sisaldab kujutisi, mis vastavad teatud tihedusele või eraldusvõimele. Näiteks kaust drawable-xxhdpi sisaldab suure tihedusega pilti, mis tähendab, et kõrge eraldusvõimega ekraaniga Android-seade tõmbab pildi sellest kaustast. Pilt näeb hea välja kõikides Android-seadmetes, olenemata ekraanikvaliteedist. Ekraani tiheduse kohta lisateabe saamiseks vaadake Androidi dokumentatsiooni.

Kui olete loonud kõik "joonistatavad" kaustad, saate minna tagasi kausta lahtipakkitud sisu juurde ja kopeerida (cmd+C) pildi igast kaustast ja asetada (cmd+V) vastavasse Android Studio kausta.

Pärast failide paigutamist näete akent Kopeeri. Valige OK.

XML-vaade ja dünaamilise paigutuse eelvaated

Paigutuse loomine, millega kasutajad saavad suhelda, on protsessi oluline osa. Android Studios saab seda teha paigutuse redaktoris. Avage sisu_main.xml failist res/layout. Vahekaardil Disain saate üle kanda liidese elemente (nupud, tekstiväljad).

Kujundusest paremal on vahekaart Tekst, mis võimaldab XML-i redigeerida otse paigutuses.

Enne välimuse loomist tuleb määratleda mõned väärtused. Avage strings.xml vahekaardil res/values ​​ja lisage järgmine:

Pakkuge välja küsimus, millele saate vastata "jah" või "ei", seejärel klõpsake võlukuulil.

strings.xml sisaldab kõiki stringe, mis rakenduses kuvatakse. Nende ridade jagamine eraldi failideks lihtsustab rahvusvahelistumist, nagu vajate ainult stringfaili iga keele jaoks, mida teie rakendus nõuab. Isegi kui te ei kavatse oma rakendust teistesse keeltesse tõlkida, on alati soovitatav kasutada stringfaili.

Avage dimens.xml res/values ​​ja lisage järgmine:

15 spl20 spl

dimens.xml sisaldab mõõtmete väärtusi, paigutuste vahepiiranguid, teksti suurust jne. Soovitatav on need andmed salvestada faili, et neid saaks hiljem küljenduste koostamiseks kasutada.

Minge tagasi saidile content_main.xml ja asendage kogu faili sisu järgmise koodiga:

See üsna suur kood loob rakenduse paigutuse nimega FortuneBall. Ülemisel tasemel olete lisanud suhtelise paigutuse (suhteline paigutus määrab alamkomponentide asukoha emakomponendi suhtes). RelativeLayouti saab venitada, et see sobiks põhikomponendi suurusega.

Suhteline märgistus lisab kaks tekstiosa, pildi ja nupu. Kõik need üksikasjad on nähtavad nende lisamise järjekorras. Nende sisu saab lugeda strings.xml (tekst) ja joonistatava (pildid) kujul.

Kui värskendate faili content_main.xml, pange tähele, et eelvaate aken värskendab kasutajaliidest:

Märkus: kui eelvaate akent pole näha, klõpsake vahekaardil Tekst paremal asuval märgistusredaktori paneelil nuppu Eelvaade.

Looge ja käivitage.

Ja nüüd olete loonud rakenduse paigutuse. Kuid praegusel hetkel on see lihtsalt ilus pilt – nupule klõpsamine ei tee midagi.

Tegevuse ja vaate kombineerimine

Rakenduses loogiliste linkide loomiseks saate kasutada Java-faile, mis asuvad jaotises app/src/main/java.

Avage MainActivity.java ja lisage need andmed olemasolevate alla:

Impordi java.util.Random;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView; import com.daimajia.androidanimations.library.Techniques;import com.daimajia.androidanimations.library.YoYo;

Esimesed viis importi osutavad teie koodi asjakohastele klassidele: Random, View, Button, ImageView ja TextView. Järgmised kaks importi näitavad, et kasutate kahte klassi raamatukogudest, sh. build.gradle animatsioonide jaoks. Lisage saidi MainActivity.java klassi MainActivity:

String fortuneList = ("Ära arvesta sellega","Küsi hiljem uuesti","Võite sellele loota","Kahtlemata","Väljavaade pole nii hea","See on kindlasti nii","Märgid osuta jah","Jah kindlasti","Jah","Minu allikad ütlevad EI"); TextView mFortuneText;Button mGenerateFortuneButton;ImageView mFortuneBallImage;

Selles lühikeses kooditükis olete tegevuse jaoks määranud 4 muutujat. Esimene neist on stringid, mis määratlevad võimalikud olekud, ülejäänud kolm on kasutajaliidese elemendid, mille olete paigutuses/märgistuses loonud.

Nüüd asendage meetodi onCreate() sisu järgmiste andmetega:

// 1:super.onCreate(savedInstanceState);// 2:setContentView(R.layout.activity_main);Tööriistariba tööriistariba = (Tööriistariba) findViewById(R.id.toolbar);setSupportActionBar(tööriistariba);// 3:mFortuneText = (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = ( nuppu) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(new vaade.OnClickListener() (@Overridepublic void onClick( vaade vaade) (// 5:int indeks = uus Juhuslik().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);)));

  • Kontrollige, kas tegevus on valmis (superklassi teostus).
  • Määrake, et selle tegevuse paigutust esindab varem loodud paigutus, kontrollige tööriistariba.
  • Sisestage kolme varem loodud muutuja väärtused paigutuse vaadetes, kasutades meetodit findViewById. ID väärtus on sama, mis XML-paigutuse puhul.
  • Lisage nupule OnClickListener. See on lihtne klass, mis kapseldab (pakendab) funktsionaalsust, mida omakorda kutsutakse nupuvajutusega.
  • Valige selle rakenduse jaoks fortuneListi komplektist juhuslik valik ja värskendage selle kuvamiseks õnneteksti.
  • Kasutage kolmanda osapoole teeki, et lisada gradle-failile sõltuvus ja seega lisada rakendusele animatsioon.

See on peaaegu valmis. Kuid peate eemaldama ujuva nupu. Minge saidile res/layout ja avage activity_main.xml.

See paigutusfail sisaldab linki failile content_main.xml, mida varem redigeerisite. See määrab vaikimisi sisu (tööriistariba ja ujuv toimingunupp). Kuid selles konkreetses rakenduses (Fortune Ball) pole ujuvat nuppu vaja. Seetõttu eemaldage xml-failist järgmine koodiplokk:

Nüüd pole paremas alanurgas ujuvat nuppu.

Esitage küsimus (What's my fortune?) – vajutage nuppu. Kontrollige rakendust.

Androidi monitor

Android Studio sisaldab laias valikus tööriistu. Avage Android Studio akna allosas vahekaart Android Monitor.

Siit leiate arendaja jaoks palju võimalusi.

  • Kaamera ja vasakpoolne esitusnupp võimaldavad teha ekraanipilte ja salvestada videoid.
  • Suurendusklaas avab mitmeid lisavõimalusi, näiteks rakenduste mälu analüüsi.
  • Layout Inspector pakub visuaalset liidest, mis määrab, miks rakenduse liides näeb teatud viisil välja.

LogCat annab üksikasjaliku ülevaate süsteemisõnumitest koos võimalusega süvendada konkreetseid rakenduse andmeid või isegi kasutada otsinguriba sõnumite filtreerimiseks, kui need ei sisalda konkreetseid märke.

Kontrollige, kas olete paremas ülanurgas valinud Näita ainult valitud rakendust, nagu on näidatud ülaloleval ekraanipildil. Nüüd on nähtavad ainult teie rakenduse sõnumid.

Lisage saidi MainActivity.java importimiste loendisse järgmine:

Impordi android.util.Log;

Lisage faili MainActivity.java faili onCreate() lõppu järgmine rida:

Log.v("FORTUNE APP TAG","onCreateCalled");

Log.v kutsub kahte parameetrit - silt ja teade. Sel juhul on märgend määratletud kui "FORTUNE APP TAG" ja sõnum kui "onCreateCalled".

Logiteate kuvamiseks paneelil Logcat käivitage rakendus.

Filtreerige LogCati sisu, tippige konsooli kohal olevasse otsingukasti onCreateCalled:

Seejärel kustutage otsingutekst, et näha uuesti kõiki logisõnumeid.

Veel üks kasulik funktsioon on logcat, mis võimaldab vaadata veateateid. Lisage oma täielikult töötavale rakendusele viga, et näha, kuidas asjad töötavad.

Minge saidile MainActivity.java ja muutke rakenduses onCreate() järgmist rida:

//mFortuneText = (Tekstivaade) findViewById(R.id.fortuneText);

Käivitage rakendus. Klõpsake nuppu Mis on minu õnn? Ei tööta!

Kuidas te vea parandaksite, kui te ei teaks, et viga on? Logcat aitab selles.

Minge Logcati paneelile - see näeb välja umbes selline:

Siin on palju punast teksti. Sel juhul on probleem faili MainActivity.java real 50. LogCat muutis selle lingi siniseks hüperlingiks. Kui klõpsate sellel, saate teada, milles probleem on.

Muutes mFortuneText = (TextView) findViewById(R.id.fortuneText), lõite muutuja, kuid ei täpsustanud selle väärtust – seega nullkursori erand. Minge tagasi ja muutke koodi, käivitage rakendus. Seekord toimib kõik sujuvalt. Logcat on kasulik tööriist vigade leidmiseks.

Jaga seda artiklit:

seotud artiklid