SlideShare a Scribd company logo
Building an Android client




Rohit Nayak
Talentica Software
Agenda

    iPhone and the Mobile App Explosion

    How mobile apps differ

    Android philosophy

    Development Platform

    Core Android Concepts

    App Demo

    App Dissection
The iPhone Phenomenon
http://en.wikipedia.org/wiki/File:IPhone_sales_per_quarter.svg
http://www.techcrunch.com/2009/10/21/how-the-iphone-is-blowing-everyone-else-away-in-charts/
Mobile Limitations

    Screen size

    Battery Limitations
    −   CPU tick, memory refresh, screen lighting

    Speed

    Memory

    Keyboard
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
Motorola
 Droid
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
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
Core Applications

    Email client

    SMS

    Calendar

    Maps

    Contacts
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
Android Stack
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
Key Programming Concepts

    Activities

    Services

    Intents

    Receivers

    Content Providers
Activities

    Runnable

    Interacts with user

    Associated with views

    Requests data or services via Intents
                   Services

    Runnable

    Background process

    MP3 player, polling sub-system
Receivers

    Broadcast receivers (low battery)

    Intent Receivers

    Intents registered with Android

              Content Providers

    Share data with activities / services

    Queries in the form of a URI
    −   content://contacts/people
Java For Mobile Devices – Building a client application for the Android platform
Installing Dev Environment

    Java 5/6

    Eclipse

    Android SDK

    $PATH

    ADT plugin

    Install Updates
Development Environment

    Eclipse

    ADT plugin

    Emulator, Device Controls

    Android Virtual Device Manager

    Dalvik Debug Monitor Service
    −   Debugger, LogCat
    −   File Explorer, Threads, Heap

    Physical Device Testing
Demo

App Preview
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
Inside Poolster

    Directory Structure

    Manifest File

    App Launching

    Activity Life Cycle

    Layout Files

    Menu
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>
Inside Poolster - 2

    The Main activity

    REST Client

    Object-XML marshal/demarshal

    Internationalization

    AdMobs Integration

    Position

    Database
Deploying

    Join Android Developer Program

    Eclipse Android Tool “Export Signed
    Package”

    Upload .apk file to Android Market
Resources

    http://developer.android.com

    Professional Android Application
    Development (Wrox)

    Android Application Development (O’Riley)

    http://www.screaming-
    penguin.com/AndroidResources
Thanks

More Related Content

Viewers also liked (6)

PDF
Ruboto at GDG Oslo 2013
Uwe Kubosch
 
PDF
DevFest Nordeste - 2014 - Ruboto - Breno Moura
Breno Moura
 
PDF
Ruby and Android
kishima7
 
PDF
Driving business results through effective leadership
WhiteLight Consulting Pvt Ltd
 
PDF
Aj vm pdf
Nasir Noor
 
PDF
Ruboto
Ehthisham Tk
 
Ruboto at GDG Oslo 2013
Uwe Kubosch
 
DevFest Nordeste - 2014 - Ruboto - Breno Moura
Breno Moura
 
Ruby and Android
kishima7
 
Driving business results through effective leadership
WhiteLight Consulting Pvt Ltd
 
Aj vm pdf
Nasir Noor
 
Ruboto
Ehthisham Tk
 

Similar to Java For Mobile Devices – Building a client application for the Android platform (20)

PPT
Building an Android client
rohitnayak
 
PDF
Introduction to Android
Jindal Gohil
 
PPT
PPT Companion to Android
Dharani Kumar Madduri
 
PPTX
Android
Badrul Alam bulon
 
