Kuinka käyttää Android Studio -emulaattoria. Android Studion asentaminen, SDK:n käyttöönotto. Lopuksi laitteen valintaikkuna tulee näkyviin

Jokin aika sitten virkamies IDE Androidille siellä oli Eclipse (de facto Java-standardina) ADT-laajennuksella. Jonkin aikaa myöhemmin JetBrains IDE alkoi saada suosiota Java-ohjelmoijien keskuudessa, sitten siihen ilmestyi Android-kehityslaajennus, ja ihmiset alkoivat siirtyä siihen hitaasti Eclipsestä.

Hieman myöhemmin Google ilmoittaa, mitä Android Studio tekee IDEA:n perusteella. Ja nyt Android Studion toinen versio lähestyy ja Eclipse muistetaan vain pahana unena :)

Android Studio— virallinen kehitysympäristö Androidille. Pohjimmiltaan Android Studio on kuuluisa Java IDE IntelliJ IDEA pluginien kanssa.

Päällä Tämä hetki Android IDE:n valinnassa on seuraavat vaihtoehdot:

  1. Pimennys. Suosituin IDE Javalle jokin aika sitten, käytä sitä nyt Android-kehitykseen ei erittäin suositeltavaa.
  2. IntelliJ IDEA. Erinomainen IDE, sopii Androidille.
  3. Android Studio. Paras IDE Androidille. Se eroaa IDEAsta pienissä asioissa, mutta nämä pienet asiat ovat erittäin, erittäin miellyttäviä ja helpottavat työtämme paljon :) Tähän keskitymme.

Ensinnäkin sinun on varmistettava, että sinulla on JDK (Java Kehityspaketti). Tämä tarvittava komponentti Java-kehitykseen ja koska Android-kehitys tapahtuu Javalla, niin myös Android-kehitykseen.

toiseksi, valitse ruudut "näytä rivinumerot" ja "näytä menetelmäerottimet":

Ensimmäinen näyttää rivinumerot tekstin vasemmalla puolella, toinen piirtää erottimet koodin menetelmien välille.

Nämä kaksi vaihtoehtoa ovat uskomattoman tärkeitä, varsinkin aloittelijoille, enkä ymmärrä, miksi ne on oletuksena poistettu käytöstä.

Kolmanneksi, määritä automaattinen täydennys. Voit tehdä tämän valitsemalla "Ei mitään" kohdassa "Kirjainkoon erottelu":

Selitän miksi näin on. Oletusasetus tarkoittaa, että automaattinen täydennys toimii vain, jos ensimmäinen kirjain on kirjoitettu oikealla kirjaimella. Ei mitään -vaihtoehto aiheuttaa automaattisen täydennyksen riippumatta siitä, missä tapauksessa aloitat kirjoittamisen.

Tämän vaihtoehdon vakiomerkitys, kuten kaksi edellistä, hämmentää minua.

Ensimmäisen projektin luominen

No, olemme selvittäneet Android Studion asennuksen ja on aika luoda ensimmäinen projektimme.

Pääosin Android-ikkuna Studio klikkaa " Aloita uusi Android Studio -projekti«:

Näkyviin tulee uusi ikkuna, jossa meidän on suoritettava useita toimintoja.

Ensimmäisessä sinun on määritettävä sovelluksen nimi, yrityksen toimialue (paketin nimi luodaan näistä kahdesta parametrista) ja projektin sijainti levyllä:

Androidissa, kuten Javassa, sovelluksen ensisijainen tunniste on paketin nimi. Jos olet aiemmin työskennellyt Javan kanssa, tiedät mitä se on. Niille, jotka eivät tiedä, suosittelen Googlea tai esimerkiksi täällä.

Seuraavaksi Android Studio kysyy meiltä, ​​mitä ja mitä SDK-versioita haluamme käyttää. Toistaiseksi "Puhelin ja Tablet" SDK riittää, kun asetamme API-versioksi 16 suositellun 15:n sijaan, koska API 15 ei ole enää relevantti eikä se ole laajalle levinnyt:

Seuraavassa näytössä meiltä kysytään, mitä sovelluskomponentteja haluamme luoda. Valitse "Tyhjä toiminto":

Päällä seuraava askel napsauta "Valmis" muuttamatta mitään.

Kun tämä prosessi on valmis, näet vihdoin ensimmäisen projektisi:

Se on jo melko toimiva, mutta sen suorittamiseen tarvitsemme Android-emulaattorin.

Android-emulaattorin luominen

Luomiseen Android-emulaattori Tarvitsemme Android AVD Manager(AVD = Android Virtual Device). Älä huoli, sinun ei tarvitse asentaa mitään muuta. Napsauta vain tätä painiketta:

Sitten tällä painikkeella:

Napsauta sitten "Seuraava" useita kertoja ja lopuksi "Valmis".

Hello Worldin julkaisu

On aika käynnistää ensimmäinen vuonna luotu projektimme Android Studio!

Napsauta tätä painiketta (tai Shift-F10):

Tämän jälkeen näet valintaikkunan, jossa sinua pyydetään valitsemaan laite, jolla IDE:n tulee suorittaa koottu sovellus:

Valitse nuolella korostettu ruutu ja napsauta OK. Projekti alkaa rakentaa, emulaattori käynnistyy, sovellus asennetaan emulaattoriin ja sovellus käynnistyy.

Tämä kestää jonkin aikaa (mitä tehokkaampi tietokoneesi, sitä vähemmän aikaa se vie), koska emulaattori on melko hidas huolimatta valtavista parannuksista viimeisten parin vuoden aikana.

Ja nyt, 1-10 minuutin kuluttua (emulaattorin käynnistämisen jälkeen projektit tietysti kootaan ja käynnistetään nopeammin), näet vihdoin Hei maailma emulaattorin näytöllä!

Siinä kaikki, ja seuraavassa oppitunnissa tarkastelemme sitä.

Uusia oppitunteja lisätään joka päivä! Varmista, että et menetä mitään, tilaa meidän

Kun alat hallita minkä tahansa alustan kehitystä, kohtaat varmasti heti monia asioita, joita ei huomaa ensi silmäyksellä. sudenkuoppia. Suurin osa niistä liittyy itse koodausprosessiin: API:n epäjohdonmukaisuudet, piilotetut toiminnot, rajoitukset, erityinen ohjelmointityyli alustalle. On myös kiviä, jotka sijaitsevat hieman kauempana: testaus ja automaattinen optimointi, luoda clipart-kuvia ja kuvakkeita, vastaanottaa automaattisia virheraportteja. Kokemattomat Android-kehittäjät ovat vaarassa saada molempia jalkojaan leikattua.

Tässä artikkelissa tarkastellaan Androidin kehitysongelmia apuohjelmien ja työkalujen yhteydessä. Pääsemme eroon tarpeesta yhdistää älypuhelin kaapelilla laitteen testauksen ja virheenkorjauksen aikana, jaamme sovelluksen Lite versiot ja Pro, rakennamme siihen mekanismin automaattinen sukupolvi ja lähettämällä kaatumisraportteja palvelimelle, automatisoimme testauksen, obfusoimme ja optimoimme koodin, ja muutamassa minuutissa luomme kuvakkeen ja kaikki tarvittavat resurssit sovellukselle. Mennä.

1. Hidas emulaattori

Joten olet piirtänyt ensimmäisen sovelluksesi, ja on aika käynnistää se ja testata sen toimivuutta. Tätä tarkoitusta varten Android SDK sisältää emulaattorin. Pitkään aikaan häntä kritisoitiin hitaudesta, mutta Android Studio 2.0:n julkaisun myötä tilanne on parantunut merkittävästi - emulaattorin x86-versio sai laitteistokiihdytyksen, joten nyt se toimii nopeammin kuin oikeat laitteet. Lisäksi hänellä on nyt kätevä GUI, jolla voit simuloida puheluita, tekstiviestejä, vaihtaa GPS-tiedot ja verkkohäiriöt, eli kaikki, joihin jouduit aiemmin käyttämään komentorivityökaluja.

Siksi, jos et ole vielä päivittänyt, suosittelen tekemään niin, puhumattakaan vaihtamisesta Eclipsestä. Muista valita emulaattorin x86-versio AVD-hallinnassa. ARM-versio ei tue laitteistokiihdytystä.

2. Älypuhelin hihnassa

Toinen vaihe on testaus oikea laite. Kaikki on täällä yksinkertaista: yhdistät älypuhelimesi USB:n kautta, asennat ohjaimet, otat virheenkorjaustilan käyttöön kehittäjäasetuksissa, minkä jälkeen laite näkyy asennettavissa olevien sovellusten luettelossa (emulaattorin vieressä). Ainoa ongelma on, että sisään tässä tapauksessa laite on pidettävä kytkettynä tietokoneeseen kaapelilla, ja jos tämä on pääälypuhelimesi, joka vastaanottaa puheluita ja viestejä, ei tarvitse puhua mukavuudesta.

Onneksi Android Studio (tai pikemminkin ADB-apuohjelma, jota se käyttää yhteydenpitoon laitteen kanssa) tukee verkottumista. Mutta tämä toiminto pitää vielä aktivoida. Jos sinulla on juurtunut älypuhelin, olet onnekas: voit ottaa verkon virheenkorjauksen käyttöön WiFi ADB -sovelluksella. Jaksotus:

  1. Asenna WiFi ADB, käynnistä se, ota verkkotila käyttöön kytkimellä ja muista IP-osoite.
  2. Käynnistä Android Studio.
  3. Avaa konsoli, siirry hakemistoon, jossa on asennettu SDK, sitten platform-tools ja suorita seuraava komento:

    $ adb yhdistä IP-osoite

