Innhold. 1.1.Hva er en avansert mobil enhet?



Like dokumenter
Innhold. Opphavsrett: Forfatteren og Stiftelsen TISIP

2 Grafisk grensesnitt 1

Innhold. 1. Innledning Ofte spurte spørsmål (FAQ) Laste ned 360 eworker fra Apps@Work-applikasjonen Support av løsningen...

JOBOFFICE POCKETLINK FOR ANDROID Installasjons- og klargjøringsprosedyre, del 1

Introduksjon til Min Sky -

Lærebok. Opplæring i CuraGuard. CuraGuard Opplæringsbok, - utviklet av SeniorSaken -

Installere JBuilder Foundation i Mandrake Linux 10.0

Komme igang med App Inventor Introduksjon App Inventor PDF

Forprosjekt gruppe 13

Nedlasting av apper på Apple

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

1. Introduksjon til J2ME

Skilpaddefraktaler Erfaren Python PDF

Brukerveiledning LagerMester ios

Denne brukerguiden beskriver hvordan man går frem for å spille simuleringen Hjørne pushback på web.

Nedlasting av apper på Android

Endringer i Flash CS6 Professional. Innhold. Endringer i forhold til boka. Oppdatering til boka: Multimedieutvikling i Flash CS5 Professional

Hurtigreferanse for installasjon av datakabelen CA-42

Installasjonguide LAG DIN EGEN BRUKERKONTO

1. Intro om SharePoint 2013

Multi-Faktor Autentisering. Brukerveiledning

Steg for steg. Sånn tar du backup av Macen din

Forord Introduksjon til studentresponssystem Hva er et studentresponssystem? Hvorfor bruke SRS?... 3

BRUKERVEILEDNING KID ButikkSim IPAD

1. Hvordan kommer jeg i gang som mcash-bruker?

Generelt om operativsystemer

NetCom Trådløs Bedrift Mobil Sekretær. Brukerveiledning

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang

Tips og triks nettbrett (ios og Android) Kristiansand folkebibliotek

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Veileder for opplasting av AKTIV sporlogg til PC

Presentasjon. Kristian Hewlett- Packard

Komme i gang med Skoleportalen

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Installere JBuilder Foundation i Windows XP

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Vanlige spørsmål. GallupPanelet. TNS Panel-app. TNS Juni 2015 v.1.3

Google Cloud Print-guide

Gruppe 43. Hoved-Prosjekt Forprosjekt

Guide for tilkobling til HIKT s Citrix løsning

Installasjonsveiledning

Virus på Mac? JA! Det finnes. Denne guiden forteller deg hva som er problemet med virus på Mac hva du kan gjøre for å unngå å bli infisert selv

Installasjon av Windows 7 og Office 2016

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren Testrapport

Teori om sikkerhetsteknologier

1. Programmering: Hva og hvorfor? Scratch fra scratch Enkel programmering for nybegynnere

Hei verden Introduksjon Swift PDF

For bruk med applikasjoner som benytter QR-kode-skanner/-leser

DIGITAL SKOLEEKSAMEN FOR STUDENTER VED POLITIHØGSKOLEN

MIDTVEISRAPPORT QUIZ UTVIKLING OG IMPLEMENTERING AV QUIZ PARK SPILLET FRA PC TIL EN MOBIL ENHET. TORE DAHL GAUTE HEGSTAD OVE KRISTENSEN

1. NetBeans IDE: Lage en enkel mobilapplikasjon

MinGat ny innloggingsmetode

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

Straffespark Introduksjon Scratch Lærerveiledning

E-bøker! Seniornett Larvik 26. mai Rigmor Haug Larvik bibliotek

Bygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon

Compello Invoice Approval

Læring. Brukerguide + = Hva er KS Læring? Logg deg på Fra forsiden velg Logg inn i øvre høyre hjørne av skjermen. Utstyr for lyd og bilde

Kom i gang med programmering i Java

Nettbrett og smarttelefoner Kristiansand folkebibliotek

Lumia med Windows Phone

Enklere bank. snn.no/bruk

Innholdsfortegnelse. Side 118 av 135

DIGITAL SKOLEEKSAMEN FOR STUDENTER VED POLITIHØGSKOLEN

Flytte bilder og videoer fra mobil til pc eller disk

Enarmet banditt Nybegynner Scratch Lærerveiledning

SmartPhones. Vi viser vei i din mobile hverdag. Mobile trender og utviklingstrekk i bedriftsmarkedet. SBN Konferansen Stavanger, 26.

