14. ANDROID MOMENTUM WORLDWIDE SMARTPHONE SALES BY OS 2009 Market Share 14.4% 3.9% 2010 Market Share 15.7% 22.7% Source: Gartner Research, Feb 2011
15. ANDROID TOPS IPHONE IN U.S. MOBILE WEB TRAFFIC Q4'09 Q2'10 Q4'10 0% 100% 31 17 13 21 25 21 8 5 28 34 30 13 5 8 26 Source: AdMob Mobile Metrics Report, December 2010 Windows Mobile/Phone 7 OS Symbian OS Apple iOS/iPhone OS Android/Google OS Linux OS Palm/WebOS BlackBerry OS Meego/Maemo Others
34. FRAGMENTS (ADDING TO ACTIVITY) XOOM_hc_app /res/layout/main.xml (List) Fragment Activity layout (Content) Fragment with embedded image PictureList.java ContentFragment.java
52. GYROSCOPE SENSOR android.hardware.SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); Sensor gyro = sm. getDefaultSensor (Sensor.TYPE_GYROSCOPE); if (gyro != null) { // have got the gyroscope boolean active = sm.registerListener( this, gyro, sm.SENSOR_DELAY_NORMAL);
53. GYROSCOPE SENSOR READING public class main extends Activity implements SensorEventListener { public void onAccuracyChanged(Sensor s, int i) { } private float x,y,z; public void onSensorChanged(SensorEvent event) { switch (event.sensor.getType()) { case Sensor.TYPE_GYROSCOPE: x = event.values[0]; y = event.values[1]; z = event.values[2]; break; Minor “gotcha” – you don’t own the event, and can’t hold onto it.
54. BAROMETER SENSOR SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE); Sensor bar = sm. getDefaultSensor (Sensor.TYPE_PRESSURE); if (bar != null) { // have got the barometer boolean active = sm.registerListener( this, bar, sm.SENSOR_DELAY_NORMAL);
Interconnectivity is creating new social behaviors and changing the way consumers interact with and share information.
Motorola XOOM and Atrix the first expressions of our push into new converged product categories.
Succeeding in this new landscape requires applications that enable new user experiences. We want to work closely with you through MOTODEV to create and delivers new types of apps that are relevant across multiple screens, sync across device types and drive interactions between devices. That is what tonight is all about so thank you for coming and let’s get started!
Dual-core 1.0 GHz NVIDIA Tegra 2 with ultra-low power NVIDIA GeForce GPU Android 2.2.1 (Froyo) 4 inch qHD pentile display (540x960) “ normal” screen size, “high” screen density (hdpi) Flash Player 10.1 Record and playback 720p HD video at 30 fps (decode 1080p video)
SOURCE: Gartner Research Article – Title - Gartner Says Worldwide Mobile Device Sales to End Users Reached 1.6 Billion Units in 2010; Smartphone Sales Grew 72 Percent in 2010 (2/9/2011) “ In the smartphone operating system (OS) market, ''Android grew 888.8 percent in 2010 and moved to the No. 2 position.” – (pg3 of 4) From Ingrid K.
Possible Replacement for Slide 7 with updated figures. Need to find out what the source is for this chart. SOURCE: From Consumer Insights Report (Motorola) CRMOTO Q4'10 USA Report.ppt
This is a typical Android smartphone. Across the top is your status bar where your status icons appear (battery, wifi, etc). This is also where your notifications can be found. Touching the status bar opens the notification panel. Moving to the bottom of the device, is where you’ll find buttons. Prehoneycomb devices were required to have 3 buttons – menu, home, and back. There’s usually a fourth button (in this case search). So that’s a typical smartphone.
When you’re talking about tablets things change. On the hardware side there are only three buttons on the device – volume up, volume down, and power.
Moving to the home screen it’s a very different UI. From an apps perspective there are a couple things you should be aware of. For instance… You have the system bar along the bottom. The back and home button on the lower left. There is NO menu button. Menus are now all in software and only available from within an application. On the lower right is where your status bar icons now appear as well as you notification panel. From a user perspective there’s much more to it but from a developer’s standpoint, those are the things you should be aware of. They won’t necessarily impact your application but it may change the way you think about things.
So lets talk about the writing apps. You can’t talk about the XOOM without talking about honeycomb. One of the biggest changes for applications is in the UI. This is a list of the additions and redesigns Google made to the UI. I’ll walk you through a handful of them.
Select a view that you want to associate the dimmer with (I have an id assigned to my root linearLayout) and set the visibility. You can attach the call to any view (including buttons) so may want to toggle the dimmer. If you touch the system bar the icons reappear. Touching the view dims the system bar. Book reader is a good example of dimming.
Replaces the title bar. This is the simplest form of an action bar. The Action Bar is included by default in all activities that target Android 3.0 or greater (setting minSdk or targetSdk = 11) Basic action bar with an overflow menu. The menu in the action bar replaces the hard menu button on the front of the device. The default behavior for the application icon is to do nothing. The title can be displayed or hidden.
Action bars get more feature rich from there. There are many extensions you can make to the action bar including -- actionable application icon with R.id.home in onOptionsMenuSelected -- adding tabs -- creating individual actionable items with or without text and titles -- Provide a drop-down list for navigation -- Provide interactive "action views" in place of action items (such as a search box).
One final note on menus. To support forward compatibility a soft menu button is provided along the system bar for pre-honeycomb apps. If you open the menu you can see where and what the menu items looks like.
Starting with 3.0 developers can divide the Activities of their applications into subcomponents called Fragments. Fragments -- can be added, removed, replaced, and animated inside an Activity dynamically -- are modular and reusable across multiple Activities. Here we’ve got the updated version of the contacts app showing the list of contacts in a fragment on the left and the details of the selected contact in a fragment on the right.
Fragments can not stand on their own. They must be included in an activity. However fragments are self contained in that they have their own life cycle as well as their own UI layout. One of the most common ways to use fragments is to associate a content fragment with an item in a list. There’s a separate type of fragment, called a ListFragment, that lets you do this. The content fragment can contain anything you would normally use in an activity – images, text, ui elements, etc.
(Nothing changes in the AndroidManifest file) Adding a fragment to an activity requires updates to the activity’s layout file. You must add the fragment to your Activity’s layout file with a <fragment> tag. In the fragment tag you declare the class name of the fragment that’s defined usually in a separate .java file. Pay attention to the root layout or container you use. In this case I used LinearLayout which, by default has a top to bottom placement. So when I first did this app my fragments did not appear side-by-side, they appeared top-to-bottom. I needed to add orientation=horizontal in order to get the side-by-side. The device’s orientation is landscape by default so if you want a portrait version of the app to be top-to-bottom you’ll need to create another layout-port file specifying orientation=portrait.
Follow instructions for using Data Storage to external media http://developer.android.com/guide/topics/data/data-storage.html Every Android-compatible device supports a shared storage. Shared files: Music/ - Media scanner classifies all media found here as user music. Podcasts/ - Media scanner classifies all media found here as a podcast. Ringtones/ - Media scanner classifies all media found here as a ringtone. Alarms/ - Media scanner classifies all media found here as an alarm sound. Notifications/ - Media scanner classifies all media found here as a notification sound. Pictures/ - All photos (excluding those taken with the camera). Movies/ - All movies (excluding those taken with the camcorder). Download/ - Miscellaneous downloads. Private files can be placed in /android/data/<appname> folder.
Apps are always forward compatible but……
Apps are always forward compatible but……
Test Criteria: App Behavior Is all functionality accessible, performing well, and fitting well on the device screen? Are all input methods properly supported? Are all strings spelled correctly and properly translated (if multiple languages are supported)? Stability Tests Does the app handle both app and system events correctly, including any errors / failures? XOOM Specific Does the app support the Tablet UI framework and are all stacks and activity frameworks properly maintained? Does the app leverage the new Action Bar API and do all controls respond properly?
Android Market filters Mismatched manifest.ini settings Layout issues specific to different sized displays Missing drawable resources Improperly localized apps Forbidden or dangerous permission