Download - What's New in Jelly Bean
Copyright © 2012CommonsWare, LLC
What's New in Jelly Bean
Big Android BBQ 2012
Copyright © 2012CommonsWare, LLC
Project Butter
● UI Updates @ 60 frames/second● Objective: smoother UI updates
– Especially animations● Transparent to developers
– No code changes to “opt into” Butter effects● Google I/O 2012: “For Butter or Worse”
Copyright © 2012CommonsWare, LLC
Project Butter Ramifications
● Only ~16ms Per Frame– Your code on the main application thread– Framework code– Other interruptions (e.g., background process)
● Net: Get Off the Main Application Thread!– Anything taking more than a few milliseconds
needs to move to background thread or be executed incrementally
Copyright © 2012CommonsWare, LLC
Project Butter & Choreographer
● Information Message in LogCat– “Skipped N frames” * 16ms = amount of time
you took on main application thread– The more frames skipped, the more likely it is
the user will notice● UI frozen and not responsive● Animation/scrolling hiccups
06-29 23:11:17.796: I/Choreographer(691): Skipped 647 frames!The application may be doing too much work on its main thread.
Copyright © 2012CommonsWare, LLC
Expandable Notifications
● Alternative Visual Representation– Taller, room for more text or image– Optional action buttons
● When Appears– When at top of drawer– User expansion via
two-finger swipe gesture
Copyright © 2012CommonsWare, LLC
Expandable Notifications
● Styles– BigTextStyle: larger amount of prose– BigListStyle: subject lines, news headlines,
etc.– BigPictureStyle: shared photos, etc.
● Actions– Up to three– Immediate operations with fewer clicks
Copyright © 2012CommonsWare, LLC
Expandable Notifications
● Creating Them– Use Notification.Builder or NotificationCompat.Builder
– Create regular Notification– Wrap in a “big” style Notification
● Wrapper “inherits” values from wrapped one (e.g., timestamp)
● Android uses one or the other based upon circumstances
Copyright © 2012CommonsWare, LLC
READ_LOGS Regression
● Before– No API for reading LogCat contents– SDK apps could hold READ_LOGS and use
undocumented means instead● Now
– No API for reading LogCat contents– Only firmware apps can hold READ_LOGS– Default: can only read own messages
Copyright © 2012CommonsWare, LLC
READ_LOGS Regression
● Effects– Cannot report system error messages via ACRA
and kin– Limits native IDEs (AIDE, etc.), as they cannot
show messages from apps they create● Reasons
– Privacy: too much crap getting logged– Security: reduce blocking attacks
Copyright © 2012CommonsWare, LLC
READ_EXTERNAL_STORAGE
● New Permission– Required if you are reading from external
storage and do not already hold WRITE_EXTERNAL_STORAGE
● Not Enforced By Default– Jelly Bean: enabled in Developer Options– K+: possibly enabled by default
Copyright © 2012CommonsWare, LLC
READ_EXTERNAL_STORAGE
● Reason: Privacy– Addressing the “any app has access to our
photos” complaint● Warning: No Grandfathering
– No indication that apps with low targetSdkVersion will be granted this permission by default
– Users can toggle this on now
Copyright © 2012CommonsWare, LLC
Other Notable Changes
● Full Bi-Directional Text Support(no, really, honest, we got it this time!)
– Also custom keymaps, to surface other characters more easily
● Fully-Resizable App Widgets– And your code gets to find out, too!– Also get GridLayout and ViewStub support
● Improved Accessibility
Copyright © 2012CommonsWare, LLC
Other Notable Changes
● Android Beam– Bulk content transfer, kicked off by NFC,
completed by Bluetooth● Google Cloud Messaging
– Permanent replacement for Labs' C2DM– Various improvements, still free
Copyright © 2012CommonsWare, LLC
Other Notable Changes
● More Changes for Task Navigation● More Options for Lights Out/Full Screen● Service Discovery (WiFi, WiFi Direct)● Audio Improvements (e.g., codec
enumeration)● Better WebView● Etc.
Copyright © 2012CommonsWare, LLC
Jelly Bean/API Level 16 Uptake
● Presently: 1.8% (as of October 1, 2012)● Short-Term Growth
– Upgrades from manufacturers– Gingerbread contract expirations– Holiday season sales
● Predictions– 10% by February 1, 2013
– 25% by June 1, 2013