27
Android Evolution Friedger Müffke AppForum 2014, Brussels

Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Embed Size (px)

DESCRIPTION

What is new in Android in 2014? Where does it started?

Citation preview

Page 1: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android EvolutionFriedger Müffke

AppForum 2014, Brussels

Page 2: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Friedger Müffke

@fmdroid

+FriedgerMüffke

friedger

Page 3: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image

Started 2009 in Berlin: 200 participants

In 2015 in 15 locations worldwide

reaching more than 7500 developers

Professionalized community

Droidcon

Page 4: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android in Numbers

2008

● 1 device

● 2000 app entries for ADC I

● < 1 % market share

2014

● 7730 devices

● 1+ million apps

● > 80% market share

Page 5: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android WearContext-aware

Glanceable

One thing really fast

Suggest and demand

Notifications and Wear APKs

Page 6: Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Page 7: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Notificationsextender = new NotificationCompat.WearableExtender()

.setBackground(bitmap)

.addAction(action) // can contain RemoteInput

.addPage(notificationForPage)

builder = new NotificationCompat.Builder(context)

.setSmallIcon(R.drawable.ic_notification)

.extend(extender)

.setGroup(key) // makes the notif. wear only

.setGroupSummary(true) // if summary not present

.setLocalOnly(true);

Page 8: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android Auto

Media apps

Messages apps

Page 9: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android Auto - Messages<automotiveApp>

<uses name="notification" />

</automotiveApp>

unreadConvBuilder = new UnreadConversation.Builder(participantName);

unreadConvBuilder.addMessage(messageString);

notificationBuilder.extend(new CarExtender()

.setUnreadConversation(unreadConvBuilder.build());

Page 10: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android TV

TV Live apps

TV Playback apps

TV Games

Page 11: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android TV - Recommendationsnotification = new NotificationCompat.Builder(context)

.setContentTitle(movie.getTitle())

.setContentText(movie.getDescription())

.setContentInfo(APP_NAME)

.setGroup("ActionMovies")

.setSortKey("0.8")

.setPriority(movie.getPriority())

.setColor(#FFFF2020)

.setCategory("recommendation")

.setExtras(extras)

.build();

Page 12: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Casting

Any device to screen

Receiver app in HTML

Various sender apps

Page 13: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Casting - Android Sender

MediaRouter to select route/device

GoogleApiClient.connect

Cast.CastApi.launchApplication

Cast.CastApi.sendMessage

Page 14: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image

Android EveryWear

Page 15: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Material DesignMaterial is the

metaphor

Bold, graphic,

intentional

Motion provides

meaning

Page 16: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image

Page 17: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image

Page 18: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image

Page 19: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Material Design Animations

Activity Animations

Ripples

Animated Vector Drawable

Page 20: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Document-Centric Approach

more Tasks

persist intent delegation

getRecentTasks deprecated

Page 21: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Document-Centric Approach

FLAG_ACTIVITY_NEW_DOCUMENT

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

Multi-task button

DocumentProvider

ACTION_OPEN_DOCUMENT

ACTION_CREATE_DOCUMENT

Page 22: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Bluetooth Low Energy

Android Device can act as peripheral

Filter devices on scanning

adv = getBluetoothLeAdvertiser();

adv.startAdvertising(settings, data, cb);

startLeScan(cb)

startScan(filters, settings, cb);

Page 23: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

more new APIsRecyclerView

ScrollView.onNestedScroll()

Heads-up Notifications

Lockscreen privacy / Notification.setVisibility()

JobScheduler

Page 24: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Google Play Service 6.5Maps Toolbar, lite mode

‘Donate with Google’ button

Google Fit SDK activity segments

One common lib plus the ones that are required

WebView via Google Play

Page 25: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

Android Work

Managed Profiles

Device Owners

Device Policy manager - NFC provisioning

Kiosk mode/Screen pinning

Samsung Knoxx

Page 26: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

What else is new?

64 bit

ART - better gc

gradle

batterystats tool

Android apps on Chrome

Page 27: Android Evolution, AppForum 2014, Brussels, Friedger Müffke

image