Android-ohjelmointi

Täydennä tätä ohjetta sitä mukaan kun kokeilet Androidin käyttöä!

Tässä dokumentissa kerrotaan miten:

  • asennetaan Android-työkalut Windowsiin ja Linuxiin (Mac?)
  • miten tehdään yksinkertainen Android-ohjelma
  • miten ohjelma ajetaan emulaattorissa
  • miten siirretään ohjelman laitteeseen (kännykkä? tablet?)
  • miten viedään ohjelma kauppapaikkaan (?)

1. Yleistä

1.1 Linkkejä

2. Työkalut

2.1 Asentaminen

Android Studio pitää sisällään Android SDK:n.

2.1.1 Linux

Android studio linux asennusohjeet (engl.)

  • Lataa tarvittaessa JDK 1.8
  • Lataa ja pura Android studio
    • 64bit Linux (esim. Ubuntu) vaatii paketit lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

2.1.2 Mac ja Windows

Asennusohjeet

2.2 Käyttö

# debug

2.3 Puhelimessa/Tabletissa debuggaus

  • Aktivoi puhelimesta debuggaus (Build number voi olla suomeksi Ohjelmaversion numero ja se voi olla eri paikassa kuin noissa ohjeissa, videoesimerkki)
    • Samsung J5: Settings/About Phone//Software Information/Build Number ja naputa hirveän monta kertaa ilmestyy teksti Developer mode enabled

2.3.1 Arch linux

Jos IDE ei näe puhelintasi/tablettiasi:

  • Ota talteen laitteesi vendor id ja product id komennolla lsusb (... ID vendor:product ...)
  • Lisää vendor id ja product id tiedostoon /etc/udev/rules.d/51-android.rules (luo tiedosto, jos sitä ei ole olemassa):

Esimerkiksi jos vendor id on 0fca ja product id on 01bb

SUBSYSTEM=="usb", ATTR{idVendor}=="0fca", MODE="0666", GROUP="adbusers"
SUBSYSTEM=="usb",ATTR{idVendor}=="0fca",ATTR{idProduct}=="01bb",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="0fca",ATTR{idProduct}=="01bb",SYMLINK+="android_fastboot"
  • Lataa säännöt uudelleen komennolla udevadm control --reload-rules

Vaihtoehtoisesti voit luoda tiedoston ~/.android/adb_usb.ini johon laitat vendor id:n

Lisätietoja: Anrdoid Studio / Arch Wiki

3. Hello World!

  • avaa Android Studio
  • File//New/New project...
  • täytä kentät
  • kohdassa Add an Activity to Mobile valitse Empty Activity
  • mene loppu oletuksilla
  • pitäisi tulla ohjelma joka on ajettavissa suoraan puhelimella kun yhdistät puhelimen ja pidät sen päänäytössä.
  • kun painat Run, valitse puhelimesi

3.1 Toiminnon lisääminen

  • Avaa vasemman reunan Project näkymästä (jollei jo ole auki)
    res/layout/activity_main.xml tuplaklikkaamalla

  • lisää yksi painike jonka tekstiksi vaihdat Terve
    ja id:ksi buttonTerve.

  • samoin vaihda tekstin id:ksi textTerve

  • lisää tiedostoon MainActivity.java koodi:

        public void buttonTerveOnClick(View v) {
    
        }
  • jotta View tunnetaan, lisää import:

    import android.view.View;
  • nyt voit mennä takaisin suunnittelutilaan ja painikkeen OnClick-omaisuuden kohdalta pitäisi valikosta näkyä tuo buttonTerveOnClick-metodi. Valitse se.

  • täydennä itse metodin koodiksi esimerkiksi:

4. Autolaskuri

5. Julkaiseminen

Julkaisemista varten joudut:

  • Ostamaan 25€ hintaisen kehittäjälisenssin itsellesi Play-kauppaan
  • tekemään 2 kpl ruutukaappausta (kannattaa ottaa puhelimesta ja lähettääö vaikka Google Driveen ja sieltä koneelle).
    • paina yhtä aikaa virtapainiketta ja äänenvoimakkuuden vähennyspainiketta
  • vähintään yksi kpl ikonikuvakkeita. Resoluution tulee olla 512x512.
  • yksi ominaisuuskuva, joka on kooltaan 1024x500. Tähän kuvaan voi yrittää koota useita näkymiä yhteen. Tämä kuva näkyy kauppapaikassa ylimpänä kun ollaan sovelluksen sivulla.
