16
Implementing Push on Android – The DroidPush API November 03, 2009 Stefan Alund & Johannes Willig

An early look at DroidPush API - a push API for Android

Embed Size (px)

DESCRIPTION

An early preview look at the DroidPush API hosted on Ericsson Labs. The DroidPush API uses SMS technology to start up Android applications.

Citation preview

Page 1: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

Implementing Push on Android –

The DroidPush API

November 03, 2009

Stefan Alund & Johannes Willig

Page 2: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

What this session is about

Why Push Delivery?

Push Basics

The DroidPush API

Demo

Discussion

Page 3: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

Why Push Delivery?

Page 4: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Why push delivery ?

Any news?

No!Any news?

No!

Any news?

No! New content!

Any news?

Yes! (News)

Push me your news!

News!

poll push

› Transfer content as soon as available

› Save device battery

› Reduce data traffic for user

pushpush

› Transfer content as soon as available

› Save device battery

› Reduce data traffic for user

› Transfer content as soon as available

› Save device battery

› Reduce data traffic for user

Page 5: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Push efficiency – Why Polling is BAD

Mobile Push

1 hour poll

5 min poll

1 min poll

30 sec poll

0 20 40 60 80 100 120 140

Battery lifetime [h]

1 test run per configuration on a Sony Ericsson C905 device

Page 6: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

Push Basics

Page 7: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Push delivery basics: Push to Poll

Service ProviderMobile

0. Subscribe for news

ContentServer

PushGateway

1.Provide content access

2. Init Push delivery3. Deliver Push Trigger

4.Request Content

5.Deliver Content

Page 8: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Trigger Types & Technology

› Trigger types–TCP / UDP connection–Short Message Service

› Push frameworks –MIDP 2.0 Push Registry / WMA–OMA WAP Push–Apple Push Notifications–RIM: Hosted Data Push Service–Google Push (Android)–MQTT Push (Android et.al.)

Page 9: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

SMS Push Technology

› SMS header may contain “app port” field – Dedicated range of free usable port numbers– Port handling not yet supported in Android (1.6)

› Mobile applications can register to a SMS application port– App is automatically started at SMS reception with this port– SMS content is passed to application for further usage

› SMS contains link to content (push to poll)

Page 10: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

G1 Long Polling „Push“ - GMAIL Client Mail ServerPush Server

Keep-alive(Client-initiatied)

Push Notification

Mail Download

Keep-alive(Server-initiatied)

Keep-alive(Client-initiatied)

...

Close Connectionto Mail Server

› GMails are always pushed

› Google Push Mechansim shared by all Google apps

› Long-lived TCP connection („push channel“) used

› Upon mail reception, notification is sent through push channel

Page 11: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

The DROIDPUSH API

Page 12: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

droidpuSh Overview

Dro

idP

us

h A

PI

Page 13: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Show me the Code

› Import the API (jar)

›Setup Manifest for Push Intents

› Implement your BroadcastReceiver

›Start to Push

Page 14: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

DEMO

Page 15: An early look at DroidPush API - a push API for Android

Slide title48 pt

Slide subtitle 30 pt

END

http://labs.ericsson.com

Page 16: An early look at DroidPush API - a push API for Android

Slide title 32 pt

Text 24 pt

Bullets level 2-520 pt

›!"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl

DroidPush Droidcamp 3.11.2009

Push ApplicationsPush podcasting

Active wallpaper

Warning! Take cover

Emergency alerts

Pushed Dates