Android-sovelluksen toteutus OpenGL ES -kirjaston ja Native Development Kitin avulla
Koskinen, Aleksi (2018)
Koskinen, Aleksi
Metropolia Ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201805036425
https://urn.fi/URN:NBN:fi:amk-201805036425
Tiivistelmä
Android on viime vuosina ottanut hallitsevan käyttöjärjestelmän roolin älypuhelimissa. Tässä insinöörityössä tarkastellaan erityisesti sitä, miten Androidiin voi tehdä graafisia sovelluksia eri tekniikoilla.
Työ aloitetaan kertomalla historiaa Android-käyttöjärjestelmästä. Sen arkkitehtuuria katsotaan tarkemmin ja sitä, mitä sen eri kerroksissa tapahtuu. Lisäksi katsotaan, miten Android on kehittynyt vuosien varrella aina tämän päivän Androidiin asti.
Pohjustuksen jälkeen tutustutaan OpenGL-kirjaston Androidille tehtyyn haaraan nimeltä OpenGL ES. Työssä lähdetään ensin katsomaan, miten graafisia sovelluksia voi tehdä käyttäen OpenGL ES -versiota 1.0. Katsotaan, miten siinä voi piirtää puhelimen näytölle 2D-muotoja kuten kolmion. Katsotaan myös, miten piirrettyyn kolmioon voi lisätä värejä ja tekstuureja. Tarkastellaan myös, miten projektioita ja matriiseja käytetään, jotta piirretyt muodot saadaan näkymään käyttäjälle halutulla tavalla. Osion lopussa katsotaan, miten OpenGL ES:n uudet versiot kuten 2.0 ja 3.0 eroavat versiosta 1.0. Tutustutaan tarkemmin niiden oleellisimpaan eroon eli version 2.0 tuomien varjostimien käyttöön.
OpenGL ES -osion jälkeen työssä tarkastellaan Native Development Kitiä (NDK). Katsotaan sen tarjoamia eri työkaluja, jotka mahdollistavat natiivien sovelluksien tekemisen Androidiin käyttäen C/C++-koodia. Hyödynnetään näitä työkaluja, ja tarkastellaan miten natiivin koodin avulla voi käyttää OpenGL ES -kirjastoa ja piirtää muotoja. Osion lopussa katsotaan myös hieman Vulkania, jonka on sanottu olevan OpenGL ES:n korvaaja.
Työn lopussa tehdään vielä hyvin yksinkertainen 3D-peli käyttäen OpenGL ES -kirjaston versiota 3.0. Peliä tarkastellessa katsotaan samalla, miten Androidille voi tehdä 2D-sovelluksien lisäksi 3D-sovelluksia.
Työn tuloksena ollaan todettu miten uusimpia OpenGL ES –kirjastoja käytetään 3D-grafiikkaa piirrettäessä. Lisäksi ollaan todettu miten NDK:ta käytetään ja katsottu miksi sitä ylipäätänsä kannattaa käyttää.
Työ aloitetaan kertomalla historiaa Android-käyttöjärjestelmästä. Sen arkkitehtuuria katsotaan tarkemmin ja sitä, mitä sen eri kerroksissa tapahtuu. Lisäksi katsotaan, miten Android on kehittynyt vuosien varrella aina tämän päivän Androidiin asti.
Pohjustuksen jälkeen tutustutaan OpenGL-kirjaston Androidille tehtyyn haaraan nimeltä OpenGL ES. Työssä lähdetään ensin katsomaan, miten graafisia sovelluksia voi tehdä käyttäen OpenGL ES -versiota 1.0. Katsotaan, miten siinä voi piirtää puhelimen näytölle 2D-muotoja kuten kolmion. Katsotaan myös, miten piirrettyyn kolmioon voi lisätä värejä ja tekstuureja. Tarkastellaan myös, miten projektioita ja matriiseja käytetään, jotta piirretyt muodot saadaan näkymään käyttäjälle halutulla tavalla. Osion lopussa katsotaan, miten OpenGL ES:n uudet versiot kuten 2.0 ja 3.0 eroavat versiosta 1.0. Tutustutaan tarkemmin niiden oleellisimpaan eroon eli version 2.0 tuomien varjostimien käyttöön.
OpenGL ES -osion jälkeen työssä tarkastellaan Native Development Kitiä (NDK). Katsotaan sen tarjoamia eri työkaluja, jotka mahdollistavat natiivien sovelluksien tekemisen Androidiin käyttäen C/C++-koodia. Hyödynnetään näitä työkaluja, ja tarkastellaan miten natiivin koodin avulla voi käyttää OpenGL ES -kirjastoa ja piirtää muotoja. Osion lopussa katsotaan myös hieman Vulkania, jonka on sanottu olevan OpenGL ES:n korvaaja.
Työn lopussa tehdään vielä hyvin yksinkertainen 3D-peli käyttäen OpenGL ES -kirjaston versiota 3.0. Peliä tarkastellessa katsotaan samalla, miten Androidille voi tehdä 2D-sovelluksien lisäksi 3D-sovelluksia.
Työn tuloksena ollaan todettu miten uusimpia OpenGL ES –kirjastoja käytetään 3D-grafiikkaa piirrettäessä. Lisäksi ollaan todettu miten NDK:ta käytetään ja katsottu miksi sitä ylipäätänsä kannattaa käyttää.