Android sovelluskehitys

Mitä on Android sovelluskehitys ja mitä tekniikoita siihen vaaditaan?

Kirjoittanut Jani Tarkiainen 17. Maaliskuu, 2015

Mikä on Android?

Android on käyttäjämäärältään suurin mobiilikäyttöjärjestelmä ja sitä kehittää ja ylläpitää Google sekä Android Open Source yhteisö, tosin Googlen vaikutusvaltaisuuden vuoksi, open source yhteisön vaikutusmahdollisuudet ovat Googlen rinnalla hyvin rajalliset. Käyttöjärjestelmän ydin perustuu linuxin kerneliin ja käyttöjärjestelmää itsessään pidetään pääosin vapaan lähdekoodin käyttöjärjestelmänä. Juuri vapautensa vuoksi monet laitevalmistajat ovat päätyneet suosimaan Android alustaa älypuhelimien ja tablettiensa käyttöjärjestelmänä.

Laitteiston monimuotoisuus haasteena

Laitevalmistajien suuri määrä tuo käyttöjärjestelmälle lisää käyttäjiä, mutta samalla vaikeuttaa sovelluskehitystä. Helpoiten huomattava eroavaisuus Android laitteissa on näytön koko ja luultavasti seuraavaksi tulee käyttöjärjestelmän versio. Monesti laitteiden suuri monipuolisuus asettaa kehittäjän päättämään uusimpien toimintojen käyttämisen ja suuren jakelun välillä. Uusimmilla toiminnoilla tarkoitan tässä parempia ohjelmistokirjastoja, jotka helpottavat ohjelmoijan työtä. Samat toiminnallisuudet ovat mahdollista toteuttaa kaikille käyttöjärjestelmän versioille, mutta vanhempien käyttöjärjestelmä versioiden tukeminen saattaa lisätä työmäärää.

Android käyttöjärjestelmien osuudet kuvaaja Käyttöjärjestelmä versioiden jakauma

Tässä muita mahdollisia eroavaisuuksia (Lista ei ole kattava, ainoastaan esimerkki):

  • Muistikorttipaikka
  • SIM-korttipaikka
  • Etukamera
  • Takakamera
  • NFC lukija
  • Sisäänrakennettu askelmittaripiiri

Tarvittavat työkalut

Android SDK (Software Development Kit) on työkalu natiiviin Android ohjelmistokehitykseen Java-ohjelmointikielellä. SDK sisältää kaikki Sovelluksen ohjelmointiin ja debuggaukseen tarvittavat kirjastot, mukaan lukien käyttöliittymäohjelmointiin tarvittavat sovelluskehitys kirjastot. SDK:lle on vaihtoehtona myös Android NDK (Native Development Kit), joka käyttää C++-ohjelmointikieltä. SDK:n käyttö on NDK:ta yleisempää ja SDK:n käyttöön löytyy huomattavasti enemmän ohjeita.

Java

Android sovelluskehitys toteutetaan käyttäen Java-ohjelmointikieltä. Java kielellä kirjoitetaan sovelluksen tarvitsema logiikka ja toiminnallisuudet.

Java ohjelmointikieli on olio-ohjelmointiin perustuva ohjelmointikieli ja sen kehittäminen aloitettiin vuonna 1991, ensimmäisen version julkaisi Sun Microsystems vuonna 1995. Java kieli lupasi tuolloin "Kirjoita kerran ja aja missä vaan", mikä auttoi Javaa saamaan sen suuren suosion. Java on nykyään yksi maailman suosituimpia ohjelmointikieliä.

Toisin kuin monissa muissa ohjelmointikielissä Javassa lähdekoodia ei ajeta suoraan binääriksi eli ajettavaksi konekieleksi, vaan virtuaalikoneessa suoritettavaksi tavukoodiksi. Tästä johtuen Java on tietoturvan näkökulmasta hieman turvallisempi kuin muut ohjelmointikielet, mutta taas suorituskyvyltään hieman hitaampi.

Huom: Java ohjelmointikielellä ja Javascriptillä ei ole muuta yhteistä kuin nimi. Toiminnaltaan kielet ovat hyvin etäällä toisistaan.

XML

XML-merkintäkieli on käytössä Android sovelluskehityksessä käyttöliittymän kuvausta varten. XML on hyvä tekniikka käyttöliittymän kuvaukseen ennen sovelluksen ajoa. Android studio kehitysympäristö osaa myös näyttämään XML tiedoston pohjalta esikatselun miltä sovellus tulee näyttämään.

Google Play Services

Google Play Services on Googlen tarjoama lisäkirjasto Android sovelluskehitykseen. Jokainen sovellus ei tarvitse kyseistä kirjastoa, mutta monille sovelluksille se on tärkeä, ellei jopa välttämätön lisä. Play services kirjasto pitää sisällään mm. uudet paikkatieto-, kartta-, sovellusten sisäinen maksu- sekä googlen AdMobs mainosrajapinnan. Lisäksi play services kirjasto tarvitaan palvelimelta tuleviin ilmoituksiin.

Kirjasto on hyvin dokumentoitu ja sen käyttöön löytyy paljon ohjeita, niin Googlen omia ohjeita, kuin kolmannen osapuolen toteuttamia esimerkkejä. Ainoana miinuksena itse koen Play Services kirjastossa sen sulkeutuneisuuden, kirjasto on kokonaan suljettua lähdekoodia, eikä ohjelmoijilla ole mahdollista päästä sitä tarkemmin tutkimaan.

Android sovelluksen julkaiseminen

Yleisin paikka Android sovellusten julkaisemiselle on Googlen tarjoama Play -kauppa, mutta myös muita palveluita löytyy, kuten Samsungin toteuttama Samsungapps ja venäläisen hakukoneyhtiö Yandexin sovelluskauppa. Googlen Play kauppaan julkaiseminen on yllättävän helppoa ja halpaa. Sovelluskehittäjä tarvitsee Googlen sovelluskehittäjä tunnukset. Sovelluskehittäjä tunnusten luominen maksaa 25$, maksulla Google pyrkii minimoimaan "roskasovellusten" julkaisemista sovelluskaupassaan.

Tunnusten luomisen jälkeen kehittäjä voi ladata sovelluksen Play -kauppaan. Sovelluksen voi hyvin ladata sovelluskauppaan, vaikka sovellus ei vielä olisikaan valmis, sovelluksen jakelun voi nimittäin asettaa alfha tai beta vaiheeseen, jos sovelluskehitys on yhä kesken. Alfa ja beta vaiheessa vain erikseen kutsut alfa tai beta testaajat voivat ladata sovelluksen. Myös virallisen julkaisemisen jälkeen on mahdollista asetta erilaisia filtteröinti kriteereitä, sovelluksen jakelun voi rajata laitteiston ominaisuuksien mukaan tai käyttäjän maantieteellisen sijainnin mukaan.

Lähteet:

Developer Android sivusto
Wikipedia Java artikkeli
Opinnäytetyöni, joka löytyy Jyväskylän ammattikorkeakoulun kirjastosta.