Nyt, jos yrität rakentaa ja käynnistää sovelluksen, näet myös älypuhelimesi laiteluettelossa. Ne, jotka eivät ole root, voivat käynnistää ADB:n uudelleen sisään verkkotila, kun olet liittänyt sen kaapelilla. Tämä tehdään näin:

  1. Yhdistämme älypuhelimen ja asennamme ajurit.
  2. Ota virheenkorjaustila käyttöön kehittäjän asetuksista.
  3. Avaa konsoli, siirry SDK/platform-tools-hakemistoon ja suorita seuraava komento:

    $ adb tcpip 5555

  4. Yhdistä älypuhelimeen verkon kautta:

    $ adb yhdistä IP-osoite

IP-osoite löytyy asetuksista: "Tietoja puhelimesta (Tietoja tabletista) → Yleistä tietoa", kohta "IP-osoite".

3. Kirjastot

Okei, puolessa tunnissa tekemäsi hakkeri näyttää toimivan, ja on aika tehdä siitä todellinen sovellus, jossa on kaunis käyttöliittymä ja widgetit työpöydällesi. Tässä vaiheessa tarvitset todennäköisesti ulkoisia kirjastoja, jotka toteuttavat erilaisia ​​rajapintakonsepteja, ohjelmointimalleja ja viestintää ulkoisten palvelujen kanssa. Ja jos kaikki on selvää jälkimmäisen kanssa (tarvitset SDK:n Dropboxille - avaat portaalin kehittäjille ja seuraat ohjeita), niin loput ovat jo vaikeampaa. Mistä niitä etsiä ja mitkä kirjastot ovat parempia?

Kattavin kirjastoluettelo on Android Arsenal. Sieltä löydät lähes kaiken tarvitsemasi. Saatavilla kätevä haku ja lajittelu luokituksen mukaan, jokaiselle kirjastolle on ohjeet sen liittämiseksi projektiisi, mukaan lukien Androidin tavallisen Gradle-koontijärjestelmän käyttäminen: lisää vain arkisto projektin build.gradle-tiedostoon ja määritä kirjasto riippuvuusluettelossa. .


Hieno lista täytyy olla kirjastot, jotka löydät tältä sivulta. Omasta puolestani lisään, että ensimmäisissä vaiheissa kannattaa heti opiskella Tikari 2, RxJava Ja Jälkiasennus. Kun sinusta tulee edistynyt kehittäjä, alat käyttää näitä kirjastoja tavalla tai toisella.

4. Kuvakkeet ja clipart

Lopulta päivien tai viikkojen jälkeen alat nähdä täysi hakemus. Mutta graafista materiaalia ei vieläkään ole: kuvake on vakio, vihreän robotin muotoinen, clipartin sijaan on tyngät. On selvää, että ilman grafiikkaa ei ole järkeä mennä markkinoille, mutta ensimmäisen sovelluksen ikonista maksaminen on myös typerää. Mitä tehdä?

Itse asiassa kuvake voidaan luoda. Siellä on upea verkkopalvelu Android Asset Studio, jonka avulla saat kaunis ikoni kaikissa mahdollisissa resoluutioissa. Pohjaksi voit ottaa tekemäsi kuvan, kirjoittaa vain tekstiä tai mikä parasta, valita palvelun tarjoamasta clipartista. Voit myös asettaa kuvakkeen tyylin (pyöreä, neliö jne.) iOS tyyliin...), väri, säädä varjoja ja muita parametreja. Tämän seurauksena sinulla on käytettävissäsi arkisto ic_launcher.zip, joka on otettava käyttöön AndroidstudioProjects/APP_NAME/app/src/main/res-hakemistossa. Muista luoda verkkokuvake napsauttamalla "Luo verkkokuvake" -painiketta. Tarvitset sitä.


Saman palvelun avulla voit luoda kuvakkeita ActionBarille ja tilariville. Periaate on suunnilleen sama, sanon vain, että kuvakkeet, joiden sisennys on 15% reunoista, näyttävät parhaiten tilapalkissa.

Lisäksi tarvitset niin sanotun ominaisuuskuvan. Tämä on erityinen kuva Play Market ja muita sovelluskauppoja käytetään palkkina näytön yläreunassa (kun avaat sovellussivun älypuhelimessa). Se voidaan luoda toisella palvelulla. Voit ottaa kuvakaappauksia käyttämällä Googlen virallista palvelua. Se luo älypuhelimen kehyksen kuvakaappauksen ympärille.

5. Kaatumisraportit

Sovellus on valmis, siinä on kuvake, käyttöliittymä on kätevä, koodi on korkealaatuinen. On testauksen aika, ja ensimmäinen asia, jonka teet, on lähettää hakemus ystävillesi ja tuttavillesi. Mutta tässä on ongelma: joillekin niistä sovellus kaatuu, mutta sinulla kaikki toimii hyvin, etkä voi toistaa kaatumiseen johtaneita toimia. Mitä sinun pitäisi tehdä, pyytää ystäviäsi lähettämään sinulle logcat-listaus?

Ei, tarvitsemme kaatumisilmoitusjärjestelmän. Niitä on valtava määrä, ja ne kaikki toteuttavat samaa toimintaperiaatetta: sovellukseen on kytketty pieni kirjasto, joka putoamishetkellä tallentaa pinon jäljen ja muut putoamistiedot ja lähettää sen palvelimelle, ja sitten erityinen verkkokäyttöliittymä luo kauniita kuvia niiden ja visuaalisten raporttien perusteella.

Yksi suosituimmista tällaisista järjestelmistä on Fabric, mutta suosittelen katsomaan Splunk MINT:tä: se on ilmainen, yksinkertainen ja helposti integroitava sovellukseen (lisää vain yksi koodirivi). Voit aloittaa sen käytön yhdistämällä SDK:n projektiin. Tämä voidaan tehdä käyttämällä samaa Gradlea. Avaa build.gradle-tiedosto (se, joka koskee sovellusta, ei koko projektia) ja lisää seuraavat rivit:

Tietovarastot ( maven ( url "https://mint.splunk.com/gradle/" ) ) riippuvuudet ( käännä "com.splunk.mint:mint:5.0.0")


Tämän jälkeen Splunk MINT näyttää sinulle koodirivin, joka on lisättävä koodiin:

Jatko on vain tilaajien saatavilla

Vaihtoehto 1. Tilaa Hacker lukeaksesi kaiken sivuston materiaalin

Tilaus antaa sinulle mahdollisuuden määrätty aika lue KAIKKI maksulliset materiaalit sivustolla. Hyväksymme maksun pankkikortit, sähköinen raha ja siirrot matkapuhelinoperaattoritileiltä.

1. Sinun on asennettava JDK (Java Development Kit) ja JRE (Java Runtime Environment).
Aiemmin Android SDK tuki vain JDK-versiota 6, mutta se on nyt menneisyyttä. Tukee 7 ja jopa 8 (mukaan vähintään, se oli 8. versio, jonka ilmoitin nimellä JAVA_HOME ja Android Studion asetuksissa, eikä ongelmia esiintynyt).
JRE:tä tarvitaan itse studion pyörittämiseen. Käytän versiota 7.
Voit ladata JDK- ja JRE-versiot yli 6 Oraclen verkkosivustolta.

Muuttuva JAVA_HOME Nyt näyttää siltä, ​​​​että sitä ei tarvitse asentaa, koska Android Studiossa määritämme polun JDK: hen asetuksissa. Mutta asensin sen. Tätä varten tarvitset:

  • Mene , valitse vasen , etsi painike avautuvasta valintaikkunasta ympäristömuuttujat.
  • Luo järjestelmä- tai käyttäjämuuttuja JAVA_HOME ja määritä polku sille JDK:han. Minulla on tämä polku: C:\Ohjelmatiedostot\Java\jdk1.8.0_05.
2. Jos sinulla on Android SDK asennettuna.
Android Studiossa on oma Android SDK. Ja jos haluat käyttää sitä, niin joissain tapauksissa voi tapahtua outoja asioita. Esimerkiksi päivitettäessä SDK:ta SDK Managerin kautta, jotkut tiedostot kirjoitettiin vanhaan kansioon, ja ongelmia ilmeni, kun poistin tämän kansion. Todennäköisesti tämä johtui siitä, että rekisteri tallensi avaimen, jonka polku oli vanha kansio. Siksi on järkevää puhdistaa rekisteri. Tätä varten sinun on suoritettava regedit.exe ja etsittävä HKEY_LOCAL_MACHINE\Software\Android SDK Tools 32-bittisille koneille tai HKEY_LOCAL_MACHINE\Software\Wow6432Node\Android SDK Tools 64-bittisille koneille ja poista Android SDK -työkalut. Jos järjestelmäsi rekisterissä ei ole tällaisia ​​avaimia, kaikki on kunnossa.

Jos olet asentanut ympäristömuuttuja ANDROID_SDK_HOME ja haluat sen osoittavan vanha asennus, niin teoriassa tämän ei pitäisi olla ongelma, koska Android Studiota määritettäessä osoitamme sen SDK:n polkuun. Ongelmia saattaa ilmetä, jos jokin Android SDK:n sisältämistä sovelluksista käyttää tätä muuttujaa.

3. Siirrytään nyt Android Studion asentamiseen.
Sinun on ladattava Android Studio järjestelmällesi viralliselta sivulta ja asennettava se. Oletusarvoisesti, jos valitset "Asenna vain minulle", se sijoitetaan \Käyttäjät\ \AppData\Local\Android\android-studio\, muuten laita sisään \Ohjelmatiedostot (x86)\Android\android-studio\. Voit myös valita toisen kansion.

Käynnistä Android Studio asennuksen jälkeen.

Näemme tämän dialogin


Siinä teemme seuraavaa:

Projektin luominen

1. Uusi projekti
Klikkaus Uusi projekti.

Seuraava dialogi tulee näkyviin