AlgDat 12. Forelesning 2. Gunnar Misund

AirPrint-guide. Denne brukermanualen gjelder for følgende modeller: MFC-J6520DW/J6720DW/J6920DW/J6925DW. Version A NOR

Forprosjektrapport. Presentasjon. Studentgruppen. Bekk Consulting AS. Android app for aktivering av jakt- og fiskekort

Introduksjon til Eclipse

Nærmere redegjørelse for alternative løsninger for papirløse møter

Brukerveiledning for nedlastning og installasjon av Office Av Roar Nubdal, fagprøve IKT-servicefag, juni 2014

Denne brukerguiden beskriver hvordan man går frem for å spille simuleringen T2 - Bli Kjent på nettbrett (ipad og Android)

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

Skriv ordbøker og litteratur på Tegnspråk med en nett-tjener i lommeformat! For ivrige Tegnskrift (SignWriting )- brukere!

Hurtigveiledning for Novell Messenger Mobile

Virus på Mac? JA! Det finnes. Denne guiden forteller deg hva som er problemet med virus på Mac hva du kan gjøre for å unngå å bli infisert selv

WINDOWS 10 OPPDATERING HØSTEN 2018 (VERSJON 18.09) HVA ER NYTT?

Smarttelefoner og nettbrett. En veileder

Kjenn din PC (Windows Vista)

Steg 1: Installasjon. Steg 2: Installasjon av programvare. ved nettverkstilkoblingen på baksiden av kameraet. Kameraet vil rotere og tilte automatisk.

Fra datax til Visma eaccounting

JANUAR 2016 TELEFON BRUKERVEILEDNING

Anitool åpner opp for en hel verden av kreative muligheter på nett. Uten koding eller tunge programmer. Dette er enkelt, webbasert og rimelig!

Bridging the gap: taking BIM to the construction site Case: BIM-kiosker på Urbygningen ved NMBU

Kjenn din PC (Windows7)

1. Å lage programmer i C++

Jo, Boka som snakker har så mange muligheter innebygget at den kan brukes fra barnehagen og helt opp til 10. klasse.

Forord. Brukerveiledning

AirPrint-guide. Denne brukermanualen gjelder for følgende modeller: DCP-J4120DW/MFC-J4420DW/J4620DW/ J4625DW/J5320DW/J5620DW/J5625DW/J5720DW/J5920DW

Kjernejournal. Pilotering - Javafri oppkobling

Brukerveiledning Tilkobling Altibox Telefon

Kanter, kanter, mange mangekanter

USER MANUAL

Brukerveiledning for programmet HHR Animalia

Transkript:

Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag 1. Introduksjon og installasjon Tomas Holt 16.08.2012 Lærestoffet er utviklet for faget LN350D Applikasjonsutvikling for mobile enheter 1. Introduksjon og installasjon Resymé: Denne leksjonen er en introduksjon til programmering av mobile enheter. Først kikker vi på hvilke relevante plattformer som finnes for avanserte mobile enheter og så går vi over på å installere nødvendige verktøy for å lage applikasjoner på Android-plattformen. Innhold 1.INTRODUKSJON OG INSTALLASJON...1 1.1.HVA ER EN AVANSERT MOBIL ENHET?...1 1.2.INTRODUKSJON...2 1.3.PLATTFORMER FOR AVANSERTE MOBILE ENHETER...2 1.3.1.Android...3 1.3.2.iOS...3 1.3.3.Symbian...4 1.3.4.Windows 7 Mobile...4 1.3.5.Hvorfor Android?...5 1.4.INTRODUKSJON TIL FAGET OG LEKSJONENE...5 1.5.LÆREBOKA...6 1.6.ANDRE RESSURSER...6 1.7.OM LEKSJONEN...6 1.8.INSTALLASJON...6 1.9.KAPITTEL 1 I BOKA GETTING STARTED WITH ANDROID PROGRAMMING...6 1.10.BOKAS VEDLEGG A OG B...7 1.11.ADB (ANDROID DEBUG BRIDGE)...7 1.12.ANDROID-APPLIKASJONER...7 1.12.1.Aktiviteter...7 1.12.2.Logging...9 2.REFERANSER...10 1.1.Hva er en avansert mobil enhet? Når vi snakker om avanserte mobile enheter så tenker vi i første rekke på enheter som kan holdes i hånda [Def Handheld]. Vi snakker gjerne om smarttelefoner, PDA'er og nå også nettbrett. Vanlige tradisjonelle mobiltelefoner holdes her utenfor (men er åpenbart en håndholdt enhet). Disse er mindre avanserte, har mindre funksjonalitet og prosesseringskraft. Disse enhetene dekker i første rekke muligheten for å ringe og sende meldinger, mens de avanserte mobile

