Android lollipop for developers
-
Upload
royi-benyossef -
Category
Software
-
view
1.131 -
download
7
Transcript of Android lollipop for developers
Whatrsquos new in lollipop
(by Royi Benyossef (+royiby
The most important things you did not know about
Who
Shameless plug by Royi Benyossef (+royiby)
Royi benyossef
Android developer since 2008
GDG Herzeliya co-founder
Android speaker and lecturer
Android Mentor at CampusTLV
Android GDE 2013 2014
Android group leader at Vidmind
Motivation
Whatrsquos new in lollipop
Motivation
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Who
Shameless plug by Royi Benyossef (+royiby)
Royi benyossef
Android developer since 2008
GDG Herzeliya co-founder
Android speaker and lecturer
Android Mentor at CampusTLV
Android GDE 2013 2014
Android group leader at Vidmind
Motivation
Whatrsquos new in lollipop
Motivation
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Motivation
Whatrsquos new in lollipop
Motivation
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Motivation
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Material design
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Android TV
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Android Auto
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Android AUTO
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
ART
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
Project Volta
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
What most people know
Whatrsquos new in lollipop
More than 5000 APIs were changed
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Enough
Whatrsquos new in lollipop
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Point
Whatrsquos new in lollipop
Most people know
Very little
Titles only
No action items
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Point
Whatrsquos new in lollipop
Is that helpful
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Point
Whatrsquos new in lollipop
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Letrsquos get started
Whatrsquos new in lollipop
Down to
business
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security
Whatrsquos new in lollipop
Few changes to make your app and
the device safer
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Service
Whatrsquos new in lollipop
ContextbindService()
Requires explicit intent (no intent filters)
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Token
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - WebView
Whatrsquos new in lollipop
API level 21
No cookies
No Mixed content
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - WebView
Whatrsquos new in lollipop
API level 21
setAcceptThirdPartyCookies()
setMixedContentMode()
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - WebView
Whatrsquos new in lollipop
API lt 21
Allows cookies and mixed content
All content loaded at once
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - WebView
Whatrsquos new in lollipop
API level 21
Can load all content at once
enableSlowWholeDocumentDraw()
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - permissions
Whatrsquos new in lollipop
Custom permissions uniqueness is checked
cross apps
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - permissions
Whatrsquos new in lollipop
Only one app can use a custom permission
at a time
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - TLSSSL
Whatrsquos new in lollipop
TLSv12 TLSv11
Cipher suites
a AES-GCM (AEAD)
b MD5 3DES export and static key ECDH
c Forward Secrecy (ECDHE and DHE)
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Provisioning
Whatrsquos new in lollipop
Device admin
Control provisioning of apps on device
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Admin
Whatrsquos new in lollipop
ACTION_PROVISION_MANAGED_PROFIL
E
Intent to trigger provision apps and actions
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Admin
Whatrsquos new in lollipop
onProfileProvisioningComplete()
callback event for provisioning completion
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Admin
Whatrsquos new in lollipop
setProfileEnabled()
enableSystemApp()
Actions possible upon provisioning
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - Provisioning
Whatrsquos new in lollipop
Device owner
Mainly for education allows controlling devices
operations remotely
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - owner
Whatrsquos new in lollipop
Screen pinning
Temporary restriction of users
Status bar blank
No notifications
Home amp recents are hidden
User locked in app
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - owner
Whatrsquos new in lollipop
Manual Screen pinning
Settings gt Security gt Screen Pinning
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security - owner
Whatrsquos new in lollipop
Programmatic Screen pinning
startLockTask()
setLockTaskPackages()
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Security
Whatrsquos new in lollipop
Concept
More control
more security
Better tools
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
User interface
Whatrsquos new in lollipop
Changes and updates to facilitate better UI
and UX
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
concept Facilitating multitasking and
easing use by easy switching between
concurrent activities
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
How do i create a new document
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
startActivity()+
FLAG_ACTIVITY_NEW_DOCUMENT
= new document
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = intoExisting
= new document (refreshes existing)
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
ltactivitygt +
documentLaunchMode = always
= new document (start new one -
ALWAYS)
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
Some attributes to use
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+androidmaxRecents
Limit max instances
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
ltapplicationgt+
androidpersistableMode
Do you want state to persist across
reboots
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - documents
Whatrsquos new in lollipop
setTaskDescription()
Do you want the activity to look different
once called from
recents
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - WebView
Whatrsquos new in lollipop
Version
Chromium M37
Default header-agent
37000
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - WebView
Whatrsquos new in lollipop
Concept
security
access
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - WebView
Whatrsquos new in lollipop
PermissionRequest
Allows access to secured hardware
(camera microphone)
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - WebView
Whatrsquos new in lollipop
onShowFileChooser()
Allows access to images and files
from storage
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - capturing amp sharing
Whatrsquos new in lollipop
Concept capture screen easily and
securely for better sharing
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - capturing amp sharing
Whatrsquos new in lollipop
createScreenCaptureIntent()
Ask permission to capture display
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - capturing amp sharing
Whatrsquos new in lollipop
createVirtualDisplay()
Capture content
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
Concept create real-looking UI and
UX
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
RecyclerView
Like ListView only without pulling your
hairs out
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
View shadows
consistent to elevations
just like real life
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
Transition animations and effects
Fun
Dynamic
Flowing
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
View state based property
animators
Control your animations better for a
stronger effect
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
XML vector graphics
Make your designers happy
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
Image color detection
Color your app according to the
content
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
UI - Material design
Whatrsquos new in lollipop
PalettegenerateAsync(bitmap new PalettePaletteAsyncListener()
public void onGenerated(Palette palette)
Do something with colors
)
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Notifications
Whatrsquos new in lollipop
More secure
More places
More actions
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Lock screen Notifications
Whatrsquos new in lollipop
setVisibility()
Sets the desired privacy level
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PUBLIC
Shows everything
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_SECRET
Shows nothing (not even the icon)
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Lock screen Notifications
Whatrsquos new in lollipop
VISIBILITY_PRIVATE
Shows basic information
Allows alternate message with
setPublicVersion()
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Notifications meta data
Whatrsquos new in lollipop
New data to be set in notifications
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Notifications meta data
Whatrsquos new in lollipop
setCategory()
How to handle your notification in priority
mode
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Notifications meta data
Whatrsquos new in lollipop
setPriority()
Example MAX or high priority will appear in a
small popup
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Notifications meta data
Whatrsquos new in lollipop
addPerson()
Connect notification to a person and not an
app
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Tools and APIs
Whatrsquos new in lollipop
Infrastructural API changes for efficiency
performance and security
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Project Volta
Whatrsquos new in lollipop
Helps developers preserve battery life
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Project Volta
Whatrsquos new in lollipop
JobScheduler (+ JobInfo)
Request system to schedule jobs by event
urgency or deadline
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
JobInfo uploadTask = new JobInfoBuilder(mJobId
mServiceComponent JobService component )
setRequiredNetworkCapabilities(JobInfoNetworkTypeUNMETERED)
build()
JobScheduler jobScheduler =
(JobScheduler)
contextgetSystemService(ContextJOB_SCHEDULER_SERVICE)
jobSchedulerschedule(uploadTask)
Project Volta
Whatrsquos new in lollipop
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Project Volta
Whatrsquos new in lollipop
Battery Historian amp dumpsys batterystat
Battery history amp projection
Mobile ms per packet
httpsgithubcomgooglebattery-historian
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Project Volta
Whatrsquos new in lollipop
$ adb shell dumpsys batterystats --charged ltpackage-namegt
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Project Volta
Whatrsquos new in lollipop
Whatrsquos in it
for me
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Volta - motivation
Whatrsquos new in lollipop
Growth in wearables usage
Better battery usage stats on devices
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Graphics
Whatrsquos new in lollipop
Concept OpenGL ES 31++
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
Compute Shaders
Separate shader objects
Indirect drawing
Textures (stencils and multisample)
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature androidglEsVersion=0x00030001 gt
ltmanifestgt
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Graphics - Android ext pack
Whatrsquos new in lollipop
Fragment shader support
Tessellation amp Geometry shaders
ASTC (LDR) texture support
Per-shader actions and blend modes
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Graphics - OpenGL ES 31
Whatrsquos new in lollipop
ltmanifestgt
ltuses-feature
androidname=ldquoandroidhardwareopenglesaeprdquo
androidrequired=true gt
ltmanifestgt
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
ART
Whatrsquos new in lollipop
AOD compilation
Improved GC
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
ART - at risk
Whatrsquos new in lollipop
JNI with CC++
Non-standard tools
Obfuscators
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
64-bit NDK
Whatrsquos new in lollipop
Full 32-bit support
increased address space
improved performance
OpenGL ES (31)
OpenSSL
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media
Whatrsquos new in lollipop
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Concept
Backward compatible
Easy to use
Async
Threadsafe
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Get cameras
getCameraIdList()
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Use a camera
openCamera()
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Create a session (single-shot burst etc)
CameraCaptureSession
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Get notified when a picture is captured
with the result
CameraCaptureSessionCaptureCallback
onCaptureCompleted()
CaptureResult
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
Be aware of the hardware
CameraCharacteristics
INFO_SUPPORTED_HARDWARE_LEVEL
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_LEGA
CY
Minimum support (like old Camera API)
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Camera
Whatrsquos new in lollipop
INFO_SUPPORTED_HARDWARE_LEVEL_FUL
L
Full support
Manual control
Post processing
HD
High frame rates
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Audio
Whatrsquos new in lollipop
Concept
Accurate
Convenient
Efficient
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply data in ENCODING_PCM_FLOAT
format for accuracy and as a ByteBuffer
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Supply as a ByteBuffer for convenience
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Audio
Whatrsquos new in lollipop
AudioTrack
Use WRITE_NON_BLOCKING for easy
buffering and multithreading
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - playback control
Whatrsquos new in lollipop
RemoteControlClient is dead long
live MediaSession and
MediaController
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - playback control
Whatrsquos new in lollipop
MediaSession
Unified interface for all playback controls on
Wear TV and more
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - playback control
Whatrsquos new in lollipop
MediaSessionToken
Identifies a MediaSession securely and
with thread safety
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - playback control
Whatrsquos new in lollipop
MediaControllerTransportControls
sends actions
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - playback control
Whatrsquos new in lollipop
MediaControllerCallback
gets responses
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Browsing
Whatrsquos new in lollipop
Browse the content library of any app
that allows it
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Media - Browsing
Whatrsquos new in lollipop
MediaBrowserService
Create a MediaSession identified by a
MediaSessionToken to connect to a
MediaBrowser
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
Concept
From files to documents
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
DocumentsProvider
Handles access to all documents in
the system
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
OPEN_DOCUMENT_TREE
Intent filter to open a directory
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
buildChildDocumentsUriUsingTree()
buildDocumentUriUsingTree()
Browse documents
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
createDocument()
renameDocument()
deleteDocument()
Guess
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Storage
Whatrsquos new in lollipop
MediaScannerConnection
Scan for new content on device
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity
Whatrsquos new in lollipop
Concept
redundancy and energy efficiency
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - multiple
Whatrsquos new in lollipop
Concept
Scan for best network and connect
to more than one dynamically
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - multiple
Whatrsquos new in lollipop
ConnectivityManagerNetworkCallback
Get results for an applicable
NetworkRequest
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - multiple
Whatrsquos new in lollipop
requestNetwork()
Connect upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - multiple
Whatrsquos new in lollipop
registerNetworkCallback()
Get notified upon discovery
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - multiple
Whatrsquos new in lollipop
onAvailable() + Network
Get information regarding found network
upon discovery
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - BLE
Whatrsquos new in lollipop
Concept you can be a Bluetooth
low energy peripheral device
BLUETOOTH_ADMIN
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - BLE
Whatrsquos new in lollipop
startAdvertising() + AdvertiseCallback
Advertise yourself
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - BLE
Whatrsquos new in lollipop
ScanFilter + startScan() + ScanCallback
Search for others
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - NFC
Whatrsquos new in lollipop
Concept
Less hassle more punch
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - NFC
Whatrsquos new in lollipop
invokeBeam()
Beam called no tap required
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - NFC
Whatrsquos new in lollipop
createTextRecord()
Create an NDEF record with UTF-8
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Connectivity - NFC
Whatrsquos new in lollipop
registerAidsForService() +
setPreferredService()
Register an AID (NFC app ID) dynamically
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Printing frameworks
Whatrsquos new in lollipop
Concept better enterprise
capabilities
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Printing frameworks
Whatrsquos new in lollipop
Render PDF as bitmap with
PdfRenderer
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Developer perks
Whatrsquos new in lollipop
A few updates for testing statistics
and accessibility
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
App usage stats
Whatrsquos new in lollipop
Concept
Knowledge is power
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
App usage stats
Whatrsquos new in lollipop
androidpermissionPACKAGE_USAGE_STA
TS
Last usage
total uptime
Last time in foreground
Last config change
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Testing
Whatrsquos new in lollipop
Concept
Testing makes perfect
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Testing
Whatrsquos new in lollipop
getWindowAnimationFrameStats()
getWindowContentFrameStats()
frame statistics for instrumentation tests
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Testing
Whatrsquos new in lollipop
executeShellCommand()
adb for instrumentation tests
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Accessibility
Whatrsquos new in lollipop
Concept
More clientshellip more money
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Accessibility - details
Whatrsquos new in lollipop
UiAutomatorgetWindows()
Details about what the user ldquoseesrdquo
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Accessibility - actions
Whatrsquos new in lollipop
AccessibilityNodeInfoAccessibilityAction
actions (custom and standard) to be defined
to take place on AccessibilityNodeInfo
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
Accessibility - voice
Whatrsquos new in lollipop
New Voice class with locale specific
profiles for better voice recognition
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
A lot is different
Key points
Hybrid apps - what when and why
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
ldquoWe Should Be Building Great Things
Things That Donrsquot yet Existrdquo
I hope you liked it
by Royi Benyossef
Thank you for listening
I hope you liked it
by Royi Benyossef
Thank you for listening