Android 3.0 Portland Java User Group 2011-03-15

92
Android 3.0 Portland Java User Group Sean Sullivan March 15, 2011

description

Android 3.0 Portland Java User Group Portland Oregon 2011-03-15

Transcript of Android 3.0 Portland Java User Group 2011-03-15

Page 1: Android 3.0 Portland Java User Group 2011-03-15

Android 3.0

Portland Java User GroupSean Sullivan

March 15, 2011

Page 2: Android 3.0 Portland Java User Group 2011-03-15

• Introduction

• Android devices

• Android 3.0

• App development

Page 3: Android 3.0 Portland Java User Group 2011-03-15
Page 4: Android 3.0 Portland Java User Group 2011-03-15
Page 5: Android 3.0 Portland Java User Group 2011-03-15
Page 6: Android 3.0 Portland Java User Group 2011-03-15

Mobile World CongressFebruary 2011

Page 7: Android 3.0 Portland Java User Group 2011-03-15
Page 8: Android 3.0 Portland Java User Group 2011-03-15

source: comScore

Page 9: Android 3.0 Portland Java User Group 2011-03-15
Page 10: Android 3.0 Portland Java User Group 2011-03-15

Android phones

Page 11: Android 3.0 Portland Java User Group 2011-03-15

2008

Page 12: Android 3.0 Portland Java User Group 2011-03-15

2009

Page 13: Android 3.0 Portland Java User Group 2011-03-15

2010

Page 14: Android 3.0 Portland Java User Group 2011-03-15

2011

Page 15: Android 3.0 Portland Java User Group 2011-03-15

Android tablets

Page 16: Android 3.0 Portland Java User Group 2011-03-15
Page 17: Android 3.0 Portland Java User Group 2011-03-15
Page 18: Android 3.0 Portland Java User Group 2011-03-15
Page 19: Android 3.0 Portland Java User Group 2011-03-15
Page 20: Android 3.0 Portland Java User Group 2011-03-15
Page 21: Android 3.0 Portland Java User Group 2011-03-15
Page 22: Android 3.0 Portland Java User Group 2011-03-15
Page 23: Android 3.0 Portland Java User Group 2011-03-15

XOOM tech specs

• Android 3.0

• 10.1 inch touchscreen display

• 1280 x 800

• 160 dpi

Page 24: Android 3.0 Portland Java User Group 2011-03-15

• NVIDIA Tegra 2 dual-core chipset

• HDMI connector

• two cameras

• no physical keyboard

XOOM tech specs

Page 25: Android 3.0 Portland Java User Group 2011-03-15
Page 26: Android 3.0 Portland Java User Group 2011-03-15
Page 27: Android 3.0 Portland Java User Group 2011-03-15
Page 28: Android 3.0 Portland Java User Group 2011-03-15

What’s new in Android 3.0?

Page 29: Android 3.0 Portland Java User Group 2011-03-15
Page 30: Android 3.0 Portland Java User Group 2011-03-15

• ‘holographic’ UI theme

• Action Bar

• Fragments

• Drag and Drop

• Digital Rights Management

• and more...

Page 31: Android 3.0 Portland Java User Group 2011-03-15

‘holographic’ UI

Page 32: Android 3.0 Portland Java User Group 2011-03-15
Page 33: Android 3.0 Portland Java User Group 2011-03-15

Action Bar

Page 34: Android 3.0 Portland Java User Group 2011-03-15

“The Action Bar is a widget for activities that replaces the traditional title bar at the top of the screen.

By default, the Action Bar includes the application logo on the left side, followed by the activity title, and any available items from the Options Menu on the right side.”

Page 35: Android 3.0 Portland Java User Group 2011-03-15

Action Bar

Page 36: Android 3.0 Portland Java User Group 2011-03-15
Page 37: Android 3.0 Portland Java User Group 2011-03-15
Page 38: Android 3.0 Portland Java User Group 2011-03-15

Fragments

Page 39: Android 3.0 Portland Java User Group 2011-03-15

“A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running.”

http://developer.android.com/guide/topics/fundamentals/fragments.html

Page 40: Android 3.0 Portland Java User Group 2011-03-15

• Fragments decompose application functionality and UI into reusable modules

• Add multiple fragments to a screen to avoid switching activities

• Fragments have their own lifecycle, state, and back stack

• Fragments require API Level "Honeycomb" or greater

http://developer.android.com/guide/topics/fundamentals/fragments.html

Page 41: Android 3.0 Portland Java User Group 2011-03-15

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="match_parent">

    <fragment class="com.example.android.apis.app.TitlesFragment"            android:id="@+id/titles" android:layout_weight="1"            android:layout_width="0px"            android:layout_height="match_parent" />

    <FrameLayout android:id="@+id/details" android:layout_weight="1"            android:layout_width="0px"            android:layout_height="match_parent" />    </LinearLayout>

Page 42: Android 3.0 Portland Java User Group 2011-03-15

public static class TitlesFragment extends ListFragment {    private boolean mDualPane;    private int mCurCheckPosition = 0;

    @Override    public void onActivityCreated(Bundle savedState) {        super.onActivityCreated(savedState); // do something here    }

    @Override    public void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        outState.putInt("curChoice", mCurCheckPosition);    }