PPTX
[Wroclaw #1] Android Security Workshop
OWASP
 
PPT
Android Anatomy
Bhavya Siddappa
 
PPT
Android For Java Developers
Mike Wolfson
 
PPTX
Getting started with android programming
PERKYTORIALS
 
PPT
LA_FUNDAMENTALS OF Android_Unit I ONE.ppt
JeevaMCSEKIOT
 
PPTX
Android development-tutorial
ilias ahmed
 
PPT
Getting started with android dev and test perspective
Gunjan Kumar
 
PDF
Ch1 hello, android
Jehad2012
 
PDF
Android Basics
Arvind Sahu
 
PPT
Android ppt
Basavaraj Amogi
 
PDF
Introduction to Android App Development
Andri Yadi
 
PDF
PT GTUG 1st Technical Tession - Android
drjuniornet
 
PPT
Build Mobile Application In Android
dnnddane
 
PDF
Slides bootcamp21
dxsaki
 
PPTX
Introduction to android
zeelpatel0504
 
PDF
HTML5 vs Native Android: Smart Enterprises for the Future
Motorola Mobility - MOTODEV
 
Building an Android client
rohitnayak
 
Introduction to Android
Jindal Gohil
 
PPT Companion to Android
Dharani Kumar Madduri
 
[Wroclaw #1] Android Security Workshop
OWASP
 
Android Anatomy
Bhavya Siddappa
 
Android For Java Developers
Mike Wolfson
 
Getting started with android programming
PERKYTORIALS
 
LA_FUNDAMENTALS OF Android_Unit I ONE.ppt
JeevaMCSEKIOT
 
Android development-tutorial
ilias ahmed
 
Getting started with android dev and test perspective
Gunjan Kumar
 
Ch1 hello, android
Jehad2012
 
Android Basics
Arvind Sahu
 
Android ppt
Basavaraj Amogi
 
Introduction to Android App Development
Andri Yadi
 
PT GTUG 1st Technical Tession - Android
drjuniornet
 
Build Mobile Application In Android
dnnddane
 
Slides bootcamp21
dxsaki
 
Introduction to android
zeelpatel0504
 
HTML5 vs Native Android: Smart Enterprises for the Future
Motorola Mobility - MOTODEV
 
Ad

More from IndicThreads (20)

PPTX
Http2 is here! And why the web needs it
IndicThreads
 
ODP
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
 
PPT
Go Programming Language - Learning The Go Lang way
IndicThreads
 
PPT
Building Resilient Microservices
IndicThreads
 
PPT
App using golang indicthreads
IndicThreads
 
PDF
Building on quicksand microservices indicthreads
IndicThreads
 
PDF
How to Think in RxJava Before Reacting
IndicThreads
 
PPT
Iot secure connected devices indicthreads
IndicThreads
 
PDF
Real world IoT for enterprises
IndicThreads
 
PPT
IoT testing and quality assurance indicthreads
IndicThreads
 
PPT
Functional Programming Past Present Future
IndicThreads
 
PDF
Harnessing the Power of Java 8 Streams
IndicThreads
 
PDF
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
 
PPTX
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
 
PDF
Cars and Computers: Building a Java Carputer
IndicThreads
 
PPTX
Scrap Your MapReduce - Apache Spark
IndicThreads
 
PPT
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
 
PPTX
Speed up your build pipeline for faster feedback
IndicThreads
 
PPT
Unraveling OpenStack Clouds
IndicThreads
 
PPTX
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
 
Http2 is here! And why the web needs it
IndicThreads
 
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
IndicThreads
 
Go Programming Language - Learning The Go Lang way
IndicThreads
 
Building Resilient Microservices
IndicThreads
 
App using golang indicthreads
IndicThreads
 
Building on quicksand microservices indicthreads
IndicThreads
 
How to Think in RxJava Before Reacting
IndicThreads
 
Iot secure connected devices indicthreads
IndicThreads
 
Real world IoT for enterprises
IndicThreads
 
IoT testing and quality assurance indicthreads
IndicThreads
 
Functional Programming Past Present Future
IndicThreads
 
Harnessing the Power of Java 8 Streams
IndicThreads
 
Building & scaling a live streaming mobile platform - Gr8 road to fame
IndicThreads
 
Internet of things architecture perspective - IndicThreads Conference
IndicThreads
 
Cars and Computers: Building a Java Carputer
IndicThreads
 
Scrap Your MapReduce - Apache Spark
IndicThreads
 
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
IndicThreads
 
Speed up your build pipeline for faster feedback
IndicThreads
 
Unraveling OpenStack Clouds
IndicThreads
 
Digital Transformation of the Enterprise. What IT leaders need to know!
IndicThreads
 
Ad

Recently uploaded (20)

PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Top Managed Service Providers in Los Angeles
Captain IT
 

Java For Mobile Devices – Building a client application for the Android platform

  • 1. Building an Android client Rohit Nayak Talentica Software
  • 2. Agenda  iPhone and the Mobile App Explosion  How mobile apps differ  Android philosophy  Development Platform  Core Android Concepts  App Demo  App Dissection
  • 6. Mobile Limitations  Screen size  Battery Limitations − CPU tick, memory refresh, screen lighting  Speed  Memory  Keyboard
  • 7. 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
  • 9. 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
  • 10. 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
  • 11. Core Applications  Email client  SMS  Calendar  Maps  Contacts
  • 12. 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
  • 14. 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
  • 15. Key Programming Concepts  Activities  Services  Intents  Receivers  Content Providers
  • 16. Activities  Runnable  Interacts with user  Associated with views  Requests data or services via Intents Services  Runnable  Background process  MP3 player, polling sub-system
  • 17. Receivers  Broadcast receivers (low battery)  Intent Receivers  Intents registered with Android Content Providers  Share data with activities / services  Queries in the form of a URI − content://contacts/people
  • 19. Installing Dev Environment  Java 5/6  Eclipse  Android SDK  $PATH  ADT plugin  Install Updates
  • 20. Development Environment  Eclipse  ADT plugin  Emulator, Device Controls  Android Virtual Device Manager  Dalvik Debug Monitor Service − Debugger, LogCat − File Explorer, Threads, Heap  Physical Device Testing
  • 22. 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
  • 23. Inside Poolster  Directory Structure  Manifest File  App Launching  Activity Life Cycle  Layout Files  Menu
  • 24. 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>
  • 25. Inside Poolster - 2  The Main activity  REST Client  Object-XML marshal/demarshal  Internationalization  AdMobs Integration  Position  Database
  • 26. Deploying  Join Android Developer Program  Eclipse Android Tool “Export Signed Package”  Upload .apk file to Android Market
  • 27. Resources  http://developer.android.com  Professional Android Application Development (Wrox)  Android Application Development (O’Riley)  http://www.screaming- penguin.com/AndroidResources