page.title=Introduction to Honeycomb
@jd:body

<p>Welcome to the Honeycomb preview SDK. Honeycomb is the next major release of the Android
platform and is optimized for tablet devices. This document provides an introduction to the new
platform features and APIs available in Honeycomb.</p>


<h2>Fragments</h2>

<div class="figure" style="width:400px">
  <img src="{@docRoot}images/preview_hc/fragments_layout.png" alt="" />
  <p class="img-caption"><strong>Fragment Layout.</strong> An activity with two
fragments: one with a list view, on the left, and one that displays selected content on the
right. This demo is available in the samples package.</p>
</div>


<p>A new framework component that allows you to separate distinct elements of an activity into
self-contained modules that define their own UI and lifecycle&mdash;defining what may be
considered "sub-activities".</p>
<ul>
  <li>Multiple fragments can be combined in a single activity to build a multi-pane UI in which
each pane manages its own lifecycle and user inputs</li>
  <li>Fragments are self-contained and can be reused in multiple activities</li>
  <li>Fragments can be added, removed, replaced and animated inside the activity</li>
  <li>Fragment can be added to a back stack managed by the activity, preserving the state of
fragments as they are changed and allowing the user to navigate backward through the different
states</li>
  <li>By <a
href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">providing
alternative resources</a>, you can mix and match fragments, based
on the screen size and orientation</li>
  <li>Fragments have direct access to their container activity and can contribute items to the
activity's Options Menu</li>
</ul>

<p>For more information, see the <a
href="{@docRoot}guide/topics/fragments/index.html">Fragments</a> developer guide.</p>


<h2>Action Bar</h2>

<p>A replacement for the traditional title bar, which provides users quick access to global
actions and different navigation modes.</p>
<ul>
  <li>Provides quick access to items from the Options Menu ("action items") and interactive
widgets ("action views")</li>
  <li>Includes the application logo in the left corner, which can perform actions when tapped
and can be replaced with a custom logo</li>
  <li>Provides breadcumbs for navigating backward through fragments</li>
  <li>Offers built in navigation modes, including tabs and a drop-down list</li>
  <li>Can be customized with themes and custom backgrounds</li>
  <li>And more</li>
</ul>

<img src="{@docRoot}images/preview_hc/actionbar.png" alt="" />
<p class="img-caption"><strong>Action Bar.</strong> An action bar with a custom logo,
tabs, and Options Menu. This demo is available in the samples package.</p>

<p>For more information, see the <a
href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> developer guide.</p>


<h2>System Clipboard</h2>

<p>Applications can copy and paste data (beyond mere text) to and from the system-wide
clipboard.</p>

<ul>
  <li>Clipped data can be plain text, a URI, or an intent</li>
  <li>The new {@link android.content.ClipData} class represents a complex data type for the
clipboard</li>
  <li>The new {@link android.content.ClipboardManager} class allows apps to add {@link
android.content.ClipData} to the clipboard (copy) and read {@link
android.content.ClipData} from the clipboard (paste)</li>
  <li>The {@link android.content.ContentProvider} class has been extended to generate byte
streams based on data types added to the clipboard and point to data hosted in a
content provider</li>
</ul>

<p>See {@link android.content.ClipData} and {@link android.content.ClipboardManager}
for more information. You can also see an example implementation of copy/paste in an updated
version of the NotePad application (available in the samples package).</p>


<h2>Drag and Drop</h2>

<p>New APIs to perform drag and drop operations, leveraging the system clipboard APIs to
transport data.</p>

<ul>
  <li>Any {@link android.view.View} can be used for a drag and drop event and a thumbnail of that
view is generated and used during the drag</li>
  <li>{@link android.view.ViewGroup}s that can receive the object are notified during hover and drop
events</li>
  <li>The new {@link android.view.DragEvent} class describes a drag event relating to a view,
including the item's current coordinates, the type of action (whether the drag has entered the
view, exited the view, started, dropped, etc.), and provides access to the {@link
android.content.ClipData} being carried</li>
  <li>The new {@link android.view.View.OnDragListener} interface defines a callback that views
can register in order to be notified of drag events being dispatched to the view; view's can
register a drag listener with {@link android.view.View#setOnDragListener setOnDragListener()}</li>
</ul>

<p>See {@link android.view.DragEvent} and {@link android.view.View.OnDragListener} for more
information.</p>


<h2>New Animations</h2>

<p>An all new animation framework.</p>

<ul>
  <li>A flexible animation system that allows you to animate the properties of any object (View,
Drawable, Fragment, Object, anything)</li>
</ul>

<p>See the {@link android.animation} package.</p>


<h2>Extended App Widgets</h2>

<p>App widgets can now be more interactive and accept finger gestures.</p>

<ul>
  <li>The complete list of supported widgets for an app widget is now: {@link
android.widget.AnalogClock}, {@link android.widget.Button}, {@link android.widget.Chronometer},
{@link android.widget.ImageButton}, {@link android.widget.ImageView}, {@link
android.widget.ProgressBar}, {@link android.widget.TextView}, {@link
android.widget.ViewFlipper}, {@link android.widget.AdapterViewFlipper}, {@link
android.widget.StackView}, {@link android.widget.ListView}, and {@link
android.widget.GridView}.</li>
</ul>


<h2>Extended Status Bar Notifications</h2>

<p>The {@link android.app.Notification} class has been extended to support more content-rich
status bar notifications when on xlarge screens.</p>

<ul>
  <li>New {@link android.app.Notification.Builder} class helps you easily create new {@link
android.app.Notification} objects</li>
  <li>Support for a title in the status bar ticker (in addition to the normal ticker text)</li>
  <li>Support for a large "sender" icon in the notification&mdash;a second icon intended for
social applications to show the contact photo of the person who is the source of the
notification</li>
  <li>Support for custom layouts in the status bar ticker</li>
  <li>Support for buttons in the expanded notification that deliver custom intents
(such as to control ongoing music in the background)</li>
</ul>


<h2>Plus Android 2.3</h2>

<p>Honeycomb includes all platform changes introduced for Android 2.3.</p>

<p>To take full advantage of Honeycomb, you should also be aware of the new features
and APIs introduced for Android 2.3. To learn more, read the <a
href="{@docRoot}sdk/android-2.3.html">Android 2.3 release notes</a>.</p>

<div class="special">
<p>To set up your preview SDK and start developing apps for Honeycomb, see the <a
href="{@docRoot}sdk/preview/installing.html">Getting Started</a> guide.</p>
</div>



