Siinä voit määrittää:
  • Projektin nimi (jätin sen oletukseksi: Oma sovellus)
  • Yrityksen verkkotunnus, oletusarvo .example.com, minun tapauksessani markedone.example.com
  • Paketin nimeä voi myös muokata klikkaamalla Muokata oikealla. Oletusarvoisesti se luodaan projektin nimestä ja yrityksen toimialueesta ja näyttää tältä com.example. .<имя проекта в lowercase без пробелов>, я его изменил на com.example.markedone.myapp.
  • Polku, johon projekti tallennetaan. Määritin kansioni kaikenlaisia ​​testiprojekteja varten.
Kun kaikki on syötetty, napsauta Seuraava.
2. Muototekijät
Valitse tässä valintaikkunassa kohdealustat ja sovellusliittymät.

Dialogi näyttää tältä


Tähän jätin kaikki oletukseksi: Puhelin ja tabletti sekä 4.0.3 IceCreamSandwich. Jos API:ta ei ole asennettu joillekin alustoille, näyttöön tulee viesti Not Insatlled. Esimerkiksi, kuten näet kuvakaappauksesta, minulla ei ole asennettuna Google Glassin kirjastoja (tämän voi tehdä SDK Managerin kautta).

Kiinnitä huomiota myös Auta minua valitsemaan, siistejä juttuja

Jos painat Auta minua valitsemaan, silloin tämä mielenkiintoinen dialogi avautuu


Se sisältää tietoja laitteen kattavuudesta valittaessa tiettyä API-versiota. API-versioiden suorakulmiot ovat napsautettavat, ja luettelo niissä käytettävissä olevista toiminnoista näkyy oikealla. Esimerkiksi oletusarvoiselle Ice Cream Sandwichille:



Klikkaus Seuraava.
3. Lisää toiminto

Seuraavassa näytössä meitä pyydetään valitsemaan Activity


En tietenkään voinut jättää väliin koko näytön toimintoa ja valitsin sen. Voit valita toisen toiminnon, mutta tässä tapauksessa Java-lähteet ovat erilaisia, ja sinun on lisättävä natiivi menetelmäkutsu Javasta itse (sissä ei kuitenkaan ole mitään monimutkaista).
Tee valinta, napsauta Seuraava.

Seuraava valintaikkuna tulee näkyviin


Täällä meitä pyydetään määrittämään toiminto.
  • Toiminnan nimi- luokan nimi, jätin sen oletukseksi: Koko näytön toiminta.
  • Asettelun nimi- käyttöliittymäeditorin nimiasettelu jätetään myös oletusarvoksi.
  • Otsikko- FullscreenActivity tarjotaan oletuksena, laitan välilyönnin: Koko näytön toiminta.
Klikkaus Suorittaa loppuun.

Tämän seurauksena hankkeen pitäisi avautua

Rakenna ja käynnistä

1. Rakenna projekti
Aloitamme kokoonpanon valikon kautta: Rakenna-> Tee projekti(Kuvakkeet ja pikanäppäimet on osoitettu valikkokohdille, joten niiden ymmärtäminen ei ole vaikeaa).
Ensimmäisen rakentamiseni aikana sain virheen:

Tämä tapahtui tiedostossa MyApplication/app/build.gradle
Ymmärtääksesi, mitä tapahtuu, vie hiiren osoitin alleviivatun viivan päälle:


Se on yksinkertaista, versio 19 on ilmoitettu tässä, mutta meillä on vain 20 asennettuna, ja projektiasetuksissa määritimme 20 kohteeksi. Vaihdetaanpa numeroa:


Ilmeisesti studio ei ole tyytyväinen tähän ja tarjoaa vielä uudemman version asentamista. Mutta emme tarvitse tätä nyt.

Aloitetaan taas Rakenna-> Tee projekti. Tällä kertaa sain kaiken kasaan. Toivottavasti sinäkin.

2. Virtuaalilaitteen määrittäminen
Jotta voit suorittaa ohjelman emulaattorissa, sinun on määritettävä virtuaalinen laite. Mennään Työkalut->Android->AVD Manager(Tämä, kuten SDK Manager, on Android SDK:n apuohjelma). Tarvitsemme ensimmäisen välilehden, Android virtuaalinen laite, se on oletuksena auki. Oikealta löydät painikkeen Luoda... ja paina sitä.

Näkyviin tulee virtuaalisen laitteen asetusten valintaikkuna.



Valintaikkunan alareunasta näet, minkä virheen teit asennuksen aikana. Esimerkiksi välilyöntejä ei voi kirjoittaa laitteen nimeen, ja jotkin kentät ovat pakollisia. Kun alla ei ole merkintää, kaikki on syötetty oikein. Klikkaus OK.

Laite näkyy luettelossa


Muutama sana Laitemääritykset-välilehdestä


Käytettävissä olevat laitteet on määritetty siinä (ne, jotka näkyvät sitten avattavassa luettelossa Laite kun luot uuden virtuaalisen laitteen). Voit luoda uuden laitteen napsauttamalla painiketta Luo laite... ja täytä seuraava valintaikkuna:



Sulje AVD Manager ja palaa Android Studion pääikkunaan.
3. Suorita emulaattori
Me toteutamme Suorita-> Suorita "sovellus".
Sinun on odotettava, kunnes projekti on rakennettu, jotta se käynnistyy.

Lopuksi laitteen valintaikkuna tulee näkyviin


Tässä ainoa valittavissa oleva vaihtoehto on virtuaalinen laitteemme. Se tarjotaan meille heti, joten napsauta vain OK.

Emulaattori käynnistyy, kestää melko kauan


Voidaan avata Työkalut->Android->Android-laitteen valvonta(Android SDK:n apuohjelma) nähdäksesi emulaattorin lokit. Sen pitäisi automaattisesti poimia virtuaalinen laite ja alkaa välittömästi tulostaa lokeja.

Android-laitteen näyttö


Mutta emulaattorin käynnistämisen jälkeen sovellus ei avautunut minulle ensimmäistä kertaa, minun piti napsauttaa uudelleen Suorita-> Suorita "sovellus".

Hieman muuttunut dialogi ilmestyi

Tässä laite on siirtynyt käynnistettävien listalta jo käynnistettävien listalle. Tämä luettelo sisältää tietysti myös oikeita laitteita.

Sen jälkeen asiat sujuivat hyvin, ja sovellus asennettiin ja käynnistyi melko nopeasti.

Koko näytön tila

Ja jos napautat sovellusta, se näyttää tältä

Tämä ei ole järjestelmän toimintaa; napsautus käsitellään sovelluksessa (FullscreenActivity.java-tiedosto):
// Määritä käyttäjän vuorovaikutus järjestelmän käyttöliittymän näyttämiseksi tai piilottamiseksi manuaalisesti. contentView.setOnClickListener(new View.OnClickListener() ( @Override public void onClick(Näytä näkymä) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ); Käynnistyksen jälkeen Android Studio kehotti minua sammuttamaan Android Device Monitorin, jotta tulos voidaan integroida suoraan IDE:hen.

Tältä integraatio näyttää

4. Käynnistä Debug-tilassa
Suorita-> Debug "sovellus"

Taas tuttu dialogi

Odotamme sovelluksen käynnistymistä ja debuggerin muodostamista. Asetan keskeytyskohdan, kun dummy-painiketta napsautetaan.

Android Studio virheenkorjauksessa


Hieman ärsyttävää on paneelien puute, jossa on kaikenlaisia ​​Step Into, Step Out jne.

Kaikki tämä on Suorita-valikossa

5. Käynnistä 4.0.3
Olet ehkä huomannut projektin rakentamisen ja suorittamisen aikana, että loimme sovelluksen, joka oli yhteensopiva version 4.0.3 kanssa, mutta käytti sitä vain uusimmassa Android-versiossa. Korjaamme sen nyt. Tätä varten sinun on asennettava versio 4.0.3 kautta Työkalut->Android->SDK Manager.

Tarvittavat kohteet on merkitty valintamerkeillä kuvakaappauksessa.


Tämä SDK-alusta, ARM EABI v7a -järjestelmäkuva Ja Intel x86 Atom -järjestelmäkuva. Itse asiassa käytimme ARM-emulaattoria, eikä meidän tarvitse asentaa Inteliä nyt. Asensin sen puhtaasti, koska se on asennettu myös Android L:lle.
Luodaan nyt toinen laite uudelle vanhalle Android-versiolle (tai voit muokata vanhaa).

Uudet laiteasetukset


Tuoda markkinoille ( Suorita-> Suorita "sovellus").

Valitse valintaikkunasta uusi laite, jonka haluat käynnistää


Ja katsotaan miltä se näyttää uusi emulaattori- Ilmeisesti brutaalimpi.

Tuoda markkinoille

Koko näytön tila

Napsautuksen jälkeen

5. Käynnistä laitteella
Ennen kuin aloitamme NDK:n käytön, suoritetaan projekti oikealla laitteella. Ajan sen puhelimellani

Huawei Ascend G300 ja Android 4.0.3


Ensimmäinen asia, joka sinun on tehtävä, on asentaa adb-ohjain. Kaikki on minulle melko yksinkertaista, ohjain sijaitsee suoraan puhelimessa, sinun tarvitsee vain kytkeä johto tietokoneeseen, mennä asennetulle levylle ja suorittaa suoritettava tiedosto, joka asentaa adb-ohjaimen. Muilla laitteilla asiat voivat olla monimutkaisempia. Esimerkiksi Prestigio-tabletille minun piti kerran rekisteröidä myyjätunnus erityiseen tiedostoon (jotta käytettäisiin Googlen vakioohjainta), Samsung tarvitsi omat Kies, HTC:lle oli erillinen ajuri ja niin edelleen. Yleensä sinun on selvitettävä, kuinka laitteesi ohjain asennetaan itse.

Kun ohjain on asennettu, sinun on otettava USB-virheenkorjaus käyttöön laitteessa. Minun on mentävä puhelimellani tehdäkseni tämän Asetukset->Kehittäjille->USB-virheenkorjaus. Mutta eri laitteissa sekä Androidin rakennelmissa ja versioissa tämän valikkokohdan sijainti voi vaihdella.

