Mitä tarvitaan, että Debianissa voi koodata mobiilisovelluksia kännyköille? Kiinnostusta olisi muutten tiedä mistä aloittaisin. En haluaisi käyttää Windowsia.
mobiiliohjelmointi
Debianissa
101217
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 10
Vanhimmat
Kiva, että muitakin löytyy jotka tuosta on kiinnostunut :)
Riippuu ihan siitä mille alustalle haluat koodata.
Ainakin J2ME- ja Symbianohjelmointi kiinnostaa. Androidikin olisi mielenkiintoinen, mutta eihän niitä puhelimia edes ole saatavilla vielä eli sillä ei ole kiire. Jos tiedät jotakin myös Nokian nettitableteille ohjelmoinnista, niin sekin kiinnostaisi.
Symbian ohjelmointi valitettavasti käytännössä vaatii Windowsin. Linuxille on kyllä komentorivipohjaisia opensource työkaluja ja Symbian SDK:n saa säädettyä toimimaan ainakin jotenkuten. Mutta Symbian puhelinemulaattoria ja Nokian Carbide C IDE:ä ei saa toimimaan Linuxissa eikä niistä ole linux-versiota.
Itse yritin vuosi sitten asentaa Carbiden Debianiin Winen avulla, mutta se ei onnistu edes Winellä, liikaa riippuvuuksia Windowsiin. Aika omituista sikäli että Carbide perustuu Eclipseen, joka löytyy Debianinkin reposta. Eli Eclipse on Linuxille ja Eclipse on tehty kaikenlisäksi Javalla eli sen Carbiden luulisi porttautuvan. Itse IDE:ä suurempi ongelma ilmeisesti onkin Symbian puhelinemulaattorit, joita tarvitaan ohjelmia kehitettäöessä ja testattaessa. Ne on ilmeisesti sidottu aika lujasti Windowsiin.
Nokia toivottavasti joskus tekee Carbidesta Linux-version. Käytännösä ainoaksi mahdollisuudeksi Carbiden ajamiseen jää boottaaminen Windowsiin tai Windowsin ajaminen virtualisoituna. Itse olen ratkaisuut ongelman niin, että olen asentanut VirtualBoxin Debianiin ja tehnyt Virtuaalikoneen VirtualBoxiin. Tuolle virtuaalikoneelle asensin sitten Windows XP Pro:n, Carbiden, Nokian S60 SDK:n ja muut tarvittavat kamat. Tuolla tavalla ei tarvitse bootata Windowsiin vaan voi ajaa Windowsia virtualisoituna ikkunassa Debianin työpöydällä.
Nokia ei siis ainakaan toistaseksi tue Symbiankoodausta Linuxissa. Tuosta on ollut keskustelua esim Forum Nokian sivuilla ja Linuxille on toivottu paljon S60 SDK:ta ja kehitystyökaluja.
Toisin kuin Symbianohjelmointi, J2ME-ohjelmointi onnistuu Debianissa aivan helposti kunhan tarvittavat kamat on ensin asennettu, mikä vaatii hiukan työtä.
Tämän ohjeen avulla voit asentaa toimivan J2ME kehitysympäristön Debianiin.
Aivan ensin sun pitää tietenkin asentaa Java JDK. Debian Etchissä on virallinen Sunin Java 5 JDK. Debian Lennyssä on sekä virallinen Sun Java JDK (5 ja 6), että opensourcea oleva OpenJDK, joka on siis avoin vapaa toteutus Sunin JDK:sta. En ole varma sopiiko OpenJDK jo käyttäväksi J2ME mobiiliohjelmoinnissa, asiaa pitäisi tutkia. Suosittelen asentamaan Sunin virallinen javan. Huomaa, että sulla voi olal asennettuna useampi eri java toteutus. Sun java löytyy Debian non-free reposta.
Tässä ohje miten Sun java 6 asennetaan Debian lennyyn. Homma toimii ihan vastaavasti Etchissä, sillon vaan on käytettävissä vain Sun java 5, jonka toki voi asentaa lennyynkin Sun java 6:n sijasta.
Ensin sun pitää aktivoida Debianin non-free ja contrib repositoryt, jos ne ei ole jo käytössä. Eli varmista, että sulla on /etc/apt/sources.list:ssä tämäntapaiset rivit:
deb http://ftp.fi.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.fi.debian.org/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main non-free contrib
deb-src http://security.debian.org/ lenny/updates main non-free contrib
deb http://ftp.fi.debian.org/debian-volatile/ lenny/volatile main non-free contrib
deb-src http://ftp.fi.debian.org/debian-volatile/ lenny/volatile main non-free contrib
Se millä on merkitystä on sanat non-free ja contrib noilla riveillä.
Päivitä sitten pakettitietokanta:
# apt-get update
Sitten voit asentaa Sunin JDK:n
# apt-get install sun-java6-jdk
Muut java6-paketit voit asentaa jälkeenpäin tarvittaessa vaikkapa Synapticilla. Laita hakusanaksi sun-java6.
Kun JDK on asennettu sun pitää asentaa NetBeans, jos haluat käyttää IDE:ä ohjelmoinnissa. Toki sä voit aina koodata käyttäen tekstieditoriakin, mutta suosittelen kuitenkin asentamaan IDE:n. Toki sä voisit käyttää myös Eclipseä tai jotain muuta IDE:ä, mutta tässä ohje siihen miten homma hoituu NetBeansilla.
NetBeans löytyy Debianin contrib reposta, eli sen pitää olla aktivoituna kuten edellä tehtiin. Netbeansin voi asentaa näin:
# apt-get install netbeans-ide
Kun JDK ja NetBeans on asennettuna sun pitää asentaa vielä Sunin Wireless Toolkit (WTK), jota ei löydy Debianin reposta. Voit hakea WTK-paketin Sunin sivuilta osoitteesta:
http://java.sun.com/javame/downloads/index.jsp
Se minkä sä tuolta haluat on Sun Java Wireless Toolkit 2.5.2 for CLDC. Valitse alustaksi Linux, hyväksy lisenssi ja imuta WTK omalle koneellesi. Sulla pitäisi nyt olla imutettuna tiedosto:
sun_java_wireless_toolkit-2_5_2-linux.bin
tai jotakin vastaavaa, mikäli versio muuttuu jossain välissä.
Avaa terminaali-ikkuna ja siirry siihen hakemistoon johon imutit WTK:n.
Esim:
$ su (anna rootin salasana)
# cd download (hakemisto johon imutit WTK:n)
Aseta suoritusoikeudet imutetulle WTK-tiedostolle:
# chmod x sun_java_wireless_toolkit-2_5_2-linux.bin
Selvitetään seuraavaksi WTK-asennusta varten polku java-hakemistoon
# update-java-alternatives -l
Tuloksena pitäisi olla mm. rivi:
java-6-sun 63 /usr/lib/jvm/java6-sun
pane tuo rivi mieleen.
Suorita WTK-asennusohjelma:
# ./sun_java_wireless_toolkit-2_5_2-linux.bin
Ensin sulle näytetään käyttölisenssi. painele välilyöntiä kunnes sulta kysytään hyväksytkö lisenssin. Kirjota yes ja paina enteriä.
Asennusohjelma sanoo seuravaksi ettei se löydä JDK:ta, eli sun pitää määritellä polku siihen. kirjota siis 0 ja paina enteriä.
Kirjoita tuossa edellä selvitetty polku lisättynä hakemistolla bin, eli sun-java-6:n tapauksessa kirjota tämä rivi ja paina enteriä:
/usr/lib/jvm/java6-sun/bin
Seuraavaksi WTK:n asennusohjelma kysyy mihin haluat asentaa WTK:n. Anna haluamasi polku ja paina enteriä, itse olen käyttänyt polkua:
/usr/local/WTK2.5.2
yhtähyvin voisit asentaa WTK:n esimerkiksi oman kotihakemistosi alle esim: /home/foobar/WTK2.5.2
Seuraavalksi sulta kysytään haluatko WTK:n ilmoittavan uusista päivityksistä, vastaa yes tai no ja paina enteriä.
Seuraavaksi sulle näytetään yhteenveto valinnoistasi, tarkista ne ja jos ne on haluamallasi tavalla vastaa 0 ja paina enteriä. WTK asentuu nyt ja pitäisi olla heti käytettävissä.
Kun WTK on asennettu sun pitää lopuksi kertoa NetBeansille mistä tarvittavat J2ME kehityskamat löytyy.
Käynnistä NetBeans, NetBeans löytyy GNOME-työpöydän valikosta kohdasta:
Programming -> NetBeans IDE
Ohjelmointi -> NetBeans IDE
valitse netBeansin valikoista kohta:
Tools -> Java Platforms
Ruudulle avautuu java platform manageri-ikkuna. Jossa pitäisi näkyä J2SE - JDK 1.6. Klikkaa ikkunan alareunassa "Add Platform" -nappia.
Valitse avautuvassa "add java platform" -ikkunassa "Java ME MIDP Platform Emulator" ja klikkaa ikkunan alareunassa olevaa Next-nappia.
Ruudulle avautuu hakemistovalintaikkuna. Valitse ikkunan vaulla polku /usr/local/WTK2.5.2 tai vaihtoehtoisesti se hakemisto, johon asensit WTK:n. Klikkaa hakemistovalintaikkunassa Search-nappia.
Hakemistovalintaikkuna sulkeutuu. Klikkaa taas "add java platform" -ikkunassa next-nappia. NetBeansin pitäisi nyt tunnistaa WTK. ja ikkunaan pitäisi tulla tälläistä tekstiä:
Platform name: Sun Java(Tm) Wireless toolkit 2.5.2 for CLDC
Klikkaa ikkunan alareunassa Finish-nappia. "java platform manager" -ikkunasa pitäöisi nyt näkyä J2SE:n lisäksi J2ME - Sun java Wireless Toolkit.
Clikkaa ikkunan alareunassa close-nappia. Sulla on nyt täysin toimiva J2ME kehitysympäristö. Tähän asti tehtyjä asioita ei tarvitse enää toistaa jatkossa.
Seuraavaksi voit kokeilla kehitysympäristöä.
Valitse Netbeansin valikosta kohta:
File -> New Project
Ruudulle avautuu projektinluonti-ikkuna. valitse ikkunan vasemmanpuoleisesta listasta "Mobility" ja oikeanpuoleisesta listasta "MIDP Application". klikkaa ikkunan alareunan next-nappia.
Seuraavissa vaiheissa voisit tehdä muutoksia projektin asetuksiin, voit kuitenkin tässä kokeilussa vain klikkailla next nappia ja viinmeiseksi finish-nappia. Tai heti finish-nappia.
NetBeans luo nyt sulle projektin. ikkunan vasemmassa reunassa pitäisi nyt näkyä projekti "MobileApplication1", tai jollakin toisella nimellä jos muutit projektin nimeä projektin asetuksissa. Tuplaklikkaa projektin nimeä, jollon saat näkyviin lähdekoodit. kokeile myös klikata nimen kohdalla aivan vasemmasa reunassa olevaa symbolia niin näetr mitä se tekee.
Nyt sulla on avoinna yksinkertanen projekti, boit koettaa kääntää sen näin. valitse Netbeansin valikosta kohta:
Build -> Build main project
Vaihtoehtoisesti olisit voinut klikata vasemmassa reunassa projektin nimeä oikealla hiiren napilla ja valita valikosta kohdan Build.
Netbeans käänsi nyt projektin, nyt voit koettaa ajaa sen rmulaattorissa. Valitse Netbeansin valikosta kohta:
Run -> run main project
netBeans käynnistää nyt J2ME puhelinemulattorin, jossa sovellus ajetaan. Emulaattorin ikkunassa näkyy HelloMidlet, se on juuri kääntämäsi J2ME MIDletti. Klikkaa emulaattorin näppäimistöltä neliömäistä nappia. Emulaattori käynnistää nyt sovelluksen ja ruudulle pitäisi tulla teksti
hello, hello World!
Jos pääsit tähän asti, onneksi olkoon! olet nyt kääntänyt ja ajanut ensimmäisen J2ME ohjelmasi :)
Tuota vähän arvelinkin, harmi. No virtualisoitu Windows voisi tosiaan olla paras vaihtoehto nykytilanteessa.
Kiitoksia hyvästä ohjeesta, eiköhän tuolla saa homman toimimaan. Mukavaa, että J2ME-koodaus onnistuu Linuxissa ilman virtualisointia tai vastavaa. Nokia voisi ottaa tuosta mallia.
Osaisitko miksuh vielä antaa ohjeen miten Maemo kehitysympäristön saa asennettua Debianiin? Nokian nettitableteille koodaaminenkin kiinnostaisi.
Mä en just nyt ehdi kirjottaa sitä, mutta katotaan ilalla. Mä olen kyllä asentanut itselleni Maemo-kehitysympäristön vaikken nettitablettia omistakaan.
Tulin vasta just äsken kotiin ja väsyttää sen verta paljon, että taidan jättää sen ohjeen kirjottelun huomiseen. Parempi kirjotella huomena senkin takia, että ei tule sitten neuvottua ihan päin honkia väsymyksen takia.
1. osta nettitabletti
2. kirjoita softa pythonilla
3. kopioi softa nettitabletille ja aja.
kehitysympäristö on ihan turhaa painolastia.