Android-sovelluskehitys

Android-sovelluskehitys on Android-sovellusohjelmien luomista. Android-sovellusten kehittämiseen suositeltu ohjelmointikieli on Kotlin vuodesta 2019 lähtien.[1][2] Myös Java on edelleen tuettu Android SDK -kehityspaketilla. Android-sovelluksia voi kehittää myös käyttäen C++ -ohjelmointikieltä ja Android NDK:ta. Näiden tekniikoiden lisäksi on mahdollista toteuttaa niin sanottuja "hybridisovelluksia". Hybridisovellukset toimivat useammalla käyttöjärjestelmällä, mutta eivät pärjää suorituskyvyssä Android SDK:lla ja NDK:lla tehdyille sovelluksille. Lisäksi Android-laitteen sisäisiin laitteisiin, kuten kameraan tai kiihtyvyysanturiin päästään käsiksi vain käyttäen SDK:ta tai NDK:ta.

Android Runtime (ART) on Android-alustalla käytettävä ajoympäristö, joka kääntää ohjelmat natiiville konekielelle.[3] ART on korvannut Dalvik-virtuaalikoneen Androidin versiosta 5.0 alkaen.[3][4]

Android-kehitystyökalut

muokkaa

Android SDK on ohjelmistokehityspaketti (Software Development Kit), jota käytetään Android-sovellusten toteuttamiseen. Android SDK sisältää kaikki Android-sovelluksen luontiin tarvittavat kirjastot, mukaan lukien kirjastot käyttöliittymien tekoon sekä debuggaustyökalut ja muita työkaluja sovelluskehitykseen.[5]

Virallinen Googlen tarjoama kehitysympäristö on Android Studio, jonka mukana tulee Android SDK.[6] Muita kehitykseen käytettäviä ovat muun muassa Eclipse ja Microsoft Visual Studio.[7][8]

Pelien kehitykseen käytettäviä työkaluja ovat muun muassa Unity ja Unreal Engine.[6]

Lisäksi Pascal-kielellä voi kehittää Android-sovelluksia ja tätä tukevia työkaluja ovat muun muassa Delphi ja Lazarus.

Sovelluksien tekeminen

muokkaa

Käyttöliittymiä voi tehdä Androidin omalla rajapinnalla (mm. Jetpack[9])[10] tai esimerkiksi Flutter-kirjastolla.[11]

Sovelluksien kehitykseen voidaan käyttää Java, Kotlin ja C++-ohjelmointikieliä.[12] Sovellukset paketoidaan APK- tai Android App Bundle (AAB) -pakettitiedostoihin, jotka sisältävät sovelluksen ohjelmakoodin lisäksi muun tarvittavan datan ja resurssitiedostot.[12] Sovellukset asennetaan APK-pakettitiedostoista laitteelle.[12]

Eri kielille ja kulttuureille suunnatut tekstit ja muut tiedot sijoitetaan resurssitiedostoihin, jotka liitetään sovelluksen mukaan.[13]

Ohjelmiston testaaminen

muokkaa

Androidille tehtyjä sovelluksia voi testata eri tavoin Android Studiossa: emulaattorilla[14], yksikkötesteillä (JUnit[15]) ja erilaisten testaustyökalujen avulla (mm. App Crawler, Monkey Testing, monkeyrunner[16]). Android Debug Bridge (adb) tukee testaamista fyysisellä laitteella langattoman yhteyden (Wi-Fi, Android 11 tai uudempi) tai USB-liitännän avulla.[17]

Fyysisellä laitteella debuggaamista varten Android-puhelimesta löytyy valinnat, jotka kytketään päälle laitteen järjestelmäasetuksista.[18]

Esimerkki

muokkaa
 
Esimerkkikoodin tulos Android-älypuhelimessa.

Esimerkki Androidin Activity:stä. Activity on luokka, joka tarvitaan Androidissa aina käyttöliittymän näyttämistä varten.

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Näytetään pop-up, jossa teksti "Hello world!"
        Toast.makeText(this, "Hello world!", Toast.LENGTH_SHORT).show();
    }
}

Tietoturva

muokkaa

Jokainen Android-sovellus sijaitsee omassa hiekkalaatikossaan tietoturvan vuoksi:[12]

  • Android-käyttöjärjestelmä on usean käyttäjän Linux-käyttöjärjestelmä, jossa jokainen sovellus on eri käyttäjä
  • järjestelmä asettaa jokaiselle sovellukselle yksilöllisen tunnuksen, joka on vain järjestelmän käytössä ja sovellus ei sitä tunne: järjestelmä asettaa käyttäjäoikeudet siten, että vain sovellukseen liitetty tunnus voi niitä käyttää
  • jokaisella prosessilla on oma virtuaalikone, jolloin sovellukset suoritetaan eriytettyinä toisista sovelluksista
  • jokainen sovellus suoritetaan omassa prosessissa