Nyt puhelimeen tulee Android SDK, ja kehitteillä olevat sovellukset asennetaan. Huaweille tämä ei kuitenkaan ole kaikki: puhelimesta ei tule lokeja, sinun on otettava ne käyttöön.

Kuinka ottaa lokit käyttöön Huaweissa

Soita puhelinnumerona: *#*#2846579#*#*
Huoltovalikko tulee näkyviin.
Mene ProjectMenu->Taustaasetukset->Lokiasetukset
Avata Lokin kytkin ja asenna sinne PÄÄLLÄ.
Avata Lokin tason asetus ja aseta tarvitsemasi kirjaustaso (asetin monisanainen).
Käynnistä puhelimesi uudelleen.


Nyt voit suorittaa sovelluksen laitteellasi: Suorita-> Suorita "sovellus"

Todellinen laite tulee näkyviin laitteen valintaikkunaan


Aloitetaan puhelimessa.

Käynnistä tulos.

Sovellus pystykuvassa:

Sovellus maisemassa:

Android NDK:n asentaminen ja määrittäminen

1. NDK:n asennus
Android SDK, kuten olemme jo havainneet, sisältyy Android Studio -pakkaukseen, mutta NDK ei. Lataa järjestelmällesi sopiva NDK täältä. Pura arkisto pakkauksesta ja laita se johonkin kansioon, esim D:\ndk, jotta tiedosto ndk-build.cmd makaa siinä. Tärkeä: On välttämätöntä, että NDK:n polussa ei ole välilyöntejä.
2. Lisää ANDROID_NDK_HOME-muuttuja
Mennään Ohjauspaneeli\Järjestelmä ja suojaus\Järjestelmä, valitse vasemmalta Järjestelmän lisäasetukset, napsauta avautuvassa valintaikkunassa -painiketta ympäristömuuttujat. Luo muuttuja nimellä ANDROID_NDK_HOME ja merkitys D:\ndk(polku NDK:llesi).

Vaihtoehtoisesti voit määrittää ndk:n polun yleisen muuttujan määrittämisen sijaan paikalliset.ominaisuudet projektistasi (suoraan juurikansiossa: MyApplication\local.properties). Tiedoston sisältö näyttää suunnilleen tältä (kiinnitä huomiota kaksoiskenoviivaan, koska tämä on kriittistä Windowsille):
## Tämän tiedoston luo automaattisesti Android Studio. # Älä muokkaa tätä tiedostoa – MUUTOKSET POISTETAAN! # # Tätä tiedostoa *EI* tulisi tarkistaa Version Control Systemsissä, # koska se sisältää paikalliseen kokoonpanoosi liittyviä tietoja. # # SDK:n sijainti. Tätä käyttää vain Gradle. # Jos haluat muokata versionhallintajärjestelmää, lue # otsikkohuomautus. sdk.dir=C:\\Käyttäjät\\ \\AppData\\Local\\Android\\android-studio\\sdk ndk.dir=D:\\ndk
Älä usko vastuuvapauslauseketta "muutoksesi heitetään pois", tässä tapauksessa se ei pidä paikkaansa. Huomaa, että on suositeltavaa jättää tämä tiedosto pois versionhallinnasta, koska se sisältää vain paikallista tietoa käyttäjälle. Muutoksen vuoksi he eivät valehdelleet meille tästä. No, tämä muutos ei tietenkään vaikuta muihin projekteihinne millään tavalla. Kun se on asennettu ANDROID_NDK_HOME Polkua ei tarvitse määrittää local.propertiesissa.

3. Asenna vaadittu Android-sovellusliittymän versio
Mene NDK\alustat(Minulla on tämä D:\ndk\platforms) ja katso käytettävissä olevien sovellusliittymien enimmäisversiot. Minun tapauksessani maksimiversio on 19. Mutta samaan aikaan meillä on vain versiot 20 ja 15 asennettuna SDK:ssa. Joten siirrymme SDK Manageriin ja lataamme SDK Platform -version 19, muuten mikään ei toimi.

Mitä ladata

4. Määritä gradle toimimaan NDK:n kanssa
Otin tiedot näytteistä, voit ladata ne. Latasin näytteitä versiolle 0.11. Otin ndkSanAngelesin pääesimerkiksi.

Kuinka ajaa ndkSanAngeles

Kun näytteet on ladattu, ne on purettava. Sitten sinun on avattava ndkSanAngeles-projekti. Android Studiossa projekti on kansio, joten sinun on avattava se. Tätä varten suoritamme Tiedosto-> Avaa, tai jos olet Tervetuloa-valintaikkunassa, Avaa projekti. Etsimme ndkSanAngeles-kansiota tiedoston avaamisikkunan kautta.