Introduksjon og installasjon av verktøy for Android-utvikling side 2 av 10 enhetene vi snakker om er mye nærmere tradisjonelle PC'er, med unntak av at de er en god del mindre. De har gjerne nettleser, epostleser, mulighet for å vise video osv. 1.2.Introduksjon Apple lanserte smarttelefonen iphone i juni 2007. Enheten ble fort populær som en følge av at man kunne bruke enheten som vanlige mobiltelefoner, men også hadde muligheter som tidligere bare var forbeholdt PDA'er og større enheter. Programmering på mobile enheter har skutt fart etter at lanseringen av iphone. Apple åpnet for utvikling og distribusjon av applikasjoner via en egen distribusjonskanal. Utviklerverktøy gjorde det mulig å enkelt utvikle mobilapplikasjoner for telefonen. Populariteten til iphone, den enkle distribusjonen og muligheten for å selge programvare, har etterhvert tiltrukket seg mange utviklere. Android er et Linux-basert system (open source) for avanserte mobile enheter. Firmaet som startet utviklingen var Android Inc som ble kjøpt opp av Google i 2005. Google har siden vært Android sin største pådriver men utviklingen gjøres gjennom Open Handset Alliance [Open Handset], en gruppe selskaper som samarbeider for utvikling av åpne standarder for mobile enheter. I november 2007 ble Android avdekket for omverdenen. Systemet var i utgangspunktet tiltenkt smarttelefoner, men man ser nå en tendens til at det blir tatt i bruk på alt fra mobiler, nettbrett (tablett maskin), PC'er og TV'er. Også for Android finnes det en egen distribusjonskanal (Android Marked) for applikasjoner. Denne kanalen tilhører ikke Open Handset Alliance, men Google. Marked lar brukere laste ned applikasjoner på samme måte som Apples App Store. Utviklerverktøyene til Android lar oss utvikle applikasjoner i Java (hvor JVM og API har blitt tilpasset mobile enheter). Selve kjernen til Java er bevart, men det er også en del endringer. Bibliotekene for å lage grafiske grensesnitt er fjernet og nye (bedre tilpassede) lagt til. I tillegg kjøres ikke programmer i Android helt på samme måte som på PC. Utvikling for Android krever derfor både å lære seg nye biblioteker og et nytt rammeverk for utviklingen. Rammeverket setter større krav til å følge konvensjoner enn man er vant til fra Java SE (standard edition). 1.3.Plattformer for avanserte mobile enheter Det finnes i dag flere alternative plattformer eller operativsystemer (OS) for avanserte mobile enheter. Operativsystemet er en viktige bestanddel i datasystemer da det er denne programvaren som kobler våre programmer mot maskinvaren. Operativsystemet sørger for å gi programmene tilgang til nødvendige ressurser (prosessor, minne, filer, sensorer osv.) og ikke minst å administrere de ulike programmene. Dette innebærer blant annet å starte og stoppe programmer. Operativsystemet kan også prioritere mellom ulike programmer (mer eksakt prosesser) basert på «viktigheten av» de ulike oppgavene. Åpenbart vil valg av operativsystem kunne ha mye å si om hva slags funksjonalitet som kan tilbys programmererne og ikke minst hvilken maskinvare som kan brukes. For mer informasjon om operativsystemer se [OS]. De mest aktuelle operativsystemene for avanserte mobile enheter er: Android ios (brukes på iphone og ipad)

