Building an Android client
-
Upload
rohitnayak -
Category
Documents
-
view
3.664 -
download
0
description
Transcript of Building an Android client
![Page 1: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/1.jpg)
Building an Android client
Rohit Nayak
Talentica Software
![Page 2: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/2.jpg)
Agenda
iPhone and the Mobile App Explosion How mobile apps differ Android philosophy Development Platform Core Android Concepts App Demo App Dissection
![Page 3: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/3.jpg)
The iPhone Phenomenon
![Page 4: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/4.jpg)
http://en.wikipedia.org/wiki/File:IPhone_sales_per_quarter.svg
![Page 5: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/5.jpg)
http://www.techcrunch.com/2009/10/21/how-the-iphone-is-blowing-everyone-else-away-in-charts/
![Page 6: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/6.jpg)
Mobile Limitations
Screen size Battery Limitations
CPU tick, memory refresh, screen lighting
Speed Memory Keyboard
![Page 7: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/7.jpg)
Usage Traits Universal, Always Available Small attention span Interruptible (calls, green light!) GPS Tap, Flick, Rotate, Pinch, Shake Accelerometer Voice, Texting Handwriting recognition Dropped calls, lack of coverage
![Page 8: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/8.jpg)
MotorolaDroid
![Page 9: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/9.jpg)
Motorola Droid
Android 2.0, 256MB 4.56-by-2.36-inch, 0.54 inch thick,
6oz, 480-by-854-pixel, 6hrs Camera: 5MP/4X flash, video rec Slide-out QWERTY keyboard Mail: Gmail, MS Exchange Google Maps Navigation
![Page 10: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/10.jpg)
The Android mobile platform Linux 2.6 kernel Dalvik VM (.dex, .apk) Application framework SQLite, Integrated browser (Webkit) OpenGL graphics Media support GSM/CDMA, Wireless Camera, GPS, Accelerometer
![Page 11: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/11.jpg)
Core Applications
Email client SMS Calendar Maps Contacts
![Page 12: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/12.jpg)
Criticisms / Issues
Not a std linux distribution Not Java ME/SE, limited libraries Apps run only from on-board memory Version compatibility Obsolete search results
![Page 13: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/13.jpg)
Android Stack
![Page 14: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/14.jpg)
Demo
Android Contacts App
![Page 15: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/15.jpg)
Application Framework
Activity Manager: app life cycle, navigation stack
Views: layout, widgets Content Providers: data
storage/sharing Resource Manager: strings, images Notification Manager: alert
mechanisms
![Page 16: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/16.jpg)
Key Building Blocks
Activities Services Intents Receivers Content Providers
![Page 17: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/17.jpg)
Intents Describes operation to be performed Action / Data pair
ACTION_VIEW content://contacts/people ACTION_DIAL content://contacts/people/4 ACTION_DIAL tel:9822012345
Category (LAUNCHER, HOME, PREFERENCE)
Type (data mime type) Extras (hashmap for custom data)
![Page 18: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/18.jpg)
Activities Application consists of activities Interacts with user Associated with views Requests data or services via Intents Calls other activities
Services Background process MP3 player, polling sub-system
![Page 19: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/19.jpg)
Receivers Broadcast receivers (low battery, call,
sms) Intent Receivers Intents registered with Android
Content Providers
Share data with activities / services Queries in the form of a URI
content://contacts/people
![Page 20: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/20.jpg)
![Page 21: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/21.jpg)
Installing Dev Environment
Java 5/6 Eclipse Android SDK $PATH ADT plugin Install Updates
![Page 22: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/22.jpg)
ADT Plugin
Emulator, Device Controls Android Virtual Device Manager Dalvik Debug Monitor Service
Debugger, LogCat File Explorer, Threads, Heap
Physical Device Testing
![Page 23: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/23.jpg)
Demo
App Preview
![Page 24: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/24.jpg)
Poolster
Online “football pools” application Entities: Game, User Game Stake, Option, Ends To join User chooses an Option REST Webservice backend Clients: iPhone, Grails, Android,
Silverlight
![Page 25: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/25.jpg)
Inside Poolster
Directory Structure Manifest File App Launching Layout Files Menu
![Page 26: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/26.jpg)
Directory Structure /src /res
/drawable (-ldpi, -hdpi) /layout (-small, -large, -land) /menu /raw /values
/bin .class, .dex, .apk
/gen R.java - constants
![Page 27: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/27.jpg)
AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.talentica.poolster" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".GamesList" android:label="@string/app_name"> </activity> <activity android:name=".Login" android:label="@string/app_name"> </activity> </application> <uses-sdk android:minSdkVersion="3" /></manifest>
![Page 28: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/28.jpg)
The Main activity
Intent Action = android.intent.action.MAIN
Category = android.intent.category.LAUNCHER
Set layout Initialise views Set title, menu Launching another activity
![Page 29: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/29.jpg)
Layouts
Absolute, Relative, Linear, Table Dips vs pixels Screen size/density Landscape Widgets: TextView , ListView,
ImageView, EditText, RadioGroup, Gallery, Button
![Page 30: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/30.jpg)
Inside Poolster - 2
REST Client Xstream Internationalization Location, Maps Database Contacts AdMobs Integration
![Page 31: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/31.jpg)
Deploying
Join Android Developer Program Eclipse Android Tool “Export Signed
Package” Upload .apk file to Android Market
![Page 32: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/32.jpg)
Resources
http://developer.android.com Professional Android Application
Development (Wrox) Android Application Development
(O’Riley) http://www.screaming-penguin.com/
AndroidResources
![Page 33: Building an Android client](https://reader031.fdocuments.in/reader031/viewer/2022020115/554f770eb4c9058a148b5642/html5/thumbnails/33.jpg)
Thanks