android 3.1 - portland code camp 2011
DESCRIPTION
Android 3.1 Portland Code Camp June 4, 2011 Portland, OregonTRANSCRIPT
![Page 1: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/1.jpg)
Android 3.1
Portland Code CampSean SullivanJune 4, 2011
![Page 2: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/2.jpg)
• Introduction
• Android devices
• Android 3.x
• App development
![Page 3: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/3.jpg)
![Page 4: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/4.jpg)
![Page 5: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/5.jpg)
![Page 6: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/6.jpg)
iPhone Android
![Page 7: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/7.jpg)
![Page 8: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/8.jpg)
![Page 9: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/9.jpg)
![Page 10: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/10.jpg)
![Page 11: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/11.jpg)
Mobile World CongressFebruary 2011
![Page 12: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/12.jpg)
![Page 13: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/13.jpg)
source: comScore
![Page 14: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/14.jpg)
![Page 15: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/15.jpg)
![Page 16: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/16.jpg)
![Page 17: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/17.jpg)
Android phones
![Page 18: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/18.jpg)
2008
![Page 19: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/19.jpg)
2009
![Page 20: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/20.jpg)
2010
![Page 21: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/21.jpg)
2011
![Page 22: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/22.jpg)
Android tablets
![Page 23: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/23.jpg)
![Page 24: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/24.jpg)
![Page 25: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/25.jpg)
![Page 26: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/26.jpg)
![Page 27: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/27.jpg)
![Page 28: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/28.jpg)
![Page 29: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/29.jpg)
![Page 30: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/30.jpg)
XOOM tech specs
• Android 3.1
• 10.1 inch touchscreen display
• 1280 x 800
• 160 dpi
![Page 31: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/31.jpg)
• NVIDIA Tegra 2 dual-core chipset
• HDMI connector
• two cameras
• no physical keyboard
XOOM tech specs
![Page 32: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/32.jpg)
![Page 33: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/33.jpg)
![Page 34: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/34.jpg)
What’s new in Android 3.x?
![Page 35: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/35.jpg)
![Page 36: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/36.jpg)
• ‘holographic’ UI theme
• Action Bar
• Fragments
• Drag and Drop
• Digital Rights Management
• and more...
![Page 37: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/37.jpg)
‘holographic’ UI
![Page 38: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/38.jpg)
![Page 39: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/39.jpg)
Action Bar
![Page 40: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/40.jpg)
“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 41: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/41.jpg)
Action Bar
![Page 42: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/42.jpg)
![Page 43: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/43.jpg)
![Page 44: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/44.jpg)
Fragments
![Page 45: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/45.jpg)
“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 46: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/46.jpg)
• 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 47: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/47.jpg)
<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 48: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/48.jpg)
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 49: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/49.jpg)
![Page 50: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/50.jpg)
![Page 51: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/51.jpg)
Drag and drop
![Page 52: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/52.jpg)
![Page 53: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/53.jpg)
![Page 54: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/54.jpg)
Renderscript
![Page 55: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/55.jpg)
“The Renderscript rendering and computational APIs offer a low-level, high performance means of carrying out mathematical calculations and 3D graphics rendering.”
![Page 56: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/56.jpg)
![Page 57: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/57.jpg)
New animation API
![Page 58: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/58.jpg)
![Page 59: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/59.jpg)
Digital Rights Management API
![Page 60: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/60.jpg)
![Page 61: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/61.jpg)
![Page 62: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/62.jpg)
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 63: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/63.jpg)
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 64: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/64.jpg)
![Page 65: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/65.jpg)
New in Android 3.1
• Open Accessory API
• USB Host API
• Input from mice, joysticks, gamepads
• Resizable home screen widgets
• Media Transfer Protocol (MTP)
• Real-time Transport Protocol (RTP)
![Page 66: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/66.jpg)
Application development
![Page 67: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/67.jpg)
![Page 68: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/68.jpg)
![Page 69: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/69.jpg)
Android emulator
![Page 70: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/70.jpg)
![Page 71: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/71.jpg)
Emulator performance
![Page 72: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/72.jpg)
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 73: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/73.jpg)
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 74: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/74.jpg)
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 75: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/75.jpg)
![Page 76: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/76.jpg)
![Page 77: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/77.jpg)
![Page 78: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/78.jpg)
![Page 79: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/79.jpg)
![Page 80: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/80.jpg)
![Page 81: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/81.jpg)
![Page 82: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/82.jpg)
![Page 83: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/83.jpg)
![Page 84: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/84.jpg)
![Page 85: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/85.jpg)
Sample code
![Page 86: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/86.jpg)
![Page 87: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/87.jpg)
![Page 88: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/88.jpg)
API differences
![Page 89: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/89.jpg)
![Page 90: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/90.jpg)
http://developer.android.com/sdk/api_diff/11/changes.html
![Page 91: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/91.jpg)
Best practices
![Page 92: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/92.jpg)
http://android-developers.blogspot.com/2011/02/best-practices-for-honeycomb-and.html
![Page 93: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/93.jpg)
![Page 94: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/94.jpg)
What’s next?
![Page 95: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/95.jpg)
![Page 96: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/96.jpg)
![Page 97: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/97.jpg)
Final thoughts
• Android 3.1 is for tablets, not phones
• XOOM and G-Slate are available now
• More tablets coming to market
• Learn the Fragments API
![Page 98: Android 3.1 - Portland Code Camp 2011](https://reader033.vdocument.in/reader033/viewer/2022051609/5462091caf7959477b8b4d33/html5/thumbnails/98.jpg)
Thank you