Introduksjon og installasjon av verktøy for Android-utvikling side 3 av 10 Symbian Windows i flere utgaver, men det er vel i praksis bare Windows 7 Mobile som er særlig aktuell i dag (for nye enheter) La oss se litt nærmere på de forskjellige alternativene. 1.3.1. Android Open Handset Alliance er gruppen av bedrifter som styrer utviklingen av Android. Mange store firma er involverte [Members]. Android er et operativsystem som er basert på Linuxkjernen. Systemet er åpen kildekode (open source) og tilgjengelig under Apache v2 lisens. Dette vil i praksis si at alle har tilgang til kildekoden og kan gjøre de endringene man vil. Man trenger imidlertid ikke å publisere de endringene som gjøres og det er fullt mulig å bruke systemet i kommersiell sammenheng uten å betale noen form for avgift. Dette gjør systemet attraktivt og det er i dag mange forskjellige leverandører som bruker operativsystemet på sine smarttelefoner. Android startet som operativsystem for smarttelefoner, men tilbys i større og større grad også for nettbrett. Nettbrettene er på mange måter like smarttelefonene, men med større skjerm. Det varierer også om man har mulighet til å ringe med dem. Tendensen er også at en del av nettbrettene blir mer en krysning mellom bærbar PC og nettbrett, se [Nettbrett PC]. I tillegg til dette tilpasses Android også til x86 prosessorene [x86org], noe som gjør at man også kan bruke Android på PC'er. Dette er spesielt gunstig for PC'er med beskjeden maskinvare, da responsen i et lett system som Android er mye bedre enn i dagens «normale OS». Toshiba er en av produsentene som tilbyr nett-pc med Android [Toshiba] (riktignok ikke med x86 prosessor). Utvikling på Android-plattformen skjer hovedsaklig gjennom Java, men man kan imidlertid også bruke nativ kode (altså C/C++) om ønskelig. Dette gjøres da ved at man kaller denne koden fra Java-koden (via Java Native Interface). Fordelen med dette er at man stort sett kan lage applikasjonene i Java og får dra nytten av fordelene med dette språket, mens man kan ty til C/C++ der hvor det er gode grunner for det. Hovedårsaker til å velge C/C++ er ytelse eller at man allerede har applikasjoner skrevet i et av disse språkene. Spesielt innenfor spill er dette vanlig, noe som kan gjøre det enklere å få spill over fra andre plattformer til Android. For grafikkakselerering brukes EGL som er et grensesnitt mellom vindussystemet og rendering API'en (f.eks. OpenGL ES). Dette er en åpen standard. Det at man kan bruke OpenGL ES kan være en fordel da denne API'en allerede er utbredt og kan også gjøre det enklere å oversette programmer allerede skrevet i OpenGL. Applikasjoner som lages kan gjøres tilgjengelig for sluttbrukere gjennom Google Play (tidligere Android Marked). Applikasjonen kan distribueres gratis om man vil det, eller man kan ta et ønsket beløp (det er en betalingstjeneste knyttet til markedet). I sistnevnte tilfelle må man betale en avgift (i skrivende stund 30% av salgssummen). 1.3.2. ios ios brukes av Apple som operativsystem i ipad Touch, iphone, ipad og Apple TV. Systemet er lukket (i motsetning til Android) og utvikles kun av Apple. Systemet selges kun på Apple sine egen enheter.

Introduksjon og installasjon av verktøy for Android-utvikling side 4 av 10 Utvikling skjer i Objective-C (noe som også gir mulighet for C/C++). Objective-C gir mulighet for «garbage collection» (som er en av fordelene med Java i forhold til C/C++). En ulempe med Objective-C er at ikke er så mange utviklere som er vant til dette språket i forhold til C/C++. Akkurat som for Android brukes EGL for å akselerere grafikk. Applikasjoner kan gjøres tilgjengelig for sluttbrukere gjennom «App Store», og også her må selger betale 30% avgift på salgsummen på alle applikasjoner. I tillegg så er det en avgift for i det hele tatt kunne legge ut applikasjoner på «App Store». Denne er i dag minst $99 pr år. Forøvrig må alle applikasjoner godkjennes av Apple før de kan distribueres. For mer informasjon om utvikling på denne plattformen se [Dev ios]. 1.3.3. Symbian Dette er et system som opprinnelig ble laget av Symbian Ltd og introdusert allerede i 1999. Målgruppen var PDA'er og mobiltelefoner. Både Sony Ericsson og Nokia har brukt dette systemet på sine enheter. Det virker som om systemet har mistet markedsandeler og ikke lenger er like aktuelt. Symbian Foundation holder nå på med å konvertere systemet. Det skal nå bli fritt å bruke uten lisenspenger og bli åpen kildekode. Nokia synes pr. i dag å være eneste store leverandør som bruker systemet. 1.3.4. Windows 7 Mobile Microsoft har hatt flere operativsystemer (blant annet Windows CE og Windows Mobile) for avanserte mobile enheter. De innså imidlertid at de måtte komme med noe nytt som svar på ios og Android, da Windows Mobile begynte å bli temmelig akterutseilt. Windows Phone 7 ble derfor utviklet fra bunnen av og lansering skjedde i slutten av oktober 2010. Flere store produsenter har varslet at de vil benytte systemet på sine enheter (gjerne i tillegg til Android). Vi kan si i dag at Windows 7 Mobile ikke har erobret noen stor andel av markedet. Det er åpenbart at ios og Android har store markedsandeler allerede som det kan bli vanskelig å erobre. Blant annet så finnes det mange applikasjoner tilgjengelig for disse systemene, mens det i sammenlikning blir få applikasjoner å oppdrive for Windows (foreløpig). Microsoft regner med å få 15 dollar pr. enhet som bruker systemet [Geek]. Utvikling av applikasjoner for plattformen skjer via Microsoft sin.net SDK. Det gjør at man kan bruke språk som C# og Visual Basic til utvikling. Om man vil selge applikasjoner for plattformen kan gjøre dette gjennom [APP HUB]. Også her må det - som for Android og ios - betales en avgift på 30% av salgssummen. Akkurat som for ios så vil applikasjoner måtte gjennom godkjenning av Microsoft. I praksis så forbeholder både Microsoft og Apple seg retten til å bestemme hvilke applikasjoner du kan legge ut. Du kan lese om krav til applikasjonene på [Phone 7 Requirements]. For applikasjoner som trenger grafikkakselerering (typisk spill) har Microsoft valgt å bruk [XNA]. XNA var opprinnelig en API for Xbox, men har senere blitt utvidet. Dette gjør at man kan skrive applikasjoner for Xbox, datamaskiner med Windows og Windows Phone 7 med XNA. Vær imidlertid klar over at det også her kan være nødvendig å betale lisenspenger.

