Product Engineering // Blog

Android Honeycomb OS Changes and how they affect App Architecture

Android is an operating system for mobile devices such as smart phones and tablet computers. Android 3.0 (Honeycomb) is a new version of the Android platform that is designed from the ground up for devices with larger screen sizes, particularly tablets.

 

Honeycomb introduces a new “holographic” UI theme and an interaction model that builds on the things people love about Android — multitasking, notifications, widgets, and others — and adds many new features as well.

 

 

Honeycomb Highlights

———————

Honeycomb is a Tablet Release. There have been numerous User Improvements and Developer Improvements from the previous releases.

 

Honeycomb is exclusively designed for tablets. Tablet! = Phone. Honeycomb is designed for devices with higher Screen Size and it allows different kinds of

Input and runs on faster CPU, multi-core and also has GPU.

 

Many of Android’s existing features will really shine on Honeycomb: refined multi-tasking, elegant notifications, access to over 100,000 apps on Android Market, home screen customization with a new 3D experience and redesigned widgets that are richer and more interactive. They have also made some powerful upgrades to the web browser, including tabbed browsing, form auto-fill, syncing with your Google Chrome bookmarks, and incognito mode for private browsing

 

 

Major Improvements

———————-

Home Screen, new ‘Holo’ theme:

 

Honeycomb introduces a brand new, truly virtual and “holographic” UI design, as well as an elegant, content-focused interaction model. In honeycombs the UI is not just stretched UI from smart phones. The UIs have been rethought completely.

 

Android 3.0 brings a new UI designed for tablets and other larger screen devices, but it also is fully compatible with applications developed for earlier versions of the platform, or for smaller screen sizes. Existing applications can seamlessly participate in the new holographic UI theme without code changes, by adding a single attribute in their manifest files.

 

Keyboard:

Key board is redesigned and much better with news keys added (e.g. “tab”).

Users can also connect full keyboards over either USB or Bluetooth, for a familiar text-input environment.

 

Text Selection: Text Selection is fine grained. Allows to select few characters, improved copy/paste

 

USB Device Connectivity: Built-in support for Media/Picture Transfer Protocol lets users instantly sync media files with a USB-connected camera or desktop computer, without needing to mount a USB mass-storage device.

 

Two new great widgets for UI – Action Bar and System Bar

Action Bar: In every application, users have access to contextual options, navigation, widgets, or other types of content in an Action Bar, displayed at the top of the screen. The Action Bar is always present when an application is in use, although its content, theme, and other properties are managed by the application rather than the system. The platform provides each application with its own instance of the Action Bar at the top of the screen

 

Existing code is a replacement for old versions menu and the code doesn’t change.

 

android:showAsAction – new attribute where you want to show icon

(e.g. “always” or “ifroom”)

 

Contextual Action Bar is used for application level operations on particular context.

 

System Bar

System Bar is maintained across the applications at system level. It is always visible at the bottom of the device. It is interactive and has buttons to view recent apps, redesigned notifications area to get expanded network information, rich notifications and all are public API.

Lights off mode – Dimmed and replaced with tiny little dots and you won’t be interrupted by tiny little notifications. You can still see them.

 

Recent Apps

Visual Text feature. Multitasking is a key strength of Android and it is central to the Android 3.0 experience. Recent Apps list in the System Bar to see the tasks underway and quickly jump from one application context to another. The list shows a snapshot of its actual state when the user last viewed it.

 

Support for multi-core processor architectures: Android 3.0 is optimized to run on either single- or dual-core processors, so that applications run with the best possible performance

 

New and Improved Applications

 

. NEW

– Books -> good reading experience with the help of 3d Scripts

– Movie Studio -> movie editing software

 

. Improved

 

-Market

-Browser

-Contacts

-Music

-Gmail

 

New Widgets

.Richer

.More Interactive

.Books, Bookmarks, Gmail, Calendar

 

Developer Improvements

Fragments

.Like mini-activities

.For Flexible Screen format Situation

-landscape vs. portrait

-Large vs. Small

 

 

Fragments are used for fixing a specific problem on platforms as we move into other device space like tablets. The original model of activities for phone where you can see one activity and when it is moved to larger device like tablet there is lot more to show than single activity. One bundled activity like you got a layout for e.g.

may be all screens of your application.

 

Its great but rewriting app to target different devices. It becomes painful.

What we need is Way for to write Reusable code in chunks that could be used in separate activities for smaller devices or in particular orientation or together in one activity side by side as fragments in single activity on tablet in landscape mode. Think as them as mini – activities and it’s like separate mini-activities in a activity where fragments interacting with each other. And on the same side you can use separate these chunks into separate activities on smaller devices.

 

E.g. phones -> tablets or Portrait view -> Landscape view.

 

Managing the lifecycle of a fragment is a lot like managing the lifecycle of an activity. Good news is you can get Fragments up to 1.6+ (ported back to older versions)

 

Loaders

——–

The most common use of this is with a CursorLoader, however applications are free to write their own loaders for loading other types of data.

 

There is only one LoaderManager per activity or fragment. But a LoaderManager can have multiple loaders.

 

Loader: An abstract class that performs asynchronous loading of data. This is the base class for a loader. You would typically use CursorLoader, but you can implement your own subclass. While loaders are active they should monitor the source of their data and deliver new results when the contents change

 

Asynctaskloader: Abstract loader that provides an AsyncTask to do the work.

cursorloader: A subclass of AsyncTaskLoader that queries the Content Resolver and returns a Cursor.

 

Using this loader is the best way to asynchronously load data from a Content Provider, instead of performing a managed query through the fragment or activity’s APIs.

 

RenderScripts

.Native Code for fast Graphics, computation

.Platform- Independent

.Syntax based on C99

.Uses GPU, CPU, multi-core

.Used in Books, YouTube, Live Wallpapers.

RenderScripts are the way to get 3d graphics. It has Graphics API, Computation API.

Graphics Acceleration (Hardware Acceleration)

———————————————-

. OpenGL acceleration for most graphics operations.

– Canvas.drawLine(), Canvas.drawBitmaps()

. Used in Launcher, Gmail, Contacts, Calender , Youtube, Browers, Maps , Settings

 

<application android:hardwareAccelerated = “true”>

 

Animation Framework

——————-

. New System built on “Property animation”

– Any object, any property, any type

.New properties on View

– Alpha, translation/y, ScaleX/Y, rotation.

 

Old animations can do only specific animations.

 

Much More Features Added

.Clipboard

.Drag and Drop

.Http live streaming.

.Pluggable DRM framework.

.Encrypted Storage

.New/Improved Components

-Date Picker, Number Picker, Stack View, Calendar View

.Tools

-UI Builder, code completion

 

THE FUTURE

———–

. Honeycomb was optimized for tablets

. Ice Cream Sandwich is said to be a combination of Gingerbread and Honeycomb    into a “cohesive whole”. Release is to be expected in October.

. More, better, fancier, faster, lovelier

Weekly Industry Newsletter

Top Posts

  • Platform Business Model – Definition | What is it? | Explanation

    Read more

  • Platform vs. Linear: Business Models 101

    Read more

  • White Paper: Development Platforms and the Next Wave of App Innovation

    Read more

  • Amazon Business: Understanding the Threat to B2B Distributors

    Read more

  • The Value of Digital Transformation: How Investors Evaluate “Tech”

    Read more