Sovellukset asennetaan APK-pakettitiedostoina[12] tai Google Play -palveluun lähetettäväksi mahdollisesti myös Android App Bundle (.aab) -tiedostoina, joka on suositeltu muoto julkaistessa sovellusta[19].

Sovelluksen julkaiseminen

muokkaa

Yleisin paikka Android-sovelluksen julkaisemiselle on Google Play -kauppa. Tunnuksen tekeminen Play-kauppaan maksaa 25 dollaria. Maksulla Google pyrkii minimoimaan niin sanottujen roskasovellusten julkaisemista. Tunnusten luomisen jälkeen käyttäjä voi julkaista sovelluksia Play-kaupassa. Yleensä sovelluksen näkyviin tuleminen muille käyttäjille kestää sovelluksen julkaisemisesta muutamia tunteja. Aika on kuitenkin verrattain vähäinen verrattuna esimerkiksi Applen App Storeen tuleviin sovelluksiin, sillä Google ei tarkista sovelluksia.

Suorituskyvyn seuranta

muokkaa

Android Studiossa on profilointityökalu suorittimen, muistin, verkon ja akun käytön mittaamiseen.[20]

Android vitals on Googlen hanke sovelluksien vakauden ja suorituskyvyn seurantaan laitteilla, joiden käyttäjät ovat valinneet sen käytön. Tällä sovelluskehittäjät saavat tietoa käyttökokemuksen laatuun vaikuttavista seikoista kuten vakaudesta, suorituskyvystä, akun käytöstä ja oikeuksien kieltämisestä.[21]

Ympäristömuuttujat

muokkaa

Android ei käytä ympäristömuuttujia, vaan property-järjestelmää. Jotkin tiedot voidaan asettaa ohjelman käännöksen yhteydessä ja joitakin voi muuttaa adb-komentotulkin avulla. Androidissa on sysprop-rajapinta property-arvojen käsittelyyn sovelluksesta. Propertyillä voidaan muuttaa myös käyttöjärjestelmän toimintaa, kuten SELinuxin käytäntöjä.[22]

Lähteet

muokkaa

Viitteet

muokkaa
  1. Google is adding Kotlin as an official programming language for Android development 17.5.2017. Verge. Viitattu 17.2.2020. (englanniksi) 
  2. Lardinois, Frederic: Kotlin is now Google’s preferred language for Android app development 7.5.2019. TechCrunch. Viitattu 19.2.2020. (englanniksi)
  3. a b Platform Architecture developer.android.com. Viitattu 29.2.2020. (englanniksi) 
  4. Experimental Google ART runtime in Android KitKat can bring twice faster app executions phonearena.com. 7.11.2013. Viitattu 29.2.2020. (englanniksi) 
  5. Command line tools developer.android.com. Viitattu 22.7.2022. (englanniksi)
  6. a b Alex Mullis: The best Android developer tools for getting started androidauthority.com. 7.4.2021. Viitattu 22.7.2022. (englanniksi)
  7. How to Setup Eclipse for Android App Development instructables.com. Viitattu 22.7.2022. (englanniksi)
  8. Android Development visualstudio.microsoft.com. Viitattu 22.7.2022. (englanniksi)
  9. Android Jetpack developer.android.com. Viitattu 21.7.2022. (englanniksi)
  10. User Interface & Navigation developer.android.com. Viitattu 21.7.2022. (englanniksi)
  11. Flutter architectural overview docs.flutter.dev. Viitattu 18.7.2022. (englanniksi)
  12. a b c d e Application Fundamentals developer.android.com. Viitattu 13.9.2020. (englanniksi)
  13. Support different languages and cultures developer.android.com. Viitattu 21.7.2022. (englanniksi)
  14. Run apps on the Android Emulator developer.android.com. Viitattu 20.7.2022. (englanniksi)
  15. Test in Android Studio developer.android.com. Viitattu 21.7.2022. (englanniksi)
  16. Test your app developer.android.com. Viitattu 21.7.2022. (englanniksi)
  17. Android Debug Bridge (adb) developer.android.com. Viitattu 21.7.2022. (englanniksi)
  18. Configure on-device developer options developer.android.com. Viitattu 21.7.2022. (englanniksi)
  19. Android App Bundle Android Developers. Viitattu 10.6.2021. (englanniksi)
  20. The Android Profiler developer.android.com. Viitattu 17.8.2022. (englanniksi)
  21. Android vitals developer.android.com. Viitattu 17.8.2022. (englanniksi)
  22. Add System Properties source.android.com. Viitattu 21.10.2023. (englanniksi)