Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.

Slides:



Advertisements
Liknende presentasjoner
Generisk nettstruktur inklusive CT-iq Offentlig Nett (ON) Bedriftsinternt Nett (BiN) CTI(opsjon)CT-iq Bedrifts LAN IN lev. LAN InnringerINleverandør(IN)Mobiloperatør(MO)
Advertisements

Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Android-Programmering Våren Google Maps • Installere Google Play Services SDK (må kanskje oppdatere ADT) • Legg til bibliotek som library dependency.
Webprogrammering (LO113A) 1 Kom i gang med PHP. Webprogrammering (LO113A) 2 Mål  Installere Apache og PHP  Konfigurasjon av Apache og PHP  Forstå samspillet.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
JSP presentasjon Arild Strømhylden NTNU 26 June 2014.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Operativsystemer.  En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen.  Ofte vil det være flere prosesser/tråder på datamaskinen.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Objektorientert programmering i PHP del 2
Bakgrunn. Funksjoner. Nøkkelfunksjoner. Application Manager. View Controller. Validation. Dialog Manager. Clay. Tiger extensions.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
Android-Programmering Våren Oversikt – PendingIntents Rollen til PendingIntents Vanlig bruk Deling Sending.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
Strategiske Valg Intern Analyse Ekstern analyse VALG AV HOVEDSTRATEGI
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
Billettautomat med felle. Forbedret automat Klasse og operasjon i aktiviteten Klassen er Billettluke Operasjonen er pengerTilbake() Skilletegnet er dobbelt.
Android-Programmering
The Peer-to-Peer Architecture Av Ingunn Lund og Anja Lønningen.
CARISMA Context-Aware Reflective Middleware System for Mobile Applications.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Eziz Annagurban Veiledere: Sven-Olai Høyland Carsten Helgesen
BlindernLive Anders Evenstuen Henrik Wingerei Jon Torstein Dalen Øyvind Hoff Midtbø.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Android-Programmering Våren Introduksjon ActionBar Behovet for forandring Hva er Android ActionBar Tilpasning av ActionBar ActionBar - versjonshåndtering.
9. Product information Produktinformasjon. Online kjøp Som vi har sett har vi ikke noe produkt å se på, holde i, prøve ut, … Da må vi ta igjen på andre.
Telenors satsing på fri programvare Paul Skrede - GoOpen 2009.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 Best Practice Noe av det som er lurt.
Mer avansert kryptering Mål: Kode et dokument slik at det blir uleselig for de som ikke har kodenøkkelen.
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
Kapittel 23 (Big Java 2.utg) Tråder. Kjøring av tråder Ein tråd er ein del av eit program som blir eksekvert uavhengig av andre deler av programmet Vi.
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
Trafikantens mobile sanntidssystem Presentasjon INF5261.
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 Patching En patch er en fiks for en eller flere feil i et program/operativ.
PRO ISP PRO ISP PRODUKTER Produktveileder Bruker veilederen under for å finne frem til de produktene du behøver. Ta kontakt med.
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
Android-Programmering Våren Oversikt – PendingIntents  Rollen til PendingIntents  Vanlig bruk  Deling  Sending.
Android-Programmering Våren Introduksjon ActionBar  Behovet for forandring  Hva er Android ActionBar  Tilpasning av ActionBar  ActionBar - versjonshåndtering.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
RETNINGSLINJER FOR TELIA NORGE I SOSIALE MEDIER OPPDATERT JANUAR 2017
Android-Programmering
Kalenderfunksjon Parent- app
Android-Programmering
Billettautomat med felle
Project Honolulu - An Island or a new way to manage servers ????????
Presentasjon av Hovedprosjekt Per Storrø Petersen og Jørgen Øvrewall
Nettskjema.no –sikker datainnsamling på nett
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

Android-Programmering Våren 2016

Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task

Ytelse vs responsivitet Forskjellen på ytelse og responsivitet Ytelse: Hvor raskt er det? Responsivitet: Hvor raskt føles det? I brukerorienterte applikasjoner er responsiviteten viktig

Android Oppbygning De fleste applikasjone følger samme oppbygning Instans av Application klassen En eller flere instanser av Activity klassen Flere instanser av View klasser Meny Alt dette kjører i en tråd (Main Thread) Activity, Views, menyer og event handlers

Android Responsivitet Må holde hovedtråden «åpen» for event handeling < 200ms Helst < 100ms Activity Manager og Windows Manager Rensponsivitet og ANR (Application Not Responding) errors Grense på 5 sekunder i hovedtråden

Strategier for og opprettholde responsiviteten Unngå blokkerende operasjoner i hovedtråden Bruke ekstra tråder Bruke servicer

Detektere potensielt blokkerende oppgaver Unngå blokkerende operasjoner i hovedtråden Ingen filsystemoperasjoner Ingen nettverksoperasjoner Vanskelig og vite hva andre bibliotek og API’er gjør Strictmode class kan hjelpe Detektere operasjoner Vanlig å bruke enableDefaults Bruk bare under utvikling

Tråder Ekstra tråder Bra til potensielt blokkerende oppgaver Nyttig til mindre oppgaver Fra 100ms til noen få sekunder Problematisk til oppgaver lenger enn noen få sekunder Kan bli drept

Opprette tråder Bruk Thread klassen til å lage nye tråder Lag en instans av Thread klassen Send inn en implementasjon av Runnable interfacet til Thread konstruktøren Kall Thread.Start De samme trådproblemene gjelder Unngå race conditions Unngå fellesbruk av verdier Unngå å lage mange små tråder ofte

Tråder og brukergrensesnittet Kun trygg oppdatering av brukergrensesnitt fra hovedtråden Helpemetoder Activity.runOnUiThread View.post

Prisen for dedikerte tråder Dedikerte tråder er ikke nødvendigvis beste valget for å forbedre responsiviteten Koster en del ressurser og lage/bryte ned en tråd Mye boiler-plate kode

Asynchronous tasks AsyncTask klassen Designet spesifikt for og opprettholde responsiviteten Deler opp arbeidet Hente informasjon fra brukergrensesnittet og hovedtråden: onPreExecute Arbeid i en tråd i bakgrunnen: doInBackground Oppdatere brukergrensesnittet i hovedtråden: publishProgress/onProgressUpdate Når arbeidet er ferdig, oppdater brukergrensesnittet: onPostExecute Kjører sekvensielt Bedre ressursbruk enn dedikerte tråder Kan bli drept

AsyncTask AsyncTask er en generisk klasse Spesifiserer parametere ved bruk av generiske argumenter til AcyncTask Tillater 3 typer parametere Parametertypen som blir akseptert av execute metoden Blir sendt internt til doInBackground Blir sendt inn som en liste med variabel lengde Parametertypen som sendes fra doInBackground til publishProgress Samme parameter blir sendt internt til onProgressUpdate Blir sendt inn som en liste med variabel lengde Return type fra doInBackground Blir sendt til onPostExecute som en enkelt parameter

Oppsumering Proritere brukergrensesnitt responsivitet Begrens event handler kode på hovedtråden til 100 ms Ikke utfør potensielt blokkerende operasjoner Bruk StrictMode klassen for å avdekke disse operasjonene Bruk AsyncTask til å frigjøre UI tråden Tåder og AsyncTask kan bli drept