Projektin avaamisen jälkeen kannattaa katsoa tiedostoa build.gradle. Tässä alkuperäinen:
buildscript ( arkistot ( mavenCentral() ) riippuvuudet ( luokkapolku "com.android.tools.build:gradle:0.11.0" ) ) käytä laajennusta: "android" android ( compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig ( ndk) sanangeles" cFlags "-DANDROID_NDK -DDISABLE_IMPORTGL" ldLibs "GLESv1_CM", "dl", "log" stl "stlport_static" ) // Tämä todellinen sovelluksen versiokoodi. Antamalla itsellemme 1 000 000 arvoa versionCode = 123.debugildb build Types.deb) true productFlavors ( x86 ( ndk ( abiFilter "x86") // tämä on versiokoodin makuosa. // Sen on oltava korkeampi kuin arm yksi, jos laite tukee // molempia, koska x86 on suositeltava. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips" ) versionCode = 1 ) fat ( // fat binary, alin versiokoodi on // viimeinen vaihtoehto versionCode = 0 ) ) // tee versiokohtainen versiokoodi applicationVariants.all ( variantti ->
Ja tässä on muokattu versio, jotta projekti voidaan koota minusta:
buildscript ( arkistot ( mavenCentral() ) riippuvuudet ( luokkapolku "com.android.tools.build:gradle:0.12.+" ) ) käytä laajennusta: "android" android ( compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig ( ndk sanangeles" cFlags "-DANDROID_NDK -DDISABLE_IMPORTGL" ldLibs "GLESv1_CM", "dl", "log" stl "stlport_static" ) // Tämä todellinen sovelluksen versiokoodi. Antamalla itsellemme 1 000 000 arvoa versionCode = 123.debugildb build Types.deb) true productFlavors ( x86 ( ndk ( abiFilter "x86") // tämä on versiokoodin makuosa. // Sen on oltava korkeampi kuin arm yksi, jos laite tukee // molempia, koska x86 on suositeltava. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips" ) versionCode = 1 ) fat ( // fat binary, alin versiokoodi on // viimeinen vaihtoehto versionCode = 0 ) ) // tee versiokohtainen versiokoodi applicationVariants.all ( variantti -> // hanki yksi maku def flavorVersion = variant.productFlavors.get(0).versionCode // aseta yhdistelmäkoodi variant.mergedFlavor.versionCode = flavorVersion * 1000000 + defaultConfig versionCode ) )
Muutokset ovat seuraavat:

  • Tietoja gradle-laajennuksen versiovirheestä ( luokkapolku "com.android.tools.build:gradle:0.11.0") sanotaan, kun yrität rakentaa ja tarjota oikean versionumeron. Minulle se on 0,12.+.
  • compileSdkVersion 19 säilyy, koska se on nykyisen NDK:n enimmäisversio.
  • buildToolsVersion muutettu 20:ksi. Asennettuja versioita voi tarkastella SDK Managerissa ja muita voi asentaa sinne.
Tämän jälkeen ndkSanAngelesin pitäisi koota uudelleen. Ole varovainen ja tarkista asentamasi versiot.

Projektissamme meidän on valittava oikea build.gradle-tiedosto, koska niitä on kaksi. Asia on siinä, että MyApplication on projekti ja sovellus on projektimoduuli (tai aliprojekti), ja niillä on jokaiselle oma build.gradle. Katsotaanpa ensin projektitiedostoa

MyApplication->build.gradle

// Ylätason koontitiedosto, johon voit lisätä kaikille aliprojekteille/moduuleille yhteisiä määritysasetuksia. buildscript ( arkistot ( jcenter() ) riippuvuudet ( luokkapolku "com.android.tools.build:gradle:0.12.+" // HUOMAA: Älä sijoita sovellusriippuvuuksiasi tähän; ne kuuluvat // yksittäisiin moduuliin build.gradle-tiedostoihin ) ) kaikkiprojektit ( arkistot ( jcenter() ) )


Koodin kommenteista käy selväksi, että tarvitsemme moduulitiedoston

MyApplication->app->build.gradle

käytä laajennusta: "com.android.application" android ( käännös getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) ) ) riippuvuudet ( käännä tiedostoTree(hakemisto: "libs", sisältää: ["*.jar"]) // Sinun on asennettava tai päivitettävä Tukivarasto SDK-hallinnan kautta käyttääksesi tätä riippuvuutta //käännä "com.android.support:support-v4:19.+" käännä "com.android.support:support-v4:20.+" )


Määritetään se toimimaan NDK:n kanssa käyttämällä ndkSanAngelesin build.gradlea "luovuttajana".

Ensin vaihdetaan
compileSdkVersion 20
päällä
compileSdkVersion 19
koska NDK on rajoitettu versioon 19.

SISÄÄN defaultConfig lisäämme asetukset ndk ja myös vaihda targetSdkVersion klo 19:
defaultConfig ( applicationId "com.example.markedone.myapp" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk ( moduleName "myapp" cFlags "-DANDROID_NDK" ldLibs "log" stl "stlport")

  • moduulin nimi- moduulin nimi, käytetään *.so-tiedoston nimeämiseen
  • cFlags- C-liput
  • ldLibs- kirjastot, jotka haluat yhdistää alkuperäiseen koodiin
  • stl- STL-kirjastoversio
BuildTypesissä otamme käyttöön JNI-debug-kokoonpanon virheenkorjausta varten:
buildTypes ( julkaisu ( runProguard false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) debug.jniDebugBuild true )
Lisätään nyt tuoteMaut. Tässä osoitamme, mitkä *.so-kirjastot sisällytetään tietyn arkkitehtuurin koontiversioon. Siten armille käännetty *.apk sisältää vain arm-kirjaston version, x86:lle - x86:lle ja niin edelleen. Tämä kappale on kokonaan kopioitu ndkSanAngelesista. Merkitysten selitys versionCode kommenteista: x86:lle asetamme maksimiarvon versionCode, koska jos laite tukee sekä x86:ta että armia, x86-kokoonpano on parempi (ilmeisesti, koska sillä on suurempi versio, se asennetaan), ja minimaalinen versionCode määrätty rasvaa(teoriassa tämän pitäisi olla "paksu" *.apk, joka sisältää kaikki mahdolliset kirjastojen versiot kerralla).
productFlavors ( x86 ( ndk ( abiFilter "x86" ) // tämä on versiokoodin makuosa. // Sen on oltava korkeampi kuin varren yksi laitteissa, jotka tukevat // molempia, koska x86 on suositeltava. versionCode = 3 ) arm ( ndk ( abiFilter "armeabi-v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips" ) versionCode = 1 ) fat ( // rasva binaari, alin versiokoodi on // viimeinen vaihtoehto versionCode = 0 ) )
Merkityksen "kerääminen". versionCode jokaiselle rakennusvaihtoehdolle:
// tee versiokohtainen versiokoodi applicationVariants.all ( variantti -> // hanki yksi maku def flavorVersion = variant.productFlavors.get(0).versionCode // aseta yhdistelmäkoodi variant.mergedFlavor.versionCode = flavorVersion * 1000000 + defaultConfig.versionCode)
Lopuksi viimeinen jakso, riippuvuuksia. Jos muistat, tässä me muutimme käännä "com.android.support:support-v4:19.+" päällä käännä "com.android.support:support-v4:20.+", rakentaa ainoalla meille asennetulla kirjastoversiolla. Nyt sinun on vaihdettava se takaisin 19: ään.
riippuvuudet ( käännä tiedostoTree(hakemisto: "libs", sisältää: ["*.jar"]) // Sinun on asennettava tai päivitettävä tukivarasto SDK-hallinnan kautta, jotta voit käyttää tätä riippuvuutta. käännä "com.android.support:support- v4:19.+" )

Muokatun build.gradle-tiedoston täydellinen luettelo

käytä laajennusta: "com.android.application" android ( käännös -DANDROID_NDK" ldLibs "log" stl "stlport_static" ) ) buildTypes ( julkaisu ( runProguard false proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) debug.jniDebugBu (x6ilndors true) abiFilter "x86" ) // tämä on versiokoodin makuosa // Sen on oltava korkeampi kuin arm yksi molempia // tukevia laitteita varten, koska x86 on parempi versionCode = 3 ) arm ( ndk ( abiFilter "armeabi " -v7a" ) versionCode = 2 ) mips ( ndk ( abiFilter "mips" ) versionCode = 1 ) fat ( // rasvan binaari, alin versiokoodi on // viimeinen vaihtoehto versionCode = 0 ) ) // make per-variantti versiokoodi applicationVariants.all ( variantti -> // hanki yksi maku def flavorVersion = variant.productFlavors.get(0).versionCode // aseta yhdistelmäkoodi variant.mergedFlavor.versionCode = flavorVersion * 1000000 + defaultConfig.versionCode ) sourceSets ( main ( jni.srcDirs = ["src/main/jni", "src/main/jni/"] ) ) ) riippuvuudet ( käännä tiedostoTree(hakemisto: "libs", sisältää: ["*.jar"]) // Sinun on asennettava tai päivitettävä tukivarasto SDK-hallinnan kautta, jotta voit käyttää tätä riippuvuutta. käännä "com.android.support:support-v4:19.+" )

5. Luo jni-kansio
Tallennamme C/C++-tiedostot jni-kansioon. Tätä NDK odottaa meiltä. Meidän on luotava kansio MyApplication/app/src/main. Tämä voidaan tehdä suoraan Android Studiosta ja kahdella tavalla.
Ensinnäkin voit napsauttaa hiiren kakkospainikkeella pääkohtaa ja luoda kansion kautta

Uusi-> Hakemisto


Toiseksi voit käyttää erityistä valikkokohtaa

Uusi->kansio->JNI-kansio

Se käynnistää ohjatun kansion luontitoiminnon




Ensimmäisessä valintaikkunassa valitsemme, mille moduulin osalle jni-kansio luodaan, ja toisessa voimme muuttaa sen sijaintia.

6. Lisää C++-tiedostoja
C++-tiedostoille ei ole ohjattua toimintoa, joten tiedoston luomiseksi napsautamme kansiota hiiren kakkospainikkeella jni ja valita

Uusi->tiedosto


Ensin luodaan otsikkotiedosto myapp.h:
#pragma kerran #sisällytä #ifdef __cplusplus extern "C" ( #endif JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz); #ifdef __cplusplus ) #endif

Kuvaus

  • #pragma kerran - normaalin (#ifndef/#define/#endif) suojauksen sijaan uudelleenkäyttöönottoa vastaan. Nyt useimmat C++-kääntäjät ymmärtävät sanan #pragma Once.
  • #sisältää - sisällytä JNI-otsikko, jotta voit käyttää siellä ilmoitettuja tyyppejä.
  • #ifdef __cplusplus ... #endif - sisällä oleva koodi käännetään vain C++:ssa (mutta ei C:ssä).
  • extern "C" ( ... ) - päästä eroon nimien sekoittumisesta (mikä se on ja miksi, ).
  • JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz); - ilmoitus toiminnosta, jonka toteutamme.
    Katsotaanpa tätä mainosta tarkemmin.
    • JNIEXPORT tarvitaan oikeaan linkitykseen.
    • JNICALL oikeaa soittotapaa varten.
    • jstring- funktion palautustyyppi, tässä tapauksessa Java-merkkijonon kanssa yhteensopiva merkkijono.
    • Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI- funktion nimi, koostuu:
      Java- kieli, joka herättää.
      com_example_markedone_myapp- tämä on sovelluksen tunnus ( com.example.markedone.myapp).
      Koko näytön toiminta on Java-luokan nimi, joka sisältää natiivifunktiota edustavan menetelmän määrityksen.
      merkkijonoJNI- itse asiassa funktion nimi (näin se tulee olemaan Javassa).
    • JNIEnv* env, jclass clazz - vaadittavat parametrit välitetään Javasta.
      JNIEnv* env on osoitin JNI-ympäristöä edustavaan objektiin.
      jclass clazz on luokka, joka omistaa natiivimenetelmän ilmoituksen Javassa. Tässä meidän on tehtävä varaus, että jclass clazz on staattiselle natiiville ( staattinen syntyperäinen) menetelmä. Ei-staattista menetelmää varten sinun on kirjoitettava jobject obj .

Luodaan nyt toteutustiedosto myapp.cpp. Siihen kirjoitamme seuraavan koodin:
#sisältää #sisältää #include "myapp.h" JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz) ( std::string tag("TERVEYS"); std::string_tag_tunniste("Terve__C+INFO,_log__"); .c_str(), "%s", message.c_str()); std::string jniMessage("Hei JNI:stä!" return env->NewStringUTF(jniMessage.c_str());

Kuvaus

  • #sisältää - yhdistä loki, jolle lisäsimme jopa kirjaston ( ldLibs "loki")
  • #include - std::stringille, jota käytämme STL:n olemassaolon tarkistamiseen.
    #include "myapp.h" - sisällytämme otsikkotiedostomme.
    JNIEXPORT jstring JNICALL Java_com_example_markedone_myapp_FullscreenActivity_stringFromJNI(JNIEnv* env, jclass clazz) ( ... ) - toteuta "myapp.h"-sovelluksessa ilmoitettu toiminto.
    std::string tag("TERVEYS"); std::string message("Hei C++:sta!"); - Luo rivejä tulostamista varten lokiin.
    __android_log_print(ANDROID_LOG_INFO, tag.c_str(), "%s", message.c_str()); - tulostus lokiin. Huomaa, että sinun on määritettävä 4 parametria: viestin tyyppi lokissa, tunniste, merkkijonomuoto ja lopuksi itse viesti.
    std::string jniMessage("Hei JNI:ltä!"); - merkkijono, jonka välitämme Javalle.
    return env->NewStringUTF(jniMessage.c_str()); - palauttaa arvon, JNIEnv:llä luodaan jstring C-merkkijonosta. Huomaa, että emme tarvitse konstruktia, kuten (*env)->, koska kirjoitamme C++:lla, emme C:llä.
Luomme nyt toisen tiedoston: stub.cpp ja jätämme sen tyhjäksi. Tosiasia on, että jos jätät vain yhden *.cpp-tiedoston jni-kansioon, ndk-build luo virheen "ei sääntöä kohteen tekemiseksi".
7. Lisää kutsu natiivifunktioon Javasta
Tiedoston avaaminen MyApplication/app/src/main/java/com.example.markedone.myapp.FullscreenActivity. Itse asiassa siinä on Java-laajennus, ja esimerkiksi com, markedone ja myapp ovat kansioita, mutta Android Studio piilottaa tämän.

Tiedoston sisältö

paketti com.example.markedone.myapp; tuonti com.example.markedone.myapp.util.SystemUiHider; tuonti android.annotation.TargetApi; tuonti android.app.Activity; tuonti android.os.Build; tuonti android.os.Bundle; tuonti android.os.Handler; tuonti android.view.MotionEvent; tuonti android.view.View; /** * Esimerkki koko näytön toiminnasta, joka näyttää ja piilottaa järjestelmän käyttöliittymän (eli * tilapalkin ja navigointi-/järjestelmäpalkin) käyttäjän toimiessa. * * @katso SystemUiHider */ public class FullscreenActivity laajentaa toimintaa ( /** * Piilotetaanko järjestelmän käyttöliittymä automaattisesti * (@link #AUTO_HIDE_DELAY_MILLIS) millisekunnin jälkeen. */ yksityinen staattinen lopullinen looginen arvo AUTO_HIDE = tosi; /* * * Jos (@link #AUTO_HIDE) on asetettu, kuinka monta millisekuntia on odotettava käyttäjän vuorovaikutuksen jälkeen ennen järjestelmän käyttöliittymän piilottamista */ yksityinen staattinen lopullinen int AUTO_HIDE_DELAY_MILLIS = 3000 Näkyvyys vuorovaikutuksen yhteydessä */ yksityinen staattinen looginen arvo = true (@link SystemUiHider.FLAG_NAVIGATION; ** * Tämän toiminnon (@link SystemUiHider) ilmentymä */ yksityinen SystemUiHider mSystemUiHider; @Override suojattu void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.fullscreen .activity); lopullinen View controlsView = findViewById(R.id.fullscreen_content_controls); lopullinen Näytä sisältöView = findViewById(R.id.fullscreen_content); // Määritä SystemUiHiderin esiintymä hallitsemaan // tämän toiminnon järjestelmän käyttöliittymää. mSystemUiHider = SystemUiHider.getInstance(this, contentView, HIDER_FLAGS); mSystemUiHider.setup(); mSystemUiHider .setOnVisibilityChangeListener(new SystemUiHider.OnVisibilityChangeListener() ( // Välimuistissa olevat arvot. int mControlsHeight; int mShortAnimTime; @Override @TargetApi(Build.VERSION_CODES.HONEY)B void_MR2 ild.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) ( // Jos ViewPropertyAnimator API on saatavilla // (Honeycomb MR2 ja uudemmat), käytä sitä // animoimaan // näytön alareunassa olevat käyttöliittymän säätimet. if (mControlsHeight == 0) ( mControlsHeight = controlsView.getHeight(); ) if (mShortAnimTime == 0) ( mShortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); ) controlsView.animate() .translationY(visible) 0: mControlsHeight).setDuration(mShortAnimTime); ) else ( // Jos ViewPropertyAnimator API:t eivät ole // käytettävissä, näytä tai piilota layout-käyttöliittymä // controls. controlsView.setVisibility(visible ? View.VISIBLE: View.GONE); ) if (näkyvä && AUTO_PILTO ) ( // Ajoita hide(). delayedHide(AUTO_HIDE_DELAY_MILLIS); ) ) // Määritä käyttäjän toiminta näyttääksesi tai piilottaaksesi järjestelmän käyttöliittymän manuaalisestiView.setOnClickListener(new View.OnClickListener() ( @Override public void onClick. (Näytä näkymä) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ) // Kun olet vuorovaikutuksessa käyttöliittymäohjaimien kanssa, lykkää ajoitettuja hide() // -toimintoja estääksesi häiritsevän käyttäytymisen säätimien poistuminen // vuorovaikutuksessa käyttöliittymän kanssa findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener ) @Override suojattu void onPostCreate(Bundle savedInstanceState) ( super.onPostCreate(savedInstance)te; pian sen jälkeen, kun aktiviteetti on // luotu, lyhyesti vihjeeksi käyttäjälle, että käyttöliittymäohjaimet // ovat käytettävissä. viivästettyPiilota(100); ) /** * Kosketa kuuntelijaa käyttääksesi asettelun sisäisiä käyttöliittymäsäätimiä, jotka viivästyttävät * järjestelmän käyttöliittymän piilottamista. Tämä estää säätimien häiritsevän toiminnan katoamisen * ollessaan vuorovaikutuksessa toimintokäyttöliittymän kanssa. */ View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayedHide(AUTO_HIDE_DELAY_MILLIS); ) return false; ) ); Käsittelijä mHideHandler = uusi Käsittelijä(); Suoritettava mHideRunnable = new Runnable() ( @Override public void run() ( mSystemUiHider.hide(); ) ); /** * Ajoittaa kutsun hide() millisekunteissa peruuttaa kaikki * aiemmin ajoitetut puhelut. */ yksityinen void delayedPiilota(int viiveMillis) ( mPiilotaHandler.removeCallbacks(mHideRunnable); mHideHandler.postDelayed(mHideRunnable, delayMillis); ) )


Lisätään seuraava koodi FullscreenActivity-luokkaan:
staattinen ( System.loadLibrary("myapp"); ) yksityinen staattinen natiivi String stringFromJNI(); Täällä kirjasto ladataan ensin ja sitten menetelmä ilmoitetaan merkkijonoJNI, joka vastaa toimintoamme C++:ssa. Huomaa, että se on ilmoitettu staattiseksi (tämä vaikuttaa siihen, mikä (jclass tai jobject) on C++-funktion toinen parametri) ja natiivi. Natiivimenetelmää ei tarvitse ottaa käyttöön, olemme jo tehneet tämän C++:ssa, ja JNI hoitaa loput puolestamme.

Nyt voimme yleensä jo kutsua toimintoamme. Jos sinä, kuten minä, valitsit FullscreenActivityn, meillä on Dummy Button, joka ei käytännössä tee mitään. Ja meillä on jopa jo kosketuskuuntelija, vaikkakaan ei paras (sitä kutsutaan monta kertaa sormen ollessa näytöllä), mutta käytämme sitä, jotta emme tuottaisi tarpeetonta koodia.

Lisätään ensin tuontiluetteloon:
tuonti android.widget.Button;
jotta voit työskennellä normaalisti painikkeella.

Etsitään seuraava koodi:
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayedHide(AUTO_HIDE_DELAY_MILLIS); ) return false; ) );
ja lisää muutama rivi ennen return false .
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayedHide(AUTO_HIDE_DELAY_MILLIS); ) viimeinen merkkijono-painike =(); lopullinen painikeJNI =(); )findViewById(R.id.dummy_button); lopullinen merkkijono todellinenText = button.getText().toString(); (viesti);

