Jypeli Androidilla
Siirtämällä kurssilla tehdyn pelin Android puhelimeen, saa 1 op kurssille:
- ITKP106 Ohjelmointi 1, mobiili
- mikäli saa sovelluksen julkaistua kauppapaikassa, saa +1op.
- kurssin suoritus: peli siirretään puhelimelle ja näytetään ohjaajalle että peli toimii puhelimessa.
- lisä op:ta varten näytetään vastaavasti että pelin voi ladata kauppapaikasta
- ohjelman koodit versionhallintaan kuten Ohj1-kurssilla, vaikka samaan repositorioon uuteen kansioon.
miten laitan samat koodit samaan repositorioon mutta eri kansioon?
Teet koneellasi olevaan harjoitustyökansioon (se jossa on README, suunnitelmakansio ja ht-projektikansiosi) uuden kansion Android-projektia varten. Sinne sitten aloitat Visual studiolla uuden projektin ohjeien mukaan. -Juho
—Tässä dokumentissa kerrotaan, miten asennetaan Android-kehitystyökalut ja käännetään jo valmis Jypeli-projekti Androidille. Oletuksena on, että aiemmin kurssilla käytetyt kehitystyökalut (esim. Visual Studio 2022) ovat jo asennettuna. Ohjeet ovat toistaiseksi vain Windowsille, mutta ovat helposti sovellettavissa Macilla ja Linuxilla.
Google Playhin rekisteröityminen maksaa noin 25 euroa, joka suoritetaan kertamaksuna. Rekisteröityminen vaaditaan vain jos haluat julkaista pelisi kauppapaikassa.
1. Työkalujen asentaminen
Aloita avaamalla Visual Studio Installer
, ohjelma löytyy sinun tietokoneelta jos olet asentanut kurssin työkalut.
Valitse Visual Studio Community 2022
kohdalta Modify
. Jos ilmoittaa että päivitys on saatavilla, asenna myös se.
Lisää ruksi kohtaan .NET Multi-platform App UI development
.
Paina Modify
ja odota.
1.0.1 Android lisäosa .NETtiin
Kun Visual Studion asennus on valmis, avaa komentorivi ja kirjoita komento
dotnet workload install android
Tämä asentaa vielä tarvittavat Android-kirjastot käytettäväksi. Tässä kestää hetki.
1.0.2 Jypeli projektin pohja
Luo projekti Visual Studiossa kuten normaalisti, valitse Android Fysiikkapeli
-projektimalli.
1.0.3 Sisällön tuonti peliin
Sisällön tuonti tapahtuu hyvin samalla tavalla kuin "työpöytäJypelissä". Laita tiedosto Content-kansioon, mutta nyt sille pitää antaa asetus Build Action -> AndroidAsset
. Build Action listan valinnat eivät (jostain kumman syystä) ole aakkosjärjestyksessä.
Copy to output... asetusta ei tarvitse laittaa.
1.1 Android-API
- Visual Studiossa valitse ylävalikosta
Tools
->Android
->Android SDK Manager
. - Etsi listasta Android 11 (API level 30), avaa lisävalinnat
+
-merkistä, laita rasti ruutuun kohtaanAndroid SDK Platform 30
- Paina
Apply changes
.
2. Pelin ajaminen emulaattorissa
Testaamisen nopeuttamiseksi on suositeltavaa käyttää emulaattoria pelin ajamiseen, eikä välttämättä oikeaa puhelinta.
Voit luoda uuden virtuaalisen puhelimen Visual Studiosta Tools > Android > Android Device Manager
.
Ei ole erityistä väliä minkä puhelimen luot. Oleellisin ero Base Device
asetuksella on puhelimen fyysinen koko, eli minkä kokoinen ja resoluutioinen näyttö siinä on. Itse tykkään käyttää Pixel 2-puhelinta.
Prosessor
asetuksena kannattaa pitää oletus, eli todennäköisesti x86 64.
OS
kohdassa kannattaa ottaa API 30, mutta tälläkään ei ole erityisen suurta merkitystä, kunhan se on kuitenkin kohtuullisen uusi versio.
Muihin asetuksiin ei kannata koskea ellei tiedä mitä tekee.
Nyt Visual Studion Run
nappulassa näkyy että millä laitteella peli ajetaan. Voit vaihtaa laitetta siinä olevasta pienestä alaspäin osoittavasta nuolesta.
Ensimmäisen kerran kun käynnistät virtuaalipuhelimen, siinä kestää hetki. Aivan kuten oikealla puhelimellakin.
3. Pelin ajaminen Android-puhelimella
Ajaaksesi pelin Android-puhelimella tulee puhelin asettaa kehitystilaan ja liittää tietokoneeseen. Miten se täsmälleen tapahtuu voi riippua mallista, mutta seuraavien ohjeiden pitäisi päteä melko hyvin suurimmalle osalle Android-laitteista. Visual Studio kannattaa sulkea tämän asennuksen ajaksi.
3.1 Puhelimen asettaminen kehitystilaan
Katso myös Android/debug.
- Mene puhelimessa
Settings
->About phone
->Software information
-sivulle ja näpäytäBuild Number
-kohtaa 7 kertaa. - Siirry takaisin Settings-valikkoon. Mikäli edellinen kohta onnistui, niin sieltä (mahdollisesti
System
-kategorian alta) pitäisi löytyäDeveloper Options
-kohta. - Varmista kehitysasetuksista, että
USB Debugging
on päällä.
Tämän jälkeen voit yksinkertaisesti vain kytkeä puhelimesi tietokoneeseen USB-kaapelilla, sallia puhelimessa USB-debuggaamisen, käynnistää Visual Studion ja avata aiemmin luomasi Android-projektin. Visual Studiossa pitäisi tällöin näkyä ylhäällä vihreän nuolen oikealla puolen laitteesi malli (missä tietokonesovelluksissa on lukenut Debug
). On myös mahdollista, että kohdassa lukeekin jotain Visual Studioon ja/tai emulaatioon liittyvää. Tällöin avaa kyseisen nimen vieressä olevasta nuolesta alasvetovalikko ja katso, löytyykö puhelimesi listasta. Jos löytyy, valitse se.
Nyt voit painaa Visual Studiosta F5
ja pelisi pitäisi käynnistyä puhelimellasi, ainakin jos se ei ole lukitussa tilassa ja koodissa ei ole virheitä.
4. Pelaajan syötteen käsittely
Mobiilialustalla ei yleensä ole käytössä hiirtä taikka näppäimistöä, joten pelaajan syötteen käsittely pitää hoitaa eri tavalla. Tässä auttavat TouchPanel
-luokan metodit.
https://tim.jyu.fi/view/kurssit/jypeli/ohjaimet/ohjainten-lisays#puhelimen-kosketusn%C3%A4ytt%C3%B6
Kosketusnäytön ohjauksien parametrit eivät vaikuta toimivan. Jos kuuntelijalle lisää parametreja, VS studio valittaa seuraavaa "Argument 2: cannot convert from 'method group' to 'TouchHandler'".
Näyttäisi siltä että Listen
funktiolta puuttuu tuo lisäparametrien anto, mutta esim. ListenOn
toimii kuten pitäisi. Voit kuitenkin kiertää tämän rajoituksen esimerkiksi näin: TouchPanel.Listen(ButtonState.Released, (t) => Funktio(t, parametri1, parametri2), null);
-MR
4.1 Mahdollisia ongelmia
Jostain syystä pelin debuggaaminen Visual Studiolla ei aina onnistu, kun peliä suoritetaan puhelimessa. Virheen tapahtuessa Visual Studio ei välttämättä esimerkiksi aina näytä virhettä suoraan, vaan poikkeuksen tapahtuessa näytetään vain "The application is in break mode" -ruutu. Tällöin täytyy painaa ylhäältä Continue
-näppäintä kahdesti, jolloin ohjelma sammuu. Tämän jälkeen voit vaihtaa Visual Studiossa tyypillisesti vasemmalta alhaalta Output
-ikkunaan, josta voi yleensä lukea pelin kaataneen poikkeuksen tiedot.
TODO: Tapahtuuko nykyisinkin?
—4.2 Linux erikoisuudet
Ubuntulle openJDK löytyy ainakin pakettijakelusta. Android SDK:n saa ladattua zip-pakettina, jonka saa purkamisen jälkeen ajettua linuxilla.
Puhelimessa debuggaus onnistuu siten, että julistetaan manifestiin applicationin sisään android:debuggable="true". Lisäksi Output-ikkunan lokiin voi tulostaa Android.Util.Log käskyillä. Molemmat pitää kuitenkin muistaa poistaa julkaisuvaiheessa.
USB:n ajurit voi testata Android SDK:n mukana tulevalla adb
ohjelman käskyllä adb devices
, joka listaa yhdistetyt puhelimet. Linuxilla voi tarvita/etc/undev/rules.d/51-android.rules
tiedoston tekemisen lukuoikeuksilla ja rivillä SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
sikäli kun valmistaja on Samsung (04e8).
TODO: Onko enää oleellista?
—5. Julkaiseminen
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.