Introduksjon og installasjon av verktøy for Android-utvikling side 5 av 10 1.3.5. Hvorfor Android? Nå har vi kikket på ulike operativsystemer for avanserte mobile enheter. Et spørsmål som man må stille seg som utvikler er hvilken plattform man tror det er best å bruke. I mange sammenhenger kan det nok være aktuelt å oversette applikasjoner til flere enn en av plattformene, men som det kommer fram av sammenlikningen så er ikke dette rett fram. API'ene som brukes er ulike (stort sett), samt at det brukes ulike programmeringsspråk. Vi har i dette faget valgt å bruke Android som plattform. Det har vært diskutert om vi kanskje burde dekke flere plattformer i faget, men vi har funnet ut at dette nok ikke er hensiktsmessig utover omtalen de allerede har fått. Symbian er som omtalt et system som er i en overgangsfase. Man holder nå på å gjøre systemet åpen kildekode, men det virker som om systemet sliter mot konkurrentene (i hvertfall i sin nåværende form). Derfor anses Symbian som mindre aktuell for et slikt fag. Når det gjelder Windows Phone 7 så er dette et forholdsvis ferskt system som foreløpig ikke har tatt særlige andeler av markedet. Dette systemet får nok heller ikke den store utbredelsen da det ikke er så lenge til Windows 8 kommer. Muligens vil dette bli et system som tar store markedsandeler, men pr. i dag så er Android og ios veldig store. Lærestoff er selvsagt også begrenset når det er snakk om så nye systemer. Hva så med ios kontra Android? Dette er begge systemer som har vært en tid på markedet. Android er åpent kontra ios som er lukket. I tillegg så er det snakk om lisenspenger ved bruk av ios. Ellers er Android et system som kan brukes fra alt til smarttelefoner til PC'er, noe som gir et stort potensielt bruksområde. Det at systemet er åpent, fritt og basert på Linux kan potensielt gi tilgang til funksjonalitet fra dette miljøet (som f.eks. drivere til eksterne enheter osv.), samt at man ikke er like sårbar for kromspring fra et enkelt firma. Android programmeres hovedsaklig i Java. Ettersom Java virker å være mest brukt i opplæring så er dette en klar fordel kontra Objective-C. Android har i det store og hele mange forutsetninger for å være en dominerende aktør i OSmarkedet i årene framover. Det er åpent, fritt, fleksibelt og har en solide pådrivere. 1.4.Introduksjon til faget og leksjonene Det vil i dette faget gis ut et antall leksjoner samt øvinger tilknyttet til hver leksjon. Leksjonene er skrevet for gi oss som faglærere muligheten til å framheve ting som er spesielt viktig eller å klargjøre tema som ikke er bra nok dekket av læreboka. Vi vil i hver leksjon spesifisere hva som skal leses i læreboka. I en del tilfeller vil det være naturlig å også referere til stoff fra andre plasser. For deg som student vil leksjonene og øvingene definere «pensum». I tillegg kan det selvsagt være aktuelt for deg å finne informasjon utover dette på egen hånd (kanskje spesielt i forhold til prosjektøvingen som skal utføres). Her kan andre bøker være aktuelle, men det er i mange tilfeller mest nærliggende å bruke web til slike ting. Det har etter hvert blitt mye informasjon tilgjengelig på nett for Android-utviklere. I leksjonene vil det være en del referanser merket slik [Referanser]. Du vil kunne finne hva denne referansen betyr under kapitlet «Referanser» i slutten av leksjonene. Disse referansene kan f.eks. være relatert til nettlenker, bøker, kode osv.

