SlideShare a Scribd company logo
Android




Sean Sullivan
June 22, 2011
• Introduction
• OSB Android app
• Android tablets
• Android 3.x
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
iPhone   Android
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android tablets
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
What’s new in Android 3.x?
Android - Open Source Bridge 2011
•   ‘holographic’ UI theme
•   Action Bar
•   Fragments
•   Drag and Drop
•   Digital Rights Management
•   and more...
‘holographic’ UI
Android - Open Source Bridge 2011
Action Bar
“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.”
Action Bar
Android - Open Source Bridge 2011
Fragments
“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
• 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
<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>
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
    }

}
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Drag and drop
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Renderscript
“The Renderscript rendering and computational APIs
offer a low-level, high performance means of carrying out
mathematical calculations and 3D graphics rendering.”
Android - Open Source Bridge 2011
New animation API
Android - Open Source Bridge 2011
New JSON API
Android - Open Source Bridge 2011
Digital Rights Management API
Android - Open Source Bridge 2011
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 2010
   http://blog.netflix.com/2010/11/netflix-on-android.html
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 2010
      http://blog.netflix.com/2010/11/netflix-on-android.html
Android - Open Source Bridge 2011
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)
Application development
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android emulator
Android - Open Source Bridge 2011
Emulator performance
Android - Open Source Bridge 2011
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
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
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
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Sample code
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
API differences
Android - Open Source Bridge 2011
http://developer.android.com/sdk/api_diff/11/changes.html
Best practices
http://android-developers.blogspot.com/2011/02/best-practices-for-honeycomb-and.html
Android - Open Source Bridge 2011
What’s next?
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
Final thoughts

• Android 3.1 is for tablets, not phones
• XOOM, Galaxy Tab, G-Slate are available now
• More tablets coming to market
• Learn the Fragments API
Thank you

More Related Content

Android - Open Source Bridge 2011

  • 2. • Introduction • OSB Android app • Android tablets • Android 3.x
  • 5. iPhone Android
  • 29. What’s new in Android 3.x?
  • 31. ‘holographic’ UI theme • Action Bar • Fragments • Drag and Drop • Digital Rights Management • and more...
  • 35. “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.”
  • 39. “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
  • 40. • 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
  • 41. <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>
  • 42. 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     } }
  • 49. “The Renderscript rendering and computational APIs offer a low-level, high performance means of carrying out mathematical calculations and 3D graphics rendering.”
  • 57. 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 2010 http://blog.netflix.com/2010/11/netflix-on-android.html
  • 58. 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 2010 http://blog.netflix.com/2010/11/netflix-on-android.html
  • 60. 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)
  • 68. 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
  • 69. 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
  • 70. 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
  • 93. Final thoughts • Android 3.1 is for tablets, not phones • XOOM, Galaxy Tab, G-Slate are available now • More tablets coming to market • Learn the Fragments API