Ominaisuuskuva ja ikoni kauppapaikassa
Ominaisuuskuva ja ikoni kauppapaikassa
  • asettamaan ohjelman versionumeron ja tiedon tiedostossa build.gradle (Module: app)

      android {
          compileSdkVersion 23
          buildToolsVersion "23.0.3"
    
          defaultConfig {
              applicationId "jyu.sendpos"
              minSdkVersion 15
              targetSdkVersion 16
              versionCode 6
              versionName "1.0.6"
          }

    näitä tietoja joudut muuttamaan jokaista alf/beta tai julkaisuversiota varten

  • kun asetukset tehty aja Android Studiossa: Build/Generate Signed APK...

  • tällä joudut yhden kerran luomaan Key store-tiedoston.

# julkaiseminenVS

5.2 APK-paketin luominen (ja julkaiseminen) Visual Studiolla

Tässä muutamia tärkeitä huomioita, kuinka luoda Google Playn hyväksymä apk-paketti Visual Studiolla. Tässä oletetaan, että kaikki tarvittavat työkalut - Android Studio, Visual Studion mobiilityökalut sekä Xamarin - on asennettu ja Android-projekti luotu Visual Studiolla.

Tämä teksti perustuu omaan kokemukseeni, tässä voi siis olla pieniä puutteita. Itse tein projektini MonoGamella, joka voinee siis hieman erota JYpelistä, mutta uskoisin, että seuraavat ohjeet pätevät riippumatta siitä, millä kirjastolla projekti on luotu.

Jos tässä on jotain kysyttävää tai räikeitä puutteita, laittakaa kommenttia, niin korjaan mahdollisuuksien mukaan.

Visual Studiota käytettäessä et tarvitse Android Studiota. Android Studio on Googlen oma IDE Android-sovellusten tuottamiseen. Visual Studio + MonoJypeli yhdistelmä riittää pelin kehittämiseen ja julkaisemiseen Google Playssä.

5.2.1 Paketin nimi

Tämä on tärkeä, sillä jos paketin nimi on hiemankin väärä, Googlen järjestelmä laittaa virheviestiä ja käskee lataamaan paketin uudelleen.

Paina projektitiedostoa Visual Studion Solution explorerissa oikealla hiiren näppäimellä ja valitse "Properties". Pitäisi avautua uusi välilehti, jossa on sivulla vaihtoehtoja kuten "Application", "Android Manifest", "Android Options" jne. Valitse "Android Manifest". Nyt näet tekstilaatikoita, joista toiseksi ylimmässä lukee "Package name". Visual Studio on todennäköisesti generoinut tähän jo valmiin nimen, mutta se on todennäköisesti pielessä. Muuta sitä seuraavaan muotoon:

com.omanimi.projektinnimi

Esimerkiksi, jos nimesi on Pertti Virtanen ja projekti on nimeltään "Nice Game", paketin nimeksi tulisi esimerkiksi com.pvirtanen.nicegame. Tällainen nimeäminen vaaditaan, jotta Google pystyy valvomaan, ettei kukaan muu lataa sovellustasi omissa nimissään (näin ainakin jonkun lähteen mukaan). Muista kirjoittaa kaikki pienellä, tehdä nimestä kolmiosainen ja laittaa com alkuun, silloin paketti pitäisi tulla hyväksytyksi.

5.2.2 Muita asetuksia

Valitse nyt samasta välilehdestä yksi laatikko "Android Manifest" -laatikon alta, eli "Android Options". Visual Studio ei osaa luoda pakettia, jos jotkin täällä olevista debuggaus-asetuksista on päällä. "Use Shared Runtime" pitää olla pois, sillä jos vie hiiren valinnan päälle, sieltä tuleekin teksti, jossa lukee "Packages built with this option cannot be published", joten varmista, ettei vaihtoehtoa ole raksittu. Myös "Enable Developer Instrumentation" kannattaa laittaa pois päältä, jos se sattuu olemaan raksittuna. Visual Studiossa oleva "configuration" pitää asettaa "release" tilaan, jotta paketin teko onnistuu. Asetuksen voi vaihtaa "run" napin vasemmalla puolella olevasta laatikosta.

Nykyään, 1.8.2019 jälkeen, Google vaatii sovelluksille 32 bittisen arkkitehtuurin lisäksi tuen x64 arkkitehtuuria käyttäville laitteille ja sovelluksiin pitää sisällyttää ko. arkkitehtuurien mukaiset natiivikoodit. Ellei muutoksia tehdä, .apk tiedostoon tulee ainoastaan x32 arkkitehtuuriin sopivat kirjastot. Debug -> omaprojekti Properties -> Android options valikosta voit Advanced painikkeen takaa voit valita haluamasi kirjastot mukaan.

5.2.3 Arkistointi

Klikkaa taas projektia Solution explorerissa oikealla hiiren näppäimellä, ja valitse "Archive" (löytyy melko ylhäältä). Visual Studio alkaa automaattisesti luomaan arkistoa nykyisestä versiosta. Odota, että se pääsee päätökseensä. Sen jälkeen paina Distribute. Uusi ikkuna avautuu, ja kaksi vaihtoehtoa tulee näkyviin: Ad-Hoc ja Google Play. Jälkimmäisestä en osaa sanoa mitään, joten valitse Ad-Hoc.

Avautuu ruutu, jossa lukee "Signing Identity". Paina vihreää plus-merkkiä luodaksesi uusi "identiteetti". Nyt avautuu uusi ikkuna, jossa lukee "Create Android Keystore". Täytä kaikki pakolliset kentät. Organisaation kohdalle voi laittaa pelkän viivan. Kun olet valmis, paina "Create", ja valitse "Signing Identity" ruudusta luomasi "Android Keystore". Kun olet valinnut sen - eli sen ympärillä on sininen laatikko - paina "Save As". Nykyinen ikkuna sulkeutuu ja sinulta kysytään, minne haluat tallentaa apk-paketin. Valitse jokin sijainti ja annan tiedoston nimeksi vaikka paketin nimi ja perään .apk, eli esimerkiksi com.omanimi.projektinnimi.apk.

HUOMATUS: Jos Googlen pakettivastaanotin valittaa, että paketti ei ole "zip aligned"

(Lue: zipalign työkalun käyttö )

Tässä tapauksessa, kun olet arkistoinut paketin, mutta et ole vielä luonut jakelupakettia - eli toisin sanoen, allekirjoittanut sitä - paina Open Folder. Avaa komentorivi ja mene nykyiseen kansioon. Aja Android Studion Build Tools -kansiosta löytyvä zipalign-työkalu nykyiseen pakettiin. Jos luot työkalulla uuden paketin, poista vanha ja nimeä uusi samalla tavalla kuin alkuperäinen paketti, jotta Visual Studio löytää sen.

Nyt allekirjoita paketti kuten yllä.

Jos kuitenkin haluat kokeilla Google Play julkaisutapaa, voit aloittaa sen Play Consolessa kehittäjätilisi asetuksista kohdasta Sovellusliittymän käyttöoikeus.

5.2.4 Paketin lataus Googleen

(Tämä osio kaipaa vielä muokkausta)

Tässä oletetaan, että olet luonut projektin Google Play Consolessa ja täyttänyt ladattua apk-pakettia vaille kaikki tarpeelliset tiedot. Valitse oikealta "Julkaisun hallinta" ja "Sovellusjulkaisut". En nyt ole ihan varma, miltä sivu näyttää, kun julkaisua ei vielä ole, mutta täältä pitäisi löytyä keino päästä sivulle nimeltä "Uuden tuotantoversion julkaisu" (jos julkaisu on jo olemassa, sivulle pääsee "Muokkaa julkaisua" -napista, mutta jos julkaisua ei ole, vaikea sanoa. Pitänee luoda uusi projekti ja varmistaa sitten). Nyt pitäisi tulla näkyviin laatikko, jossa lukee "Lisättävät APK:t". Paina "Selaa tiedostoja" ja valitse luomasi apk-paketti. Nyt paketti latautuu Googlen palvelimille, ja jos siinä ei ole mitään vikaa, se hyväksytään, jolloin voit jatkaa täyttämään muita vaadittuja kenttiä (julkaisnimi, mitä uutta julkaisussa jne.).

5.2.5 Avainvarastosta

Sovelluksen apk-julkaisupaketin julkaiseminen on kolmivaiheinen prosessi, joka sisätää sovelluksen kääntämisen, allekirjoittamisen ja paketoimisen.

  1. Käännösvaiheessa poistetaan debuggausta helpottavat toiminnot AndroidManifest.xml-tiedostosta.
  2. Allekirjoittamisen aikana luodaan avainpari, joka on kehittäjän yksilöivä allekirjoitus sovellukselle.
  3. Paketoiminen, jossa versioidaan ja allekirjoitetaan julkaistava sovellus.

Käytännössä edelliset vaiheet suoritetaan IDE:n puolesta ohjattuna toimintona, joiden olemassaolo on kuitenkin hyvä tiedostaa.

Avainvarasto luodaan Java SE työkalulla keytool.exe, joka sijaitsee polussa C:\Program Files\Java\jdk1.8.0_192\bin\. Huomaa, että jdk:n versio riippuu asennuksesta. keytool -genkey -v -keystore <julkaisuavain.keystore> -alias <alias> -keyalg RSA -keysize 2048 -validity 10000 Käsky luo 10,000 päivää voimassa olevan alias-nimisen avainparin avainvarastoon nimeltä julkaisuavain.keystore. Lisäksi keytool kyselee käyttäjän tiedot, salasanat avainvarastolle, ja aliakselle. Molempia salasanoja tarvitaan myöhemmin paketoinnin yhteydessä, joten ne kannattaa kirjoittaa varmaan talteen.

Google Playn tarvitsemat kuvat kannattaa käsitellä komentorivillä, esimerkiksi ImageMagic-ohjelmalla. Ohjelman binäärit saa kätevästi ajettua heti purkamisen jälkeen ilman erillistä installeria. Käsky voi olla vaikkapa convert .\screenshot.png -crop 512x512+0+0 .\output.png. Kuvan saa keskitettyä siten, että nollien tilalle sijoitetaan resoluution pikselit (1920-512)/2 leveydeksi ja (1080-512)/2 korkeudeksi hieman soveltamalla.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.