Lisätyn koodin kuvaus

  • viimeinen merkkijonoviesti = stringFromJNI(); - saamme merkkijonon C++:sta. Alkuperäisen menetelmän kutsuminen on siitä, mistä kaikki alkoi.
  • final Button button = (Button)findViewById(R.id.dummy_button); - Etsi painikeobjekti.
  • lopullinen merkkijono todellinenText = button.getText().toString(); - vedä esiin nykyinen painikkeen teksti.
  • if(message.equals(actualText)) - vertaa C++:sta saatua merkkijonoa painikkeen tekstiin.
    • button.setText("Dummy Button"); - jos ne ovat samat, muuta painikkeen teksti Dummy Buttoniksi.
    • button.setText(viesti); - jos ne eroavat, niin muutamme ne tekstiksi, joka on saatu C++:sta.

Muokatun luokan täydellinen luokkaluettelo

paketti com.example.markedone.myapp; tuonti com.example.markedone.myapp.util.SystemUiHider; tuonti android.annotation.TargetApi; tuonti android.app.Activity; tuonti android.os.Build; tuonti android.os.Bundle; tuonti android.os.Handler; tuonti android.view.MotionEvent; tuonti android.view.View; tuonti android.widget.Button; /** * Esimerkki koko näytön toiminnasta, joka näyttää ja piilottaa järjestelmän käyttöliittymän (eli * tilapalkin ja navigointi-/järjestelmäpalkin) käyttäjän toimiessa. * * @katso SystemUiHider */ public class FullscreenActivity laajentaa toimintaa ( staattinen ( System.loadLibrary("myapp"); ) yksityinen staattinen natiivi String stringFromJNI(); /** * Piilotetaanko järjestelmän käyttöliittymä automaattisesti * jälkeen (@link #AUTO_HIDE_DELAY_MILLIS) millisekuntia */ yksityinen staattinen lopullinen looginen arvo AUTO_HIDE = tosi /** * Jos (@link #AUTO_HIDE) on asetettu, kuinka monta millisekuntia on odotettava ennen järjestelmän käyttöliittymän piilottamista */ yksityinen; static final int AUTO_HIDE_DELAY_MILLIS = 3000 * Jos tämä on asetettu, näyttää järjestelmän käyttöliittymän näkyvyyden vuorovaikutuksen yhteydessä */ yksityinen staattinen lopullinen looginen arvo TOGGLE_ON_CLICK = true (@link SystemUiHider#getInstance) */ yksityinen static final int HIDER_FLAGS = SystemUiHider.FLAG_HIDE_NAVIGATION ); setContentView(R.layout.activity_fullscreen); lopullinen View controlsView = findViewById(R.id.fullscreen_content_controls); lopullinen Näytä sisältöView = findViewById(R.id.fullscreen_content); // Määritä SystemUiHiderin esiintymä hallitsemaan // tämän toiminnon järjestelmän käyttöliittymää. mSystemUiHider = SystemUiHider.getInstance(this, contentView, HIDER_FLAGS); mSystemUiHider.setup(); mSystemUiHider .setOnVisibilityChangeListener(new SystemUiHider.OnVisibilityChangeListener() ( // Välimuistissa olevat arvot. int mControlsHeight; int mShortAnimTime; @Override @TargetApi(Build.VERSION_CODES.HONEY)B void_MR2 ild.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) ( // Jos ViewPropertyAnimator API on saatavilla // (Honeycomb MR2 ja uudemmat), käytä sitä // animoimaan // näytön alareunassa olevat käyttöliittymän säätimet. if (mControlsHeight == 0) ( mControlsHeight = controlsView.getHeight(); ) if (mShortAnimTime == 0) ( mShortAnimTime = getResources().getInteger(android. R.integer.config_shortAnimTime); ) controlsView.animate() .translationY(näkyvä ? 0: mControlsHeight) .setDuration(mShortAnimTime); ) else ( // Jos ViewPropertyAnimator API:t eivät ole // käytettävissä, näytä tai piilota layout-käyttöliittymä // controls. controlsView.setVisibility(visible ? View.VISIBLE: View.GONE); ) if (näkyvä && AUTO_PILTO ) ( // Ajoita hide(). delayedHide(AUTO_HIDE_DELAY_MILLIS); ) ) // Määritä käyttäjän toiminta näyttääksesi tai piilottaaksesi järjestelmän käyttöliittymän manuaalisestiView.setOnClickListener(new View.OnClickListener() ( @Override public void onClick. (Näytä näkymä) ( if (TOGGLE_ON_CLICK) ( mSystemUiHider.toggle(); ) else ( mSystemUiHider.show(); ) ) ) // Kun olet vuorovaikutuksessa käyttöliittymäohjaimien kanssa, lykkää ajoitettuja hide() // -toimintoja estääksesi häiritsevän käyttäytymisen säätimien poistuminen // vuorovaikutuksessa käyttöliittymän kanssa findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener ) @Override suojattu void onPostCreate(Bundle savedInstanceState) ( super.onPostCreate(savedInstance)te; pian sen jälkeen, kun aktiviteetti on // luotu, lyhyesti vihjeeksi käyttäjälle, että käyttöliittymäohjaimet // ovat käytettävissä. viivästettyPiilota(100); ) /** * Kosketa kuuntelijaa käyttääksesi asettelun sisäisiä käyttöliittymäsäätimiä, jotka viivästyttävät * järjestelmän käyttöliittymän piilottamista. Tämä estää säätimien häiritsevän toiminnan katoamisen * ollessaan vuorovaikutuksessa toimintokäyttöliittymän kanssa. */ View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() ( @Override public boolean onTouch(View view, MotionEvent motionEvent) ( if (AUTO_HIDE) ( delayedHide(AUTO_HIDE_DELAY_MILLIS); ) lopullinen merkkijonopainike = stringFromtonJNI(); (Button)findViewById(R.id.dummy_button); lopullinen merkkijono tosiasiallinenText().toString(); if(message.equals(actualText)) ( button.setText("Dummy Button"); .setText(message); return false; Käsittelijä mHideHandler = uusi Käsittelijä(); Suoritettava mHideRunnable = new Runnable() ( @Override public void run() ( mSystemUiHider.hide(); ) ); /** * Ajoittaa kutsun hide() millisekunteissa peruuttaa kaikki * aiemmin ajoitetut puhelut. */ yksityinen void viivästynytPiilota(int viiveMillis) ( mPiilotaHandler.removeCallbacks(mHideRunnable); mHideHandler.postDelayed(mHideRunnable, delayMillis); ) )

17. Kokoamme ja käynnistämme projektin
Ensimmäinen rakennus -> Tee projekti. Tässä vaiheessa Java-osa kootaan.
Sitten Suorita-> Suorita "sovellus". Ja täällä, ennen sovelluksen käynnistymistä, C++-osa kootaan. Jos siinä on virheitä, siitä tulee viesti. Jos virheitä ei ole, näyttöön tulee tavallinen laitevalintaikkuna, ja sovellus käynnistyy napsautettuaan OK.

Työskentele oikealla laitteella

Viestin lähettäminen lokiin

Johtopäätös

Kaiken kaikkiaan pidin Android Studiosta. Android SDK:n integrointi on tehty melko tiukasti, joskus unohdat jopa, että nämä ovat erillisiä ohjelmia, jotka käynnistetään. Siellä on kaikenlaisia ​​mielenkiintoisia herkkuja, kuten Auta minua valitsemaan. Pidin uudesta rakennusjärjestelmästä - Gradle - mutta siinä on myös haittapuoli: siitä on hyvin vähän tietoa.

On myös selvää, että NDK:n tuki on edelleen kosteaa, mutta liikettä tähän suuntaan on. Toivon todella, että ne tarjoavat lopulta täyden tuen C++:n kehitykselle.

P.S. C++-koodin virheenkorjausta ei ole vielä löydetty.

Tunnisteet:

  • android studio
  • asteikko
  • Android ndk
  • Android
Lisää tageja

Hei kaikki. Aloimme hiljattain tutkia ympäristöä Androidin kehitys sovelluksia ja yritämme määrittää ja luoda ensimmäisen sovelluksemme, joka toimii Android älypuhelin tai tablettia. Olemme jo kirjoittaneet käyttäjille useita aiheita, joista ensimmäinen oli "", toisessa aiheessa kirjoitimme aiheesta "", ja kuvauksen kolmannessa osassa tuotettiin " ". Tänään luomme uusi projekti ja luo uusi emulaattori, jolla testaamme sovellustamme. Suorituksen aikana tallennamme kaiken puolestasi ja lisäämme kuvia Yksityiskohtainen kuvaus. Jos teen jotain väärin tai jotain muuta, korjaa minut alla olevissa kommenteissa.

Juosta Android-sovellus Studio ja valitse eniten huippupiste nimellä "Aloita uusi Android Studio -projekti" ja odota, että seuraava ikkuna tulee näkyviin. Edessäsi pitäisi avautua uusi valintaikkuna, jossa sinun on annettava sovelluksellesi nimi ja ilmoitettava verkkosivustosi. Jos sivustoa ei ole, voit ilmoittaa minkä tahansa muun haluamasi. Miksi Google tekee tämän, en voi tietää, mutta se on tehtävä.

Kun olet kirjoittanut työllesi nimen ja määrittänyt sivuston, alareunassa näet sivustosi ja sovelluksen nimen peilikuva. Viimeinen kenttä näyttää polun työsi asentamiseen tai tallentamiseen. Napsauta "Seuraava" -painiketta ja sinut ohjataan automaattisesti uudelle sivulle, jossa sinun on valittava Android-versio. Kyllä, juuri näin teimme ohjelman asettamisen toisessa osassa. Sinun on valittava Android, jonka versiot ovat 4.0 ja 4.4. Koska suuri määrä ihmiset käyttävät tällaisia ​​laitteita. Jos näytät laitteita, joissa on Android 5.0 ja 6, muut käyttäjät eivät voi käyttää sovellustasi yhteensopimattomuuden vuoksi. Valitse laite ja napsauta Seuraava-painiketta.

Seuraava valintaikkuna näyttää jo luettelon valmiita malleja. Valitsen Blank Activity -mallin; toiseen ei kannata edes koskea heti alussa, koska sinun on käsiteltävä alkeellisia. Kun opimme perusasiat, voimme tehdä jotain muuta. Valitse malli ja napsauta Seuraava.

Yllä olevassa ikkunassa jätän kaiken oletukseksi enkä muuta mitään, napsautan vain Valmis-painiketta. Tämän jälkeen ohjelma Android Studio alkaa automaattisesti luoda sovellusta. Sinun on annettava sille jonkin aikaa tämän projektin luomiseen.

Kehitysympäristö. käynnistetty ja valmiina seuraava työ hänen kanssaan.

Jotta voit aloittaa työskentelyn ohjelmassa, sinun on luotava . Haluan ilmoittaa, että ohjelmaan sisäänrakennetun emulaattorin kanssa työskentely kuluttaa paljon energiaa. Tämä tarkoittaa, että et varmasti pysty työskentelemään useiden ohjelmien kanssa samanaikaisesti. Mahdolliset jäätymiset ja pitkä lataus, mutta ei syytä huoleen. Aloitetaan nyt emulaattorin luominen.

Ohjelman yläosassa luotu erittäin kätevä navigointi, kaikki on kaunista ja mukavaa. Avaa Työkalut-välilehti, joka sijaitsee ohjelman yläosassa, siirry Androidiin ja valitse AVD Maneger.

Edessäsi pitäisi avautua uusi valintaikkuna, joka sisältää luettelon käytettävissä olevista emulaattoreista. Tämä luettelo ei välttämättä sisällä kaikkea. Luo uusi emulaattori napsauttamalla "Luo virtuaalilaite" -painiketta. Tämän jälkeen eteesi ilmestyy uusi sivu.

Päällä uusi sivu, sinulle on toimitettu luettelo saatavilla olevat laitteet, sinun ei pitäisi valita laitetta, jolla on korkea näytön resoluutio, koska sen lataus kaksinkertaistuu, joudut odottamaan paljon aikaa ja se ei ole kätevää työskennellä. Joten valitsen Nexus One -laitteen ja sen resoluutio on 480 x 800.

Napsauta sen jälkeen Seuraava-painiketta. sen jälkeen sinun on valittava Android-versio, älä uusin versio Android. Tämä hidastaa emulaattorisi latausnopeutta, eikä se välttämättä käynnisty ollenkaan. Valitsen 4.2 kermavoileivän. ja paina edelleen. Emulaattorin luominen kestää jonkin aikaa, minun tapauksessani se kesti 10 minuuttia.

Emulaattorimme on nyt valmis, katsotaanpa sitä. Voit tehdä tämän siirtymällä emulaattoreiden osioon. Jos unohdit missä se on, mene ylös ja katso ohjeita. Valitse avautuvasta ikkunasta luomasi laite ja napsauta näytön oikealla puolella olevaa vihreää nuolta.

Napsauta ja odota, että emulaattorisi latautuu, tämä on erittäin pitkä prosessi, älä koske mihinkään, odota vain sen ilmestymistä. Kun emulaattori tulee näkyviin, se alkaa ladata Android-järjestelmät. Kaikki on yhtä tarkkaa kuin puhelimessa tai tarkemmin ladattaessa. Mitä pitäisi tapahtua? Sen pitäisi avautua ennen sinua lisäikkuna kuvan kanssa kännykkä.

Tämän matkapuhelimen näytönsäästäjässä näemme kirjoitus android. Tämä tarkoittaa, että järjestelmä latautuu, odota työpöydän näyttävän kuin älypuhelimellasi. Tämä kestää myös jonkin aikaa, minulla kesti noin 7 minuuttia, ensimmäinen käynnistys kesti noin 15 minuuttia. Älä panikoi, odota ja kaikki järjestyy puolestasi.

Työskentelen tällä älypuhelimella tarvittavat toiminnot ja painikkeet, tarkistin. Voit tarkistaa asian myös selaamalla uutta älypuhelintasi. Tämä päättää oppituntimme, kiitos huomiosta. Jos sinulla on kysyttävää tai sinulla on jotain lisättävää, odotamme kommenttejasi alla.

Android - ilmainen käyttöjärjestelmä, joka perustuu Linuxiin Java-ohjelmointiliittymällä.

Jos sinulla on halu kehittää sovelluksia alla oleville puhelimille Android-ohjaus, sinun on valmisteltava ja asennettava huolellisesti kaikki työhön tarvittavat työkalut.

Android Studion asentaminen

Artikkeleita muokataan usein, koska jotkut asiat vanhenevat nopeasti. Mutta en voi seurata kaikkea, joten sinun on selvitettävä asiat itse, jos kohtaat eroja.

On tärkeää ymmärtää, että itse sovellus on kirjoitettu Java-kielellä (ja nyt myös Kotlinilla) ja kehitysympäristö valitaan makusi mukaan. Se, mitä voidaan tehdä Android Studiossa (tai sen isoveljessä IntelliJ IDEAssa), voidaan tehdä Eclipsessä ja muissa muokkausohjelmissa. Vaikka vuodesta 2016 lähtien virallinen tuki Pimennys on pysähtynyt.

Voit ladata studion asennuspaketin sivulta https://developer.android.com/studio/index.html

Itse asennuksen ei pitäisi aiheuttaa ongelmia. Asennuspaketti sisältää vähimmäisvaatimus. Joskus sinun on käynnistettävä Android SDK Manager ja tarkistettava uusia SDK-versioita valikon kautta Työkalut | Android | SDK Manager:

Ajan myötä selvität itse, mitä sinun on asennettava ja mikä ei ole välttämätöntä. Hyväksy ensin ehdot, jotka johtaja tarjoaa sinulle oletuksena.

Bulgarialainen käyttäjä kirjoitti, että Win64 vaatii järjestelmänvalvojan oikeudet asennuksen tai päivityksen yhteydessä. Pitää mielessä. minulla on päällä puhdas järjestelmä ei kysynyt mitään.

Studioversiossa 2.3 (ehkä aikaisemmassa) on asennettu OpenJDK-paketti, joka on vaihtoehto Oraclen JDK:lle. Studion asetuksissa on huomautus, että OpenJDK on suositeltava vaihtoehto, vaikka voit määrittää polun vakio-JDK: hen. Joka tapauksessa sinulla on Java 8 riippumatta siitä, minkä vaihtoehdon valitset.

Emulaattorien luominen

Sovellusten virheenkorjaukseen käytämme puhelinemulaattoria - virtuaalikonetta, jolla sovelluksemme toimii. Voit myös käyttää oikeaa laitetta.

Nyt asennuksen yhteydessä studio luo yhden laitteen emulaattorille. Jos näin ei ole, voit aina asentaa manuaalisesti. Voit myös lisätä muita laitteita alle eri versioita Android, näytön resoluutiot jne.

Voit luoda puhelinemulaattorin valitsemalla valikosta Työkalut | Android | AVD Manager. Kun käynnistät sen ensimmäisen kerran, ohjatun toiminnon valintaikkuna tulee näkyviin.

painaa nappia Luo virtuaalinen laite ja uudessa ikkunassa näemme joukon mahdollisia emulaattoreita, mukaan lukien kellot. Lataa tarvittavat emulaattorit. Ensinnäkin yksi emulaattori on varsin sopiva.

Kirjoita mikä tahansa ystävällinen nimi, esimerkiksi Android4. Valita vaadittava versio Android, näytön koko jne.

Tarvittaessa voit luoda emulaattoreita jokaiselle käyttöjärjestelmäversiolle ja tarkistaa ohjelman toimivuuden. Loput asetukset voidaan jättää ennalleen. Voit aina palata asetuksiin ja muokata niitä uudelleen. Usein on suositeltavaa käyttää vaihtoehtoa Käytä isännän GPU:ta hyödyntämään mahdollisuuksia GPU. Tämä lisää emulaattorin nopeutta. painaa nappia OK.

Lisätyt emulaattorit tallennetaan emulaattorien hallintaan.

Jos olet luonut useita emulaattoreita, valitse tarvitsemasi ja käynnistä emulaattori painamalla vihreän kolmion painiketta. Kynäkuvakkeen avulla voit muokata asetuksia. Mutta yleensä emulaattoria ei käynnistetä erikseen. Kun käynnistät sovelluksen, studio itse tarjoaa emulaattorin käynnistämistä.

muista se virtuaalikoneita oletusarvoisesti ne tallennetaan käyttäjän kansioon, ja kansion polut eivät saa sisältää venäläisiä merkkejä ongelmien välttämiseksi.

Jos joudut edelleen tähän ansaan, annan linkin muuttaaksesi käyttäjäkansion englanniksi: http://www.cherneenet.ru/lokalnaj_zapis.html (kiitos lukija Jevgeni Stepanoville vinkistä). Voit myös muokata ini-tiedostoa ja määrittää polun virtuaalinen laite siten, että polulla ei ole venäläisiä kirjaimia (siis myös *.avd-tiedosto itse on siirrettävä toiseen paikkaan).

Tietokoneesi tehosta riippuen saatat joutua odottamaan hetken, ennen kuin emulaattori latautuu ensin. Intel-emulaattori latautuu paljon nopeammin. Voit myös käyttää oikea puhelin. yleensä käytän vanha puhelin ja emulaattori Androidin uusille versioille.

Testaus oikealla laitteella

On suositeltavaa testata sovelluksen lopullinen versio oikealla laitteella. Android 4.4:stä alkaen sinun on aktivoitava kehittäjätila laitteessasi (tabletti, puhelin, kello). Voit tehdä tämän siirtymällä kohtaan Asetukset, avaamalla "Tietoja puhelimesta" -sivun ja napsauttamalla seitsemän kertaa riviä, jolla on koontinumero. Rakennusnumero. Tämän jälkeen se näkyy asetuksissa uusi kohde Kehittäjille tai jotain vastaavaa, jos valmistaja käyttää omaa kuorta.

Kun avaat kehittäjäsivun, sinun on otettava USB-virheenkorjaus käyttöön. Otan mukaan myös vaihtoehdon Älä sammuta näyttöä. Jotkin laitteet vaativat erillisen ohjaimen asentamisen, etsi tietoja valmistajan verkkosivustolta.

Työskentely terminaalitilassa

Studiossa voit myös suorittaa komentorivikomentoja erillinen ikkuna. Mukavuuden vuoksi sinun tulee mukauttaa järjestelmää hieman itsellesi.

Minulla on lokalisoimaton asennettuna Windows-versio, joten osa pisteistä annetaan englanniksi.

Windows 7/8:lle auki Ohjauspaneeli | Järjestelmä, painaa nappia Kehittynyt järjestelmä asetukset. Napsauta painiketta uudessa ikkunassa ympäristömuuttujat.

Etsi muuttuja Polku listalla Järjestelmän muuttujat

Napsauta painiketta Muokata muuttaaksesi muuttujaa. Lisää puolipiste rivin loppuun ja määritä sitten kansion polut alusta-työkalut Ja työkaluja, jotka sisältyvät SDK:han. Minun tapauksessani se meni näin:

;D:\Android\SDK\platform-tools;D:\Android\SDK\työkalut

Sulje kaikki ikkunat (parempi käynnistää uudelleen). Tarkista, toimiiko kaikki oikein. Juosta komentorivi ja kirjoita komento:

Kaiku %path%

Sinun pitäisi nähdä rivi, jossa luetellaan kaikki muuttujan sisältämät polut Polku, mukaan lukien sinun.

Kirjoita seuraavaa tarkistusta varten komento:

Näkyviin tulee luettelo komentoparametreista.

Kokeile myös komentoa:

SDK Manager -ikkuna avautuu.

Jos kirjoitit jotain väärin, komentoja ei tunnisteta ja sinun on korjattava polun kirjoittamisen virhe.

Tehdään nyt nämä toiminnot itse studiossa. Käynnistä studio ja avaa projekti (katso seuraava oppitunti). Tilapalkin alaosassa on välilehti. Vaihda siihen. Kirjoita pääteikkunaan jompikumpi kahdesta edellisestä komennosta.

Dokumentointi

Uusin dokumentaatio löytyy aina osoitteesta developer.android.com. Jos sinulla on ongelmia Internetin kanssa, niin alikansiossa /docs kansiossasi asennettu Android SDK, löydät sen paikallisen kopion (jos et kieltäytynyt asentamasta sitä).

Kissan asennus

Tämä kohta ei ole pakollinen, mutta kuten käytäntö osoittaa, kissan avulla voit saavuttaa nopeita tuloksia Androidin oppiminen. Voit noutaa kissan kadulta, adoptoida sen tarhasta tai ostaa sen ilmoituksen kautta. Kaikki sopivat - punainen, raidallinen, musta. Kissa tulee pestä, ruokkia ja sijoittaa lähelle. Karmasi kasvaa tällä hetkellä ja materiaalin hallintaprosessi sujuu nopeammin.

Kehittämisen valmistelut on saatu päätökseen. Nyt seuraava vaihe on ensimmäisen sovelluksen luominen.

Istu alas ja kiinnitä turvavyöt – jännittävä matka Android-sovelluskehityksen maailmaan odottaa meitä.