SlideShare a Scribd company logo
Android 101Introduksjon til AndroidTruls Jørgensenog Are Wold8. september 2010
TrulsAre
Bidragsyterefra Android fokusgruppeHans Petter EideKnut BjørnarWålberg© 2010 Capgemini. All rights reserved.3
Agenda© 2010 Capgemini. All rights reserved.
BakgrunnAndroid kjøpesoppav Google i 2005 Googlesmotivasjon"Bedretjenesterogbrukeropplevelsepåmobilgirmermobilnettbrukogmerpengerireklamekassatil Google" (Computerworld UK)"Merinnovasjonpå mobile plattformer", "The world was broken"-  Rich Miner, Google SidekickT-Mobile G1 / HTC DreamNexus One© 2010 Capgemini. All rights reserved.
Android!"The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation"- Andy Rubin, Google © 2010 Capgemini. All rights reserved.
© 2010 Capgemini. All rights reserved.
! Android…© 2010 Capgemini. All rights reserved.
Business case - markedsandeler13%13%3%17%© 2010 Capgemini. All rights reserved.
Utviklingsverktøy og dokumentasjonTilgjengeligeutviklingsplattformerEclipse, SDKEmulator, ADB, SQLiteDebugging på deviceDalvik debug monitor - tilstandpåenhetenLogCatOnline API reference, Java stylehttp://developer.android.com© 2010 Capgemini. All rights reserved.
..and now for somethingcompletelydifferent!
JZinemaBETA!(butreleasingon time)© 2010 Capgemini. All rights reserved.
Byggeklosser  i Android© 2010 Capgemini. All rights reserved.
Byggeklosser  i Android© 2010 Capgemini. All rights reserved.
IntentIntentActivities og intents© 2010 Capgemini. All rights reserved.IntentMovieListActivityMovieDetailActivity(eksterne Activities)
Skjermbilder© 2010 Capgemini. All rights reserved.
Fra XML til Java© 2010 Capgemini. All rights reserved.// res/layout/movie_list.xml<Button android:id="@+id/select_city_button“  android:textSize="20dp” />// R.java public static final class id {     (…)     public static final intselect_city_button=0x7f070016; }// MovieListActivity.java mCinemaButton = (Button) findViewById(R.id.select_city_button);
MovieList.xml<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#FFFFFF" 	  (…) 	 	 <Button android:id="@+id/movie_list_cinema" android:textSize="20dp"android:background="@drawable/select_city_button"android:text=“@string/select_city_text“ /></LinearLayout>Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.res/values/string.xml:(…)<stringname=”select_city_text">Velgby</string>
Activity – MovieListActivity.javapublicclassMovieListActivityextendsListActivity {	(…)/** Called when the activity is first created. */@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.movie_list);mMovieListHeader = (TextView) findViewById(R.id.movie_list_header);currentCity = getSelectedCity();mMovieListHeader.setText(getString(R.string.header_text_now_showing_in) + currentCity);updateMoviesForCity(currentCity);	   (…)	}}Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
Byggeklosser  i Android© 2010 Capgemini. All rights reserved.
KommunikasjonmellomkomponenterIntents kan:
Starte en Activity – spesifisert, eller ikke
Sende en melding til systemet
Starte eller koble på en Service© 2010 Capgemini. All rights reserved.
Intents mellom activites© 2010 Capgemini. All rights reserved.// MovieListActivity.javafinal Intent intent = new Intent(this, MovieDetails.class);intent.putExtra(MoviesProvider._ID, id);startActivity(intent);// MovieDetailsActivity.javafinalIntentintent = getIntent();long id = intent.getExtras().getLong(MoviesProvider._ID);Insert "Title, Author, Date"
Intents mellom applikasjoner© 2010 Capgemini. All rights reserved.// MovieDetailsActivity.javafinal Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(buyTicketLink));startActivity(intent);// MovieDetailsActivity.javafinal Intent intent= new Intent(Intent.ACTION_VIEW);intent.setDataAndType(   	Uri.parse(mMovieDetailsTrailerUrl),"video/*");startActivity(intent);
Byggeklosser  i Android© 2010 Capgemini. All rights reserved.
Content ProviderWrapper rundt en datakildeFor data somønskestilbudttilandreapplikasjoner (egentlig) Standardiserttilgangtil data vhaCONTENT_URI:content://no.jzinema.provider.Movies/movies© 2010 Capgemini. All rights reserved.
Content Provider: Persistering© 2010 Capgemini. All rights reserved.ContentProviderSqlite DB// Lagre en film// CONTENT_URI: content://no.jzinema.provider.Movies/moviesUriuri = mContext.getContentResolver().insert(MoviesProvider.CONTENT_URI, values);
Content Provider: Henting av data© 2010 Capgemini. All rights reserved.ContentProviderSqlite DB// MovieDetailsActiviy.java henter en film: //content://no.jzinema.provider.Movies/movies/5Cursor c = managedQuery(ContentUris.withAppendedId(MoviesProvider.CONTENT_URI, _id),         null, null, null, null);// MovieListActivity.java spør // (blant annet) etter alle filmers idCursor c = managedQuery(MoviesProvider.CONTENT_URI, COLUMN_ID, null, null, null);
MoviesContentProvider.javapublicclassMoviesProviderextendsContentProvider {	publicstaticfinal String AUTHORITY = "no.jzinema.provider.Movies";publicstaticfinal Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/movies");@OverridepublicbooleanonCreate(…)@Overridepublic Uri insert(…) @Override	public Cursor query(…)@Override	publicint update(…)@Override	publicint delete(…) @Override	public String getType(…)}Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
MovieListActivity: Cursor og CursorAdapter© 2010 Capgemini. All rights reserved.// Alle filmer i en byCursor cursor = getContentResolver().query(  MoviesProvider.CONTENT_URI, COLUMNS,MovieConstants.ATTRIBUTE_ID + " IN (" + movieIds + ")", null, null);startManagingCursor(cursor);// Opprett et cursorAdaptersombenyttercursorentil å populerehverradi listen mAdapter = newMovieListCursorAdapter (this, R.layout.movie_list_row, cursor, COLUMNS, VIEWS_IN_LIST_ROW);// ListActivitytrenger et adapter.this.setListAdapter(mAdapter);ContentProviderSqlite DB
DEMO:Live debuggingInsert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
Byggeklosser  i Android© 2010 Capgemini. All rights reserved.
KonfigureringAndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="no.capgemini.jzinema” android:versionCode="1” android:versionName="1.0"><!-- Permissions --><uses-permission android:name="android.permission.INTERNET" /><application android:icon="@drawable/icon" android:label="@string/app_name" 	android:debuggable="true">		<!-- Activity for showing a list of movies currently running in the cinemas-->		<activity android:name=".MovieList“>	         <intent-filter><category android:name="android.intent.category.LAUNCHER" /><action android:name="no.capgemini.jzinema.SHOW_MOVIELIST" /></intent-filter></activity><providerandroid:authorities="no.jzinema.provider.Movies“android:name=".provider.MoviesProvider“ />	</application><uses-sdkandroid:minSdkVersion=“4" /></manifest>© 2010 Capgemini. All rights reserved.
AndroidManifest.xml  - utdrag<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="no.capgemini.jzinema” android:versionCode="1” android:versionName="1.0"><!-- Permissions --><uses-permission android:name="android.permission.INTERNET" />	 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><application android:icon="@drawable/icon" android:label="@string/app_name"><!-- Activity for showing a list of movies currently running in the cinemas. --><activity android:name=".activity.movielist.MovieListActivity"android:label="@string/app_name"android:configChanges="orientation"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><providerandroid:authorities="no.jzinema.provider.Movies“android:name=".provider.MoviesProvider“ />	</application><uses-sdkandroid:minSdkVersion=“4" /></manifest>Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
Strukturen i en Android-app ligner på en webapp© 2010 Capgemini. All rights reserved.
Testing på Android© 2010 Capgemini. All rights reserved.
DEMO RobotiumInsert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
Andre byggeklosser  i Android© 2010 Capgemini. All rights reserved.
En mobil har sine begrensningerStrømDatatrafikkBegrenset hardwareCursors, liksom?Komplekse livssykluserMultitasking© 2010 Capgemini. All rights reserved.
Aktivitet starterForenkletlivssyklus for en ActivityonCreate()Bruker går tilbake til aktivitetenonStart()onRestart()onResume()Prosess dreptAktivitet kjørerAktivitet havner i forgrunnenAktivitet havner i bakgrunnenAktivitet havner i forgrunnenonSaveInstanceState()onPause()Lavt minneAktiviteten er usynligonStop()Aktivitet avsluttetLavt minne,finish()onDestroy()© 2010 Capgemini. All rights reserved.
Ytelse foran altBest practices i Java !=  Best practices i Android
Hissig GarbageCollection
Du veit aldri når’em kommer
Nettverk kan være tregt og dyrt
Tenk lokal caching
Trådhåndtering:

More Related Content

PDF
3D Touch: Preparando sua app para o futuro do iOS
PDF
Git datamodell
PPT
Produktive Utviklere Smidig2009
PDF
Testdrevet javautvikling på objektorienterte skinner
PDF
Study: The Future of VR, AR and Self-Driving Cars
PDF
Hype vs. Reality: The AI Explainer
PDF
embedding web browser in your app
PDF
Stmik bandung
3D Touch: Preparando sua app para o futuro do iOS
Git datamodell
Produktive Utviklere Smidig2009
Testdrevet javautvikling på objektorienterte skinner
Study: The Future of VR, AR and Self-Driving Cars
Hype vs. Reality: The AI Explainer
embedding web browser in your app
Stmik bandung

Similar to Android101 : Introduksjon til Android (20)

PDF
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
PDF
PhoneGap, Backbone & Javascript
PDF
Automated testing of mobile applications on multiple platforms
PPTX
ProTips DroidCon Paris 2013
PDF
Android Workshop 2013
KEY
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
ZIP
iPhone/iPad Development with Titanium
PPTX
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
PDF
Developer Student Clubs NUK - Flutter for Beginners
PDF
Opticon 2015 - Getting Started with the Optimizely Developer Platform
PDF
UberFire Quick Intro and Overview (early beta Aug 2013)
PPTX
Mobile App Development: Primi passi con NativeScript e Angular 2
PDF
IT3681 - MOBILE_APPLICATIONS_DEVELOPMENT_LABORATORY (1).pdf
ODP
Android For All The Things
PDF
ハンズオン資料 電話を作ろう(v2.x用)
PDF
Android is not just mobile
PPTX
Use Eclipse technologies to build a modern embedded IDE
PDF
Android - Open Source Bridge 2011
PDF
Top Tips for Android UIs
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
PhoneGap, Backbone & Javascript
Automated testing of mobile applications on multiple platforms
ProTips DroidCon Paris 2013
Android Workshop 2013
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
iPhone/iPad Development with Titanium
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Developer Student Clubs NUK - Flutter for Beginners
Opticon 2015 - Getting Started with the Optimizely Developer Platform
UberFire Quick Intro and Overview (early beta Aug 2013)
Mobile App Development: Primi passi con NativeScript e Angular 2
IT3681 - MOBILE_APPLICATIONS_DEVELOPMENT_LABORATORY (1).pdf
Android For All The Things
ハンズオン資料 電話を作ろう(v2.x用)
Android is not just mobile
Use Eclipse technologies to build a modern embedded IDE
Android - Open Source Bridge 2011
Top Tips for Android UIs
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Ad

More from Truls Jørgensen (9)

PDF
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
PDF
Smidig i coronakrise
PDF
Continuous monitoring
PDF
Open source all the offentlig things
PDF
Software er politikk
PDF
From 4 releases a year to once every other minute
PDF
Alignment in the age of autonomy
PDF
The systems behind the best welfare state in the world
PDF
Systemene bak verdens beste velferdsstat
Optimising for Fast Flow in Norway's Largest Bureaucracy04042022.pdf
Smidig i coronakrise
Continuous monitoring
Open source all the offentlig things
Software er politikk
From 4 releases a year to once every other minute
Alignment in the age of autonomy
The systems behind the best welfare state in the world
Systemene bak verdens beste velferdsstat
Ad

Recently uploaded (20)

PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
A comparative analysis of optical character recognition models for extracting...
Group 1 Presentation -Planning and Decision Making .pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Spectral efficient network and resource selection model in 5G networks
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TLE Review Electricity (Electricity).pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
OMC Textile Division Presentation 2021.pptx
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Programs and apps: productivity, graphics, security and other tools
Univ-Connecticut-ChatGPT-Presentaion.pdf
A comparative study of natural language inference in Swahili using monolingua...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Digital-Transformation-Roadmap-for-Companies.pptx

Android101 : Introduksjon til Android

  • 1. Android 101Introduksjon til AndroidTruls Jørgensenog Are Wold8. september 2010
  • 3. Bidragsyterefra Android fokusgruppeHans Petter EideKnut BjørnarWålberg© 2010 Capgemini. All rights reserved.3
  • 4. Agenda© 2010 Capgemini. All rights reserved.
  • 5. BakgrunnAndroid kjøpesoppav Google i 2005 Googlesmotivasjon"Bedretjenesterogbrukeropplevelsepåmobilgirmermobilnettbrukogmerpengerireklamekassatil Google" (Computerworld UK)"Merinnovasjonpå mobile plattformer", "The world was broken"-  Rich Miner, Google SidekickT-Mobile G1 / HTC DreamNexus One© 2010 Capgemini. All rights reserved.
  • 6. Android!"The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation"- Andy Rubin, Google © 2010 Capgemini. All rights reserved.
  • 7. © 2010 Capgemini. All rights reserved.
  • 8. ! Android…© 2010 Capgemini. All rights reserved.
  • 9. Business case - markedsandeler13%13%3%17%© 2010 Capgemini. All rights reserved.
  • 10. Utviklingsverktøy og dokumentasjonTilgjengeligeutviklingsplattformerEclipse, SDKEmulator, ADB, SQLiteDebugging på deviceDalvik debug monitor - tilstandpåenhetenLogCatOnline API reference, Java stylehttp://developer.android.com© 2010 Capgemini. All rights reserved.
  • 11. ..and now for somethingcompletelydifferent!
  • 12. JZinemaBETA!(butreleasingon time)© 2010 Capgemini. All rights reserved.
  • 13. Byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 14. Byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 15. IntentIntentActivities og intents© 2010 Capgemini. All rights reserved.IntentMovieListActivityMovieDetailActivity(eksterne Activities)
  • 16. Skjermbilder© 2010 Capgemini. All rights reserved.
  • 17. Fra XML til Java© 2010 Capgemini. All rights reserved.// res/layout/movie_list.xml<Button android:id="@+id/select_city_button“ android:textSize="20dp” />// R.java public static final class id { (…) public static final intselect_city_button=0x7f070016; }// MovieListActivity.java mCinemaButton = (Button) findViewById(R.id.select_city_button);
  • 18. MovieList.xml<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#FFFFFF" (…) <Button android:id="@+id/movie_list_cinema" android:textSize="20dp"android:background="@drawable/select_city_button"android:text=“@string/select_city_text“ /></LinearLayout>Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.res/values/string.xml:(…)<stringname=”select_city_text">Velgby</string>
  • 19. Activity – MovieListActivity.javapublicclassMovieListActivityextendsListActivity { (…)/** Called when the activity is first created. */@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.movie_list);mMovieListHeader = (TextView) findViewById(R.id.movie_list_header);currentCity = getSelectedCity();mMovieListHeader.setText(getString(R.string.header_text_now_showing_in) + currentCity);updateMoviesForCity(currentCity); (…) }}Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
  • 20. Byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 22. Starte en Activity – spesifisert, eller ikke
  • 23. Sende en melding til systemet
  • 24. Starte eller koble på en Service© 2010 Capgemini. All rights reserved.
  • 25. Intents mellom activites© 2010 Capgemini. All rights reserved.// MovieListActivity.javafinal Intent intent = new Intent(this, MovieDetails.class);intent.putExtra(MoviesProvider._ID, id);startActivity(intent);// MovieDetailsActivity.javafinalIntentintent = getIntent();long id = intent.getExtras().getLong(MoviesProvider._ID);Insert "Title, Author, Date"
  • 26. Intents mellom applikasjoner© 2010 Capgemini. All rights reserved.// MovieDetailsActivity.javafinal Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse(buyTicketLink));startActivity(intent);// MovieDetailsActivity.javafinal Intent intent= new Intent(Intent.ACTION_VIEW);intent.setDataAndType( Uri.parse(mMovieDetailsTrailerUrl),"video/*");startActivity(intent);
  • 27. Byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 28. Content ProviderWrapper rundt en datakildeFor data somønskestilbudttilandreapplikasjoner (egentlig) Standardiserttilgangtil data vhaCONTENT_URI:content://no.jzinema.provider.Movies/movies© 2010 Capgemini. All rights reserved.
  • 29. Content Provider: Persistering© 2010 Capgemini. All rights reserved.ContentProviderSqlite DB// Lagre en film// CONTENT_URI: content://no.jzinema.provider.Movies/moviesUriuri = mContext.getContentResolver().insert(MoviesProvider.CONTENT_URI, values);
  • 30. Content Provider: Henting av data© 2010 Capgemini. All rights reserved.ContentProviderSqlite DB// MovieDetailsActiviy.java henter en film: //content://no.jzinema.provider.Movies/movies/5Cursor c = managedQuery(ContentUris.withAppendedId(MoviesProvider.CONTENT_URI, _id), null, null, null, null);// MovieListActivity.java spør // (blant annet) etter alle filmers idCursor c = managedQuery(MoviesProvider.CONTENT_URI, COLUMN_ID, null, null, null);
  • 31. MoviesContentProvider.javapublicclassMoviesProviderextendsContentProvider { publicstaticfinal String AUTHORITY = "no.jzinema.provider.Movies";publicstaticfinal Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/movies");@OverridepublicbooleanonCreate(…)@Overridepublic Uri insert(…) @Override public Cursor query(…)@Override publicint update(…)@Override publicint delete(…) @Override public String getType(…)}Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
  • 32. MovieListActivity: Cursor og CursorAdapter© 2010 Capgemini. All rights reserved.// Alle filmer i en byCursor cursor = getContentResolver().query( MoviesProvider.CONTENT_URI, COLUMNS,MovieConstants.ATTRIBUTE_ID + " IN (" + movieIds + ")", null, null);startManagingCursor(cursor);// Opprett et cursorAdaptersombenyttercursorentil å populerehverradi listen mAdapter = newMovieListCursorAdapter (this, R.layout.movie_list_row, cursor, COLUMNS, VIEWS_IN_LIST_ROW);// ListActivitytrenger et adapter.this.setListAdapter(mAdapter);ContentProviderSqlite DB
  • 33. DEMO:Live debuggingInsert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
  • 34. Byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 35. KonfigureringAndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="no.capgemini.jzinema” android:versionCode="1” android:versionName="1.0"><!-- Permissions --><uses-permission android:name="android.permission.INTERNET" /><application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> <!-- Activity for showing a list of movies currently running in the cinemas--> <activity android:name=".MovieList“> <intent-filter><category android:name="android.intent.category.LAUNCHER" /><action android:name="no.capgemini.jzinema.SHOW_MOVIELIST" /></intent-filter></activity><providerandroid:authorities="no.jzinema.provider.Movies“android:name=".provider.MoviesProvider“ /> </application><uses-sdkandroid:minSdkVersion=“4" /></manifest>© 2010 Capgemini. All rights reserved.
  • 36. AndroidManifest.xml - utdrag<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="no.capgemini.jzinema” android:versionCode="1” android:versionName="1.0"><!-- Permissions --><uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><application android:icon="@drawable/icon" android:label="@string/app_name"><!-- Activity for showing a list of movies currently running in the cinemas. --><activity android:name=".activity.movielist.MovieListActivity"android:label="@string/app_name"android:configChanges="orientation"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><providerandroid:authorities="no.jzinema.provider.Movies“android:name=".provider.MoviesProvider“ /> </application><uses-sdkandroid:minSdkVersion=“4" /></manifest>Insert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
  • 37. Strukturen i en Android-app ligner på en webapp© 2010 Capgemini. All rights reserved.
  • 38. Testing på Android© 2010 Capgemini. All rights reserved.
  • 39. DEMO RobotiumInsert "Title, Author, Date"© 2010 Capgemini. All rights reserved.
  • 40. Andre byggeklosser i Android© 2010 Capgemini. All rights reserved.
  • 41. En mobil har sine begrensningerStrømDatatrafikkBegrenset hardwareCursors, liksom?Komplekse livssykluserMultitasking© 2010 Capgemini. All rights reserved.
  • 42. Aktivitet starterForenkletlivssyklus for en ActivityonCreate()Bruker går tilbake til aktivitetenonStart()onRestart()onResume()Prosess dreptAktivitet kjørerAktivitet havner i forgrunnenAktivitet havner i bakgrunnenAktivitet havner i forgrunnenonSaveInstanceState()onPause()Lavt minneAktiviteten er usynligonStop()Aktivitet avsluttetLavt minne,finish()onDestroy()© 2010 Capgemini. All rights reserved.
  • 43. Ytelse foran altBest practices i Java != Best practices i Android
  • 45. Du veit aldri når’em kommer
  • 46. Nettverk kan være tregt og dyrt
  • 50. Tråder med en handler© 2010 Capgemini. All rights reserved.
  • 52. FordelerFøles kjent Herlig hardwareDebug på deviceLett å komme i gang!Godt dokumentertEt moderne OS GCRyddige APIerCommunityEnkelt å publisere© 2010 Capgemini. All rights reserved.
  • 53. UlemperMange konfigurasjoner å sikte motHardware og OS-versjonerAndroid Market – ikke Bogstadveien..og ikke betalte applikasjoner i Norge endaTREG emulator© 2010 Capgemini. All rights reserved.
  • 54. KonklusjonMorsomtUtfordrende begrensningerVil du utvikle for mobiltelefoner er dette veien å gå!Mer mobilmoro: ”Scala på Androider” kl 14:15, Sal 6Thor Åge Eldby”Fra iPhone-idé til AppStore-publisering”Kl 13:30, sal 7 (lyntale)Markuz Lindgren© 2010 Capgemini. All rights reserved.
  • 55. © 2010 Capgemini. All rights reserved.SjekkutJZinema!Last ned frahttp://tinyurl.com/jzinemaBETA!(butreleasingon time)
  • 56. Spørsmål?Vi står på Capgeminis stand de neste fire timeneMulighet for å leke med kildekoden på stand eller på http://code.google.com/p/jzinema/Feeds ikke inkludert!© 2010 Capgemini. All rights reserved.
  • 58. KilderPro Android 2GoogleAndroidphoneshipmentsincrease by 886% - http://www.bbc.co.uk/news/technology-10839034 Google'sAndroidstrategyexplained - http://www.computerworlduk.com/in-depth/mobile-wireless/890/analysis-googles-android-mobile-strategy-explained/ Rich Miner sitert på Internetnews: http://www.internetnews.com/mobility/article.php/12220_3780476_2 BilderKløverbilde: cygnus921@flickrAndroid med Androider: iwallensteinAndroid-bamse: laihiu@flickrAndroid YAY – maxbraun@flickrAndroid Mini Collectibles – droidzebra, IncGoogles første prodserver – jurvetson@flickrZebra stripes: schnappi@flickrRaptor: XKCD # 135Record needle: stevecadman@flickrSatellite dish, ryaninc@flickrEvolutionofAndroid: http://www.intomobile.com/2010/07/13/evolution-of-android-follow-the-gingerbread-roadmap/Andy Rubin ved lanseringen av Android: http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html Ytelse: http://developer.android.com/guide/practices/design/performance.html© 2010 Capgemini. All rights reserved.