Introduksjon og installasjon av verktøy for Android-utvikling side 6 av 10 1.5.Læreboka Vi har valgt læreboka [Lærebok] etter en sammenlikning med andre aktuelle bøker for Android 4 på våren 2012. Fordelen med boka er at den er oppdatert for siste Android-versjon og forholdsvis kortfattet. Det er viktig at det ikke blir for mye detaljer når man skal lære temaet. Ettersom faget også skal kunne tas av folk uten mye Java-kompetanse er det viktig at læreterskelen ikke blir for høy. Dette gjør imidlertid at det kan være nødvendig/nyttig å hente informasjon fra andre plasser. Læreboka inneholder til hvert kapittel spørsmål (og svar) som kan være fornuftig å bryne seg på. I tillegg så er det egne «try it out» felter som oppfordrer leseren til selv å prøve ulike oppgaver. Det vil absolutt være lurt å prøve ting selv i praksis og ikke bare lese det som står. I bokas introduksjonskapitel finnes informasjon om hvordan du kan laste ned kildekoden til eksemplene, samt feilrettinger (på feil i boka). 1.6.Andre ressurser Du bør gjøre deg kjent med ressursene her. Dette vil gjøre det enklere når du trenger mer informasjon enn det som gis gjennom lærematerialet i faget. Spesielt vil [Android Developer] være en fin plass å finne informasjon. Her kan du finne informasjon, eksempler og ikke minst API-dokumentasjon [API Dok]. Denne er viktig for å finne ut hvilke metoder og funksjonalitet de ulike klassene kan tilby! [Anddev] er et forum for Android-utvikling. Her vil det være mulig å finne svar på mange problemer, det er mulig å stille spørsmål til likesinnede og det finnes veiledninger (tutorials) på hvordan man kan løse ulike oppgaver. [Developer] er et generelt nettsted for utviklere. 1.7.Om leksjonen Denne leksjonen omhandler kapittel 1, starten av kapittel 2 (s. 35-40), samt vedleggene (appendix) A og B i læreboka. Du må derfor lese det som står i boka, men du kan fortsette å lese under før du begynner med boka. 1.8.Installasjon For å starte å utvikle applikasjoner trenger vi å installere nødvendige utviklingsverktøy. Dette er beskrevet i kapittel 1. Om du under installasjonen må sette miljøvariabelen/systemvariabelen PATH så kan du lese skrivet «Miljøvariabler» som ligger sammen med denne leksjonen (om du ikke vet hvordan det gjøres). Om du ikke ønsker å bruke installasjonsbeskrivelsen i boka se i stedet på [Android Install]. 1.9.Kapittel 1 i boka Getting started with Android programming Første del av kapitelet er en introduksjon til Android og har noe overlappende innhold med det som står tidligere i denne leksjonen. Etterpå gås det igjennom nedlasting og installasjon av