    @Override    public void onListItemClick(ListView l, View v, int pos, long id) {        // do something here    }

}

Page 43: Android 3.0 Portland Java User Group 2011-03-15
Page 44: Android 3.0 Portland Java User Group 2011-03-15
Page 45: Android 3.0 Portland Java User Group 2011-03-15

Drag and drop

Page 46: Android 3.0 Portland Java User Group 2011-03-15
Page 47: Android 3.0 Portland Java User Group 2011-03-15
Page 48: Android 3.0 Portland Java User Group 2011-03-15

Renderscript

Page 49: Android 3.0 Portland Java User Group 2011-03-15

“The Renderscript rendering and computational APIs offer a low-level, high performance means of carrying out mathematical calculations and 3D graphics rendering.”

Page 50: Android 3.0 Portland Java User Group 2011-03-15
Page 51: Android 3.0 Portland Java User Group 2011-03-15

New animation API

Page 52: Android 3.0 Portland Java User Group 2011-03-15
Page 53: Android 3.0 Portland Java User Group 2011-03-15

Digital Rights Management API

Page 54: Android 3.0 Portland Java User Group 2011-03-15
Page 55: Android 3.0 Portland Java User Group 2011-03-15
Page 56: Android 3.0 Portland Java User Group 2011-03-15

The same security issues that have led to piracy concerns on the Android platform have made it difficult for us to secure a common Digital Rights Management (DRM) system on these devices. [...] Although we don’t have a common platform security mechanism and DRM, we are able to work with individual handset manufacturers to add content protection to their devices.

November 2010http://blog.netflix.com/2010/11/netflix-on-android.html

Page 57: Android 3.0 Portland Java User Group 2011-03-15

Unfortunately, this is a much slower approach and leads to a fragmented experience on Android, in which some handsets will have access to Netflix and others won’t.

We will also continue to work with the Android community, handset manufacturers, carriers, and other service providers to develop a standard, platform-wide solution that allows content providers to deliver their services to all Android-based devices

November 2010http://blog.netflix.com/2010/11/netflix-on-android.html

Page 58: Android 3.0 Portland Java User Group 2011-03-15

Application development

Page 59: Android 3.0 Portland Java User Group 2011-03-15
Page 60: Android 3.0 Portland Java User Group 2011-03-15
Page 61: Android 3.0 Portland Java User Group 2011-03-15

Android emulator

Page 62: Android 3.0 Portland Java User Group 2011-03-15
Page 63: Android 3.0 Portland Java User Group 2011-03-15

Emulator performance

Page 64: Android 3.0 Portland Java User Group 2011-03-15

About emulator performance

Because the Android emulator must simulate the ARM instruction set on your computer and the WXGA screen is significantly larger than a typical virtual device, emulator performance is much slower than a real device.

source: developer.android.com

Page 65: Android 3.0 Portland Java User Group 2011-03-15

In particular, initializing the emulator can be slow and can take several minutes, depending on your hardware. When the emulator is booting, there is limited user feedback, so please be patient and wait until you see the home screen (or lock screen) appear.

source: developer.android.com

Page 66: Android 3.0 Portland Java User Group 2011-03-15

However, you don't need to boot the emulator each time you rebuild your application—typically you only need to boot at the start of a session and keep it running. Also see the tip below for information about using a snapshot to drastically reduce startup time after the first initialization.We're working hard to resolve the performance issues and it will improve in future tools releases.

source: developer.android.com

Page 67: Android 3.0 Portland Java User Group 2011-03-15
Page 68: Android 3.0 Portland Java User Group 2011-03-15
Page 69: Android 3.0 Portland Java User Group 2011-03-15
Page 70: Android 3.0 Portland Java User Group 2011-03-15
Page 71: Android 3.0 Portland Java User Group 2011-03-15
Page 72: Android 3.0 Portland Java User Group 2011-03-15
Page 73: Android 3.0 Portland Java User Group 2011-03-15
Page 74: Android 3.0 Portland Java User Group 2011-03-15
Page 75: Android 3.0 Portland Java User Group 2011-03-15
Page 76: Android 3.0 Portland Java User Group 2011-03-15
Page 77: Android 3.0 Portland Java User Group 2011-03-15
Page 78: Android 3.0 Portland Java User Group 2011-03-15

Sample code

Page 79: Android 3.0 Portland Java User Group 2011-03-15
Page 80: Android 3.0 Portland Java User Group 2011-03-15
Page 81: Android 3.0 Portland Java User Group 2011-03-15

API differences

Page 82: Android 3.0 Portland Java User Group 2011-03-15
Page 83: Android 3.0 Portland Java User Group 2011-03-15

http://developer.android.com/sdk/api_diff/11/changes.html

Page 84: Android 3.0 Portland Java User Group 2011-03-15

Best practices

Page 85: Android 3.0 Portland Java User Group 2011-03-15

http://android-developers.blogspot.com/2011/02/best-practices-for-honeycomb-and.html

Page 86: Android 3.0 Portland Java User Group 2011-03-15
Page 87: Android 3.0 Portland Java User Group 2011-03-15
Page 88: Android 3.0 Portland Java User Group 2011-03-15

What’s next?

Page 89: Android 3.0 Portland Java User Group 2011-03-15
Page 90: Android 3.0 Portland Java User Group 2011-03-15
Page 91: Android 3.0 Portland Java User Group 2011-03-15

Final thoughts

• Android 3.0 is for tablets, not phones

• XOOM is available now

• Additional Honeycomb tablets coming soon

• Learn the Fragments API

Page 92: Android 3.0 Portland Java User Group 2011-03-15

Thank you