Introduksjon og installasjon av verktøy for Android-utvikling side 7 av 10 nødvendige verktøy for å utvikle på Android-plattformen. Du kan finne helt oppdatert beskrivelse av hvordan du gjør dette for både Windows, Linux og Mac på [Android Install]. Naturlig nok blir neste steg å lage en liten applikasjon og teste denne. Det gjøres via Eclipse IDE og AVD (emulator). Merk at det også er mulig å koble til en ordentlig Android-enhet og å kjøre koden direkte på denne. Enheten vil da kunne velges på samme måte som AVD ble valgt i bokas veiledning. Til slutt finner du en oversikt over bestanddelene av en Androidapplikasjon/prosjekt. Merk 1: Emulatoren trenger lang tid på å starte (kan ta flere minutter på treg maskin)! Det kan virke som om systemet har hengt seg når du starter kjøring av koden første gang (og emulatoren må starte). Vær tålmodig, lastingen tar lang tid ved oppstart, men dette gjelder kun ved oppstart. Nye kjøringer vil bruke den samme emulatoren (og vi slipper dermed å laste den på nytt). Merk 2: Jeg har hatt litt problemer med å kjøre på ekte enhet fra Linux-maskin. Løsningen er beskrevet på [Bug Linux], men i tillegg så må følgende kjøres fra kommandolinja før Eclipse startes (forutsetter at PATH-variabel er satt riktig under installasjon): sudo adb devices 1.10.Bokas vedlegg A og B Disse vedleggene har mye nyttig informasjon om bruk av de verktøyene som ble installert i kapittel 1. Begge disse vedleggene bør derfor leses og brukes i praksis. 1.11.ADB (Android Debug Bridge) Adb (Android Debug Bridge) omtales ikke i boka. Dette er et verktøy du normalt ikke vil ha særlig bruk for, men som det likevel er greit å vite at finnes. Adb er et verktøy som lar deg styre tilstanden til emulatorene og/eller Android-enheter. Jeg har allerede flere ganger vært nødt til å bruke verktøyet i forbindelse med utvikling. Den meste sannsynlige bruken du får for adb i dette faget er om det skulle oppstå problemer med å få kjørt en endret applikasjon på emulatoren. Det hender at emulatoren ikke klarer å oppdatere seg i dette tilfellet, og man får da beskjed om å kjøre kommandoen adb uninstall APPLIKASJONSNAVN.apk. Dette vil fjerne den gamle versjonen og gjøre det mulig å kjøre den nye (fra Eclipse). For mer informasjon,se [Adb]. 1.12.Android-applikasjoner På side 35-40 i kapittel 2 er det forklart litt dypere hvordan en aktivitet («hovedklassen» for en Android-applikasjon) er bygd opp. På nåværende tidspunkt kan nok en del av dette virke ullent, men det er ingen grunn til å fortvile, dette er noe vi skal jobbe med utover i faget. Du kan nå gjerne lese det som står i boka og så komme tilbake til det som kommer under etterpå.

Introduksjon og installasjon av verktøy for Android-utvikling side 8 av 10 1.12.1. Aktiviteter Som det kommer fram i boka så er alle Android-applikasjoner basert på minst en aktivitet. Det vil si at man bestandig har en klasse som arver (extends) Activity-klassen. Du kan selv se dette i egen applikasjon som du lagde i kapittel 1 (HelloWorldActivity). Aktiviteten blir startet av Android-operativsystemet, og det vil kalles spesifikke livsyklus-metoder på aktivitetsobjektet. Du finner disse metodene beskrevet i figuren på side 37 i boka. Du kan f.eks. se at den første metoden som vil kalles er oncreate(). Du vil også se at du har implementert denne metoden i din egen kode. Hva så med de andre metodene som er beskrevet (onstart(), onresume(), onpause() osv.)? Disse metodene har du kanskje ikke i din egen aktivitetsklasse? Saken er at når du arver fra Activity så arver du også alle metodene i denne klassen. Metodene «finnes» dermed også i din klasse, selv uten at du lager dem! Du bør nå selv sjekke ut [API dok] for Activity. I de tilfellene hvor vi ønsker å legge til vårt eget innhold i livsyklusmetodene gjør vi dette gjennom å lage metoden på nytt i klassen vår (dette gjør at denne metoden brukes og ikke den som ligger i Activity-klassen). Det er dette du gjorde når du implementerte oncreate()- metoden. La oss ta et lite eksempel for å avmystifisere det hele litt. Man kan få inntrykk av at programmering for Android er veldig ulikt det man er vant til med fra før (med alle ressursene og rammeverket som brukes). Det er selvsagt grunner til at man har laget rammeverket slik man har gjort for Android, men det er fortsatt mulig å gjøre det meste i kode (selv om det kanskje ikke alltid er hensiktsmessig). La oss se på hvordan man kan lage en enkel meny i kode (og ikke via xml-filer). Ved å kikke i API-dokumentasjonen [API Dok] for Activity-klassen så vil du se at det finnes en metode som heter oncreateoptionsmenu(). Ved å lese det som står i APIdokumentasjonen for denne metoden finner vi ut at det ikke er så mye som skal til for å legge til en meny til aktiviteten vår. Hver aktivitet lager faktisk en meny selv, og metoden oncreateoptionsmenu() kalles automatisk slik at vi kan legge til egne menyinnslag om vi ønsker det. Prøv selv å legge til følgende kode i aktivitetsklassen din (husk også å importere klassene Log, Menu og MenuItem).

Introduksjon og installasjon av verktøy for Android-utvikling side 9 av 10 public boolean oncreateoptionsmenu(menu meny){ } super.oncreateoptionsmenu(meny);//kaller metoden som vi arver, er dog ikke nødvendig meny.add("valg 1"); //legger til meny-valg med teksten «Valg 1» meny.add("valg 2"); Log.i("onCreateOptionsMenu()","meny laget"); //skriver ut til logg, vises i LogCat return true; //true her gjør at menyen vil vises Når du har lagt til koden over og kjører applikasjonen på nytt vil du med å trykke på Menuknappen se en meny med to valg («Valg 1» og «Valg 2»). Det var vel ikke så vanskelig :-) Ved å kikke litt mer i API-dokumentasjonen for oncreateoptionsmenu() står det at metoden onoptionsitemselected(menuitem item) håndterer menyvalg. Kikker vi litt nøyere på det som står (og kanskje også litt på MenuItem) kan vi konkludere med at følgende kode vil gi oss muligheten til å håndtere om brukeren velger menyen «Valg 1»: public boolean onoptionsitemselected(menuitem item){ } if (item.gettitle().equals("valg 1")){ } Log.i("onOptionsItemSelected()","Valg 1 er trykket av brukeren"); return true; //hvorfor true her? Se API-dokumentasjonen!! Jeg håper nå å ha avmystifisert Android-applikasjoner litt, og også å framhevet nødvendigheten/viktigheten av API-dokumentasjonen. Dette er en meget aktuell plass å finne nødvendig informasjon. Det er dog ikke alltid like enkelt å finne fram i denne dokumentasjonen (uten at man har en del kunnskap på plass), og den vil derfor være et supplement til boka og andre kilder som f.eks. [Android DevGuide] som innholder en mer forklarende tilnærming enn det API-dokumentasjonen gjør (mens denne går mer i detalj). Ved å gå inn på [Android DevGuide Menus] kan du se en mer fyldig beskrivelse av hvordan bruke menyer. Vær imidlertid klar over at man der har valgt å skille mye ut i xml-filer i stedet for å kode direkte i Java. Dette har fordeler (mer om dette lenger ut i faget), men øker læreterskelen noe for oss som er vant med å kode direkte i Java. 1.12.2. Logging Logging (gjennom bruk av Log-klassen) se 38-40 i boka - er fint for debugging via LogCat i Eclipse (synlig i Debug og DDMS perspektivene).

Introduksjon og installasjon av verktøy for Android-utvikling side 10 av 10 2. Referanser [Adb] - http://developer.android.com/guide/developing/tools/adb.html [Anddev] - http://anddev.org [Android Developer] - http://developer.android.com/ [Android DevGuide] - http://developer.android.com/guide/index.html [Android DevGuide Menus] http://developer.android.com/guide/topics/ui/menus.html [Android Install] - http://developer.android.com/sdk/installing.html [API Dok] - http://developer.android.com/reference/classes.html [APP HUB] - http://create.msdn.com/en- US/home/about/app_submission_walkthrough_upload - http://developer.android.com/guide/developing/device.html#setting- [Bug Linux] up [Def Handheld] - http://en.wikipedia.org/wiki/mobile_device [Developer] - http://developer.com [Dev ios] - http://developer.apple.com/ [Geek] - http://www.geek.com/articles/mobile/microsoft-to-gamble-billionson-windows-phone-7-20100827/ [Handholdt] - http://en.wikipedia.org/wiki/mobile_device [Lærebok] - Beginning Android 4 Application Development. [Phone 7 Requirements] - http://go.microsoft.com/?linkid=9730558 [Members] - http://www.openhandsetalliance.com/oha_members.html [Nettbrett PC] - http://www.dinside.no/859527/asus-lanserer-fire-nettbrett [Open Handset] - http://www.openhandsetalliance.com/index.html [OS] - http://en.wikipedia.org/wiki/operating_system [Toshiba] - http://www.digi.no/849215/interessant-android-pc-fra-toshiba [x86org] - http://www.android-x86.org/ [XNA] - http://en.wikipedia.org/wiki/microsoft_xna