SlideShare a Scribd company logo
1 of 106
Android Application Development
                Seminar on Getting Started




                                                                           Ahsanul Karim
                                                             ahsanul.karim@sentinelbd.com
                                                                  Sentinel Solutions Ltd.
                                                                 http://www.sentinelbd.com
Engineering Students Association of Bangladesh (ESAB)   http://androidstream.wordpress.com
Before Introduction
Before Introduction: Your Suggestions
1. Monotonous discussion should be banned




But, let me try… after all it’s a free seminar.
No one’s going to kill me….
Before Introduction: Your Suggestions
2. This could be the first phase and it should be continued.
3. Arranging a workshop is better than seminar for the novice.

We have following probable plans:

  1.   Workshops
  2.   Training Programs
  3.   Onsite Contests with help from experienced Developers
  4.   Idea-based Contests with help from experienced Developers
  5.   Jamming Events



         Depends on your feedback
Before Introduction: Your Suggestions
4. You can emphasize on learning OOPs before starting
session on Android. Because very large number of Software
Developer have no clear concept on OOP.
           OOP concept is indispensable. But we have to learn in parallel.

5. It might get a little more interesting if the attendants are
allowed to have the opportunity to play or use some of the
android apps themselves.
           Can you suggest how can we do that? May be next time we’ll try.
           We may review some good apps today.
Before Introduction: Your Suggestions
6. If you give us some knowledge regarding to developing
android software and how to post them in the android
market it can be helpful to us in the future.
                                        We’ll do that in this session

7. You can give us some video about mobile application
programming which can help us.
  We’ll provide you complete course content with video tutorials
  we did in BASIS (Bangladesh Association of Software & Information Services)
Before Introduction: Your Suggestions
8. Consider all type of audience.
         Excellent suggestion. We’ll try that


9. Discuss from technological perspective as well as business
         Excellent suggestion. We’ll try that



10. Forecast about near future associated with Android.
         Excellent suggestion. We’ll try that
So Today…

 1. Get Basic Idea on Mobile and Smartphone Applications
 2. Get Basic Idea on Mobile, Smartphone & Tablet Platforms
 3. Identify the Position of Android Platform
 4. Background and History of Android
 5. Get the Idea: Why Should We Learn Android Platform
 6. Opportunities
 7. Some App Demos
 8. System Architecture
 9. Environment Setup to Kick-start
 10. Application Structure
 11. Cross-platform development
 12. Resources
Mobile and Smartphone Applications
Mobile Phones
A mobile phone (also called mobile, cellular telephone, cell phone,
or hand phone is an electronic device used to make
       1. Calls across a wide geographic area.
       2. Send Text SMS
         3.   Can see call records
         4.   Can capture image
         5.   Can run music
         6.   Can browse web etc.
To learn about mobile phones in details:
http://en.wikipedia.org/wiki/Mobile_phone

You’ll get detailed history about how this
technology evolved over the years
Mobile and Smartphone Applications
Mobile Phone Applications: Some Examples
Category: Utility Tools
Personal Finance Calculator




 Another example can be: Daily Planner Application
 Possible Features:
 1. Task List
 2. Reminder
 3. Appointment etc.
Mobile and Smartphone Applications
Mobile Phone Applications: Some Examples (Contd.)
Category: Games
Sudoku                 Tetris               Snake
Mobile and Smartphone Applications
Mobile Phone Applications: Development
1. Different Mobile phone vendor companies use different platforms
    for developing applications for their own platform.
2. We’ll discuss about a open “Legacy” platform as an example which
    is J2ME

             Java Platform, Micro Edition, or Java ME:
             1. It is a Java platform designed for embedded systems (mobile
                  Devices are one kind of such systems) .
             2.   Target devices range from industrial controls to mobile phones
                  with Java (KVM support).
                  Formerly known as Java 2 Platform, Micro Edition (J2ME).
                  For details:
                  http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition

 Nokia, Samsung, Sony Ericsson and many other vendors supports J2ME for
 applications and games development
Mobile and Smartphone Applications
Mobile Phone Applications: Development With J2ME
Limitations
1.   Memory Issues
     1.   Vendor Specific Implementation
     2.   Insufficient Memory
     3.   Inefficient Memory Management
2.   Device Compatibility Issues
3.   Not enough Access to Core System of the Phone
4.   Vendor Specific Implementation of KVM




That is why…
We see sites like this:
Mobile and Smartphone Applications
Smart Phones
1.   A smartphone is a mobile phone that
     offers more advanced computing
     ability, Features and connectivity
     than a contemporary mobile phones.
2.   Smartphones may be thought of as
     handheld computers integrated with a
     mobile telephone.
3.   They also provide their own Operating
     System with Application Development
     Framework

 To learn about smart phones in details:
 http://en.wikipedia.org/wiki/Smartphone

 You’ll get detailed history about how this
 technology evolved over the years
Mobile and Smartphone Applications
Smart Phones Platforms

 Android       iPhone    BlackBerry   Palm Pre
Mobile and Smartphone Applications
Tablet Platforms
  Android: Galaxy Tab   Apple: iPad
Overview of Application Platforms (alphabetically)
Platform     Language (s)        Remarks
Android      Java, C, C++        Open Source OS (Based on Linux)
                                 http://developer.android.com
bada         C, C++              Samsung’s mobile platform running on Linux or
                                 RealTime OS
                                 http://developer.bada.com
BlackBerry   Java, Web Apps      Java, Web Apps, Java ME compatible, extensions
                                 enable tighter integration
                                 http://na.blackberry.com/eng/developers
iOS          Objective-C, C      Requires Apple Developer Account
                                 http://developer.apple.com/iphone
MeeGo        Qt, C++, others     Intel and Nokia guided open source OS (based on
                                 Linux)
                                 http://meego.com/developers
Symbian      C, C++, Java, Qt,   OS built from the ground up for mobile devices
             Web Apps,           http://www.forum.nokia.com/symbian
             others
Overview of Application Platforms (Cont.)
Platform       Language (s)      Remarks
webOS          HTML, CSS,        Supports widget style programming (based on Linux)
               JavaScript, C     http://developer.palm.com
Windows        C#, C             .NET CF or Windows Mobile API, most devices ship
Mobile                           with Java ME compatible JVM
                                 http://developer.windowsmobile.com
Windows        C#, VB.NET        Silverlight, XNA Frameworks
Phone                            http://create.msdn.com


 Source: http://mobileplatforms.wikidot.com/
Application Platforms
Why Android
              T h e y s a y a p i c t u r e i s wo r t h
Why Android (Cont.)
                  T h e y s a y a p i c t u r e i s wo r t h
Why Android (Cont.)
Why Android (Cont.)
Why Android (Cont.)
Why Android (Cont.)
Why Android (Cont.)
Why Android (Cont.)
Why Android: Google TV
Why Android: Finally BlackBerry Gives In
Open Handset Alliance (Nov 2007)
  Manufacturers: Designing the Android Handsets




Content Providers: Developing Apps         Mobile Operators



                                          Markets: Distribution
Why Android (Cont.)

     What about ASIA-Pacific region???

      Low cost devices from China manufacturers…
      $96 Android devices
Why Android (Cont.)
Technical Advantages
   No need to pay for any developer’s program to develop and test apps in real
        devices

   Open source platform with scope of more innovation
        (Less proprietary restrictions)

   Java programming language

   Rich and easy to integrate feature sets

   Easy, effective and cost-effective prototyping for research and business

   Development Environment Support in Windows, Mac & Linux (Ubuntu)


              I ma g i n a t i o n i s t h
Why Android (Cont.)
Business Advantages
     Android market:
        Integrated market app
        One time low registration fee

     Many Distribution Channels:
        (We’ll see next)

     Low Barrier to Market:
        No approval process
        Less restrictions with copyright issues
Why Android (Cont.)
Opportunities
      Android market: (http://market.android.com)
       Integrated Android Market Application in phones can ensure your reach to
       millions of users without any approval process.
      Amazon Appstore for Android:
           http://www.amazon.com/mobile-apps/b?ie=UTF8&node=2350149011
      Enterprise Market:
       https://marketplace.cisco.com/


      3rd Party Distribution Channels :
 1.    Andspot 2. Handango 3. GetJar 4. SlideMe          5.AndAppStore
 6.    AndroLib 7. AppBrain and many more…
Why Android (Cont.)
Opportunities
   Android Market: (1) Analytics to help decision making
Why Android (Cont.)
Opportunities
   Android Market: (2) Crash log to support bug fixes
Why Android (Cont.)
Opportunities
   Android Market: (3) Requirements
Why Android (Cont.)
Opportunities
   Amazon Appstore for Android:
Why Android (Cont.)
Opportunities
   Enterprise Market:




                $   $ $   $   $   $   $
Why Android (Cont.)
Monetization Opportunities
     Paid Apps $ $ $ $ $ $ $
     In-App Billing
     Free Apps with Ads
        AdMob
        AdWhirl
        Mobclix and many more
Why Android (Cont.)
 Freelancing Opportunities
  Statistics   Source: http://www.elance.com/android-programmers-freelancers/230




 Similar trend is seen in other freelancing sites
                           Can be a good source of income to support your own
                                                product development or research
Why Android (Cont.)
Game Development Opportunities
Case Study: AhhhPah http://ahhhpah.com/




                     Development Time: 8 hours
                     Downloads: millions

 Simplified Game frameworks
  1. Libgdx:       http://code.google.com/p/libgdx/
  2. AndEngine: http://www.andengine.org/
  3. Unity3d:     http://unity3d.com/
Why Android (Cont.)
Some Interesting Apps
        Shazam
        Hear a song you don't know?       INSTALLS:10,000,000 - 50,000,000
        Shazam identifies it instantly.
Why Android (Cont.)
Some Interesting Apps

      Guitar : Solo Lite
                           INSTALLS:10,000,000 - 50,000,000
Why Android (Cont.)
My Story

      ProTranslate     INSTALLS: 50,000 - 100,000
                       It gave us Google’s Device Seeding Program Award
Features:
1. Support for wide range of
    languages
2. Share translated text
    (Email,SMS,twitter,facebook)
    Pronounciation and speech
    output
3. Website translation
    Document translation and
    share via email
4. Auto-prompt to translate SMS
    received
5. Optimized for all Android
    devices
Why Android (Cont.)
My Story

     ProTranslate
Why Android (Cont.)
Research Opportunities
Easy Prototyping of any idea is possible in Android. Some of the advanced
research based projects are prototyped in Android.
 mHealth
 eMOCA (www.emocha.org)
 Developed by the Johns Hopkins
 Center for Clinical Global Health
 Education,
 eMOCHA uses video, audio,
 touchscreen quizzes, GPS and
 SMS to collect and analyze large
 amounts of data.
Why Android (Cont.)
Research Opportunities
Easy Prototyping of any idea is possible in Android. Some of the advanced
research based projects are prototyped in Android.
 mHealth
 ClickDiagnostics
  http://clickdiagnostics.com/

  Developed by ClickDiagnostics,
  uses video, audio, touchscreen
  Quizzes to upload data to server
  to reach the consultants.
Why Android (Cont.)
Research Opportunities
mHealth




           Clinical diagnosis + Data acquisition
Why Android (Cont.)
Research Opportunities
Android + Arduino = Innovation Unlimited
Arduino (http://www.arduino.cc/)
 1. Arduino is an open-source electronics prototyping platform
 2. can sense the environment by receiving input from a variety of sensors and can affect its
    surroundings by controlling lights, motors, and other actuators.

                                              http://arduino.cc/blog/2011/10/12/androi
                                              d-open-2011-massimo-banzi-arduino-
                                              android-infinite-possibilities/
Why Android (Cont.)
Research Opportunities
Android in Disaster Management
       A Mobile Disaster Management System Using the Android Technology
       http://www.naun.org/journals/communications/19-280.pdf

Implementation of an Android based disaster management system
http://www.bcdph.com/download/android.pdf

       Android Incident Reporting for SAHANA Disaster Management System
       http://code.google.com/p/sahana-incident-reporter/

 Case Study: Bangladesh Army
       1.   Custom sensor device to accumulate weather data
       2.   Create forecast
       3.   Use data feeds to plan strategies for recovery
       4.   Integrated solar cell for self sufficient power
Why Android (Cont.)
 Application Development Opportunities
 Augmented Reality




Some more: http://techsplurge.com/3214/mega-list-33-awesome-augmented-reality-apps-games-android/

Real World Environment+ Sound, Video, Graphics data generated by systems= AR
Why Android (Cont.)
Research Opportunities
Android in Space!!!




 http://www.youtube.com/watch?v=REsEgrhmMjc
What is Android
Android is a software stack for mobile devices that includes an
operating system, middleware and key applications. The
Android SDK provides the tools and APIs necessary to begin developing
applications on the Android platform using the Java programming language.

Google describes Android as:
The first truly open and comprehensive platform for mobile devices, all
of the software to run a mobile phone but without the proprietary
obstacles that have hindered mobile innovation.
Android Features

Features
1. Application framework
2. Dalvik virtual machine
3. Integrated browser
4. Optimized graphics
5. SQLite Storage
6. Media support
7. GSM Telephony
8. Bluetooth, EDGE, 3G, and WiFi
9. Camera, GPS, compass, and accelerometer
10.Rich development environment
Android Features (Cont.)

            Accelerometer     GPS




    Thermal Sensor
                                               Your App
                                        +     With logic to
                                                Actuate
                                                              =

    Gyroscope




          Light Sensor                                            TTS
                                       Voice Search
                     Magnetic Sensor
Android Architecture
Setting up Development Environment
System Requirements
  Supported OS
  1. Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7
     (32- or 64-bit)
  2. Mac OS X 10.5.8 or later (x86 only)
  3. Linux (tested on Ubuntu Linux, Lucid Lynx)



  Supported Development Environment (Eclipse IDE based)
  1. Eclipse 3.4 (Ganymede) or greater/Eclipse Classic (versions
     3.5.1 and higher)
  2. JDK 1.5 or 1.6
  3. ADT Plugin
Setting up Development Environment(Contd.)
To set up the development environment, we need:
1. Java Development Kit (JDK 1.5+, 1.6 is preferable)
2. Eclipse IDE
3. Android SDK
Setting up Development Environment (Contd.)
    Java Development Kit (JDK)
    Download Link: http://www.java.com/en/download/index.jsp




     Download JDK from here and Install JDK
Setting up Development Environment (Contd.)
    Eclipse IDE   Download Link: http://eclipse.org/downloads/




     Download the highlighted version of Eclipse IDE
Setting up Development Environment (Contd.)
     Android SDK    Link: http://developer.android.com/sdk/index.html




Download and Install the SDK starter package from the table above
                          (Highlighted)
Setting up Development Environment (Contd.)
      Android SDK Setup (1)
1. Install available packages to get all SDK platform versions
Setting up Development Environment (Contd.)
      Android SDK Setup (2)
2. Installation progress
Setting up Development Environment (Contd.)
      Android SDK Setup (3)
3. ADT Plugin for Eclipse

ADT Plugin:
Android Development Tools (ADT) is a plugin for the Eclipse IDE for

1.   extending the capabilities of Eclipse to set up new Android projects
2.   creating an application UI
3.    adding components based on the Android Framework API
4.    debugging your applications using the Android SDK tools
5.    exporting signed (or unsigned) APKs in order to distribute your application

         We’ll see the 5 points gradually during development
Setting up Development Environment (Contd.)
      Android SDK Setup (4)
4. Installing the ADT

 1. Start Eclipse, then select Help >
    Install New Software....
 2. Click Add, in the top-right
    corner.
 3. In the next window, you'll see a
    list of the tools to be
    downloaded. Click Next.
 4. Read and accept the license
    agreements, then click Finish.
 5. When the installation
    completes, restart Eclipse.
Setting up Development Environment (Contd.)
      Android SDK Setup (5)
5. Set SDK path

 1. Start Eclipse, then select
    Window > Preferences
 2. Browse and show the path of
    Android SDK.
 3. Press Apply and OK.




 Development Environment Setup is now completed!
Setting up Development Environment (Contd.)
In Our Lab (1)
In our D:// Drive we get:
Setting up Development Environment (Contd.)
In Our Lab (2)
First we install JDK




                       We have already done that
Setting up Development Environment (Contd.)
In Our Lab (3.1)
We’ll setup Eclipse Galileo
Setting up Development Environment (Contd.)
In Our Lab (3.2)
We’ll setup Eclipse Galileo




        You can create a shortcut in the desktop for eclipse.exe
Setting up Development Environment (Contd.)
In Our Lab (3.3)
We’ll setup Eclipse Galileo




                        Choose your WorkSpace
Setting up Development Environment (Contd.)
In Our Lab (3.5)
We’ll setup Eclipse Galileo




           You have already seen this for previous case Helios
                         Expecting a question
Setting up Development Environment (Contd.)
In Our Lab (3.6)
We’ll setup Eclipse Galileo




  We’ll become familiar to our new IDE gradually and I swear you’ll start loving it
Setting up Development Environment (Contd.)
In Our Lab (4.1)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.2)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.3)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.4)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.5)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.6)
We’ll setup ADT Plugin
Setting up Development Environment (Contd.)
In Our Lab (4.7)
We’ll setup ADT Plugin




              Adding ADT Pluging is DONE… You’ll now get a message
Setting up Development Environment (Contd.)
In Our Lab (5.1)
We’ll setup android SDK
 After restarting Eclipse we get:




                   Don’t forget to ask me about the red marks
Setting up Development Environment (Contd.)
In Our Lab (5.2)
We’ll setup android SDK
 SDK and AVD Manager: If we click on it:




         So, we have to set the location of Android SDK and show it to our IDE

         To do so….
Setting up Development Environment (Contd.)
In Our Lab (5.3)
We’ll setup android SDK
Setting up Development Environment (Contd.)
In Our Lab (5.4)
We’ll setup android SDK
Setting up Development Environment (Contd.)
In Our Lab (5.5)
We’ll setup android SDK
Setting up Development Environment (Contd.)
In Our Lab (5.6)
We’ll setup android SDK
Setting up Development Environment (Contd.)
In Our Lab (5.6)
We’ll setup DDMS




                   Now We are Ready
Let’s say “Hello” to the Android World!

   Now that our development environment is
 ready, we’ll build our first Android application.
In the subsequent slides:
1. We’ll create an application step
    by step using the help of IDE and
    ADT.
2. We’ll then explain application
    structure and identify the
    building blocks.
3. We’ll experiment with
    components and learn to convert
    our innovative ideas into neat
    apps.
Let’s say “Hello” to the Android World! (Contd.)
1. Start Eclipse and Go to File>New>Android Project
                                      2. We keep project name “Hello World”
                                      (Since 1970 Ritchie’s book on C
                                      programming, programmers always say
                                      Hello World first)
                                      3. Build Target “Android1.6”
                                      4. Application name: “Hello World”
                                      5. Package name: com.sentinelbd.hallo
                                      6. Initial Activity Name: HalloActivity
                                      7. Min SDK Version: 4
                                      8. Click Finish

                                               Congratulations!
                                           You’ve just created your
                                           first Android application

                                           We’ll explain each input shortly
Let’s Go Deep…
Created Project has the following structure

                                   Project Structure

                                   -Source (src)
                                   -Generated Class (gen)
                                   -Android 1.6 library
                                   -Assets (assets)
                                   -Resource(res)
                                     -drawable-hdpi
                                     -drawable-ldpi
                                     -drawable-mdpi
                                     -layout
                                     -values
                                   -AndroidMenifest.xml
                                   -default.properties
Let’s Go Deep… (Contd.)
To run the app in emulator, we have to do the following steps:

1. Create AVD (Android Virtual Device)
2. Create Run Configuration
3. Run the Application

To run the app in device, we have to do the following steps:

1.   Install device driver
2.   Connect device through USB
3.   Create Run Configuration
4.   Run the Application

           We’ll run the app in emulator for now
Let’s Go Deep… (Contd.)
1. Create AVD (Android Virtual Device)
Use Android SDK & AVD Manager to create AVD
Let’s Go Deep… (Contd.)
2. Create Run Configuration




 1. Create a Run
    Configuration
 2. Browse and select
    the project to run
Let’s Go Deep… (Contd.)
3. Select AVD & Run




                 Click Run to start AVD/emulator
Let’s Go Deep… (Contd.)
Result in Emulator




                     Now its time to analyze how it works
Project Structure…
Created Project has the following structure

                                   Project Structure

                                   -Source (src)
                                   -Generated Class (gen)
                                   -Android 1.6 library
                                   -Assets (assets)
                                   -Resource(res)
                                     -drawable-hdpi
                                     -drawable-ldpi
                                     -drawable-mdpi
                                     -layout
                                     -values
                                   -AndroidMenifest.xml
                                   -default.properties
Project Structure (Contd.)
-Source (src)
We have used only one class here which is an Activity named HalloActivity. We’ll
describe about Activity in detail with lifecycle shortly. For now we can consider
Activity as Android analogue for the window or dialog in a desktop application. It
can load view from xml layout (here main.xml under res/layout folder)




                                                    In the HelloActivity class the view
                                                    of the Activity is set from main.xml
                                                    given below
Project Structure (Contd.)
-res/layout/main.xml
 1. UI Layout can be defined from source code using View or by layout xmls.
 2. The layout xml can be generated by visual tool given by ADT
Project Structure (Contd.)
-res/drawable
 1. From Android 1.6 to support different screen sizes and screen densities graphic files
    are kept in 3 different folders drawable-hdpi, drawable-ldpi and drawable-mdpi
 2. In our current project, they contain only default icon file with different dimensions
    to support devices with different screen resolution.
-assets
 Holds other static files you wish packaged with the application for deployment
 onto the device. In this project, we have none
 -gen/R.java                                 -values/strings.xml
Project Structure (Contd.)
-AndroidMenifest.xml




  XML file describing the application being built and what components –
  activities, services, etc. – are being supplied by that application
Cross-platform Development
1. RhoMobile      http://rhomobile.com/




2. Appcelerator    http://www.appcelerator.com/




 3. PhoneGap       http://www.phonegap.com/
Resources: DVD   Tutorials
                             Day Content
DVD Content
                             1. Video Tutorials
                             2. PPT Slides
                             Ebooks




Tools
Resources: Android Developers’ Site
http://developer.android.com
1.   Tutorials & Design Guidelines
2.   SDK References
3.   Articles on Pragmatic & Good Practices
4.   & anything you’ll need including Google IO Videos
Resources: Open Source Projects
1.   http://code.google.com/p/apps-for-android/
2.   http://en.wikipedia.org/wiki/List_of_open_source_Android_applications
Questions?

More Related Content

What's hot

Lecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewLecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewAhsanul Karim
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesAhsanul Karim
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android ApplicationArcadian Learning
 
Android Development: Build Android App from Scratch
Android Development: Build Android App from ScratchAndroid Development: Build Android App from Scratch
Android Development: Build Android App from ScratchTaufan Erfiyanto
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougatPooja Maan
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Trainingchandutata
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorialnazzf
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Developmentdonnfelker
 
Interview questions for an Android Developer
Interview questions for an Android DeveloperInterview questions for an Android Developer
Interview questions for an Android DeveloperInterview Mocha
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio OverviewSalim Hosen
 
Questions About Android Application Development
Questions About Android Application DevelopmentQuestions About Android Application Development
Questions About Android Application DevelopmentAdeel Rasheed
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerAhsanul Karim
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentBenny Skogberg
 
Android interview questions for 2 to 5 years (1)
Android interview questions for 2 to 5 years (1)Android interview questions for 2 to 5 years (1)
Android interview questions for 2 to 5 years (1)satish reddy
 

What's hot (20)

AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Lecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick OverviewLecture 2(b) Android Internals A Quick Overview
Lecture 2(b) Android Internals A Quick Overview
 
Day 3: Getting Active Through Activities
Day 3: Getting Active Through ActivitiesDay 3: Getting Active Through Activities
Day 3: Getting Active Through Activities
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
 
Android Development: Build Android App from Scratch
Android Development: Build Android App from ScratchAndroid Development: Build Android App from Scratch
Android Development: Build Android App from Scratch
 
Synopsis on android nougat
Synopsis on android nougatSynopsis on android nougat
Synopsis on android nougat
 
Android Development Training
Android Development TrainingAndroid Development Training
Android Development Training
 
Android 1.8 sensor
Android 1.8 sensorAndroid 1.8 sensor
Android 1.8 sensor
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorial
 
Training android
Training androidTraining android
Training android
 
Android interview questions
Android interview questionsAndroid interview questions
Android interview questions
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Interview questions for an Android Developer
Interview questions for an Android DeveloperInterview questions for an Android Developer
Interview questions for an Android Developer
 
Android
AndroidAndroid
Android
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio Overview
 
Questions About Android Application Development
Questions About Android Application DevelopmentQuestions About Android Application Development
Questions About Android Application Development
 
Multiple Activity and Navigation Primer
Multiple Activity and Navigation PrimerMultiple Activity and Navigation Primer
Multiple Activity and Navigation Primer
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android interview questions for 2 to 5 years (1)
Android interview questions for 2 to 5 years (1)Android interview questions for 2 to 5 years (1)
Android interview questions for 2 to 5 years (1)
 

Viewers also liked

Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studioParinita03
 
Day 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIDay 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIAhsanul Karim
 
Day 15: Working in Background
Day 15: Working in BackgroundDay 15: Working in Background
Day 15: Working in BackgroundAhsanul Karim
 
Day: 2 Environment Setup for Android Application Development
Day: 2 Environment Setup for Android Application DevelopmentDay: 2 Environment Setup for Android Application Development
Day: 2 Environment Setup for Android Application DevelopmentAhsanul Karim
 
Day 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesDay 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesAhsanul Karim
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAhsanul Karim
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Ahsanul Karim
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS TutorialAhsanul Karim
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Ahsanul Karim
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsAhsanul Karim
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorialAhsanul Karim
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAhsanul Karim
 
Day 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIDay 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIAhsanul Karim
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI WidgetsAhsanul Karim
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Ahsanul Karim
 
Day 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentDay 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentAhsanul Karim
 

Viewers also liked (20)

Creating the first app with android studio
Creating the first app with android studioCreating the first app with android studio
Creating the first app with android studio
 
Day 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts APIDay 15: Content Provider: Using Contacts API
Day 15: Content Provider: Using Contacts API
 
Day 15: Working in Background
Day 15: Working in BackgroundDay 15: Working in Background
Day 15: Working in Background
 
Day: 2 Environment Setup for Android Application Development
Day: 2 Environment Setup for Android Application DevelopmentDay: 2 Environment Setup for Android Application Development
Day: 2 Environment Setup for Android Application Development
 
Day 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through ActivitiesDay 4: Android: Getting Active through Activities
Day 4: Android: Getting Active through Activities
 
Android Services
Android ServicesAndroid Services
Android Services
 
Android User Interface: Basic Form Widgets
Android User Interface: Basic Form WidgetsAndroid User Interface: Basic Form Widgets
Android User Interface: Basic Form Widgets
 
Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3Android Workshop: Day 1 Part 3
Android Workshop: Day 1 Part 3
 
Android GPS Tutorial
Android GPS TutorialAndroid GPS Tutorial
Android GPS Tutorial
 
Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)Day: 1 Introduction to Mobile Application Development (in Android)
Day: 1 Introduction to Mobile Application Development (in Android)
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViews
 
List Views
List ViewsList Views
List Views
 
GCM for Android
GCM for AndroidGCM for Android
GCM for Android
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorial
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
 
Day 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location APIDay 9: Make Your App Location Aware using Location API
Day 9: Make Your App Location Aware using Location API
 
Day 4: Android: UI Widgets
Day 4: Android: UI WidgetsDay 4: Android: UI Widgets
Day 4: Android: UI Widgets
 
Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]Day 5: Android User Interface [View Widgets]
Day 5: Android User Interface [View Widgets]
 
Mcq peresentation
Mcq  peresentationMcq  peresentation
Mcq peresentation
 
Day 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver ComponentDay 6: Android BroadcastReceiver Component
Day 6: Android BroadcastReceiver Component
 

Similar to Introduction to Android Development: Before Getting Started

Mobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th editionMobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th editionMarco Tabor
 
Android overview 123
Android overview 123Android overview 123
Android overview 123Bhavanislide1
 
Android overview
Android overviewAndroid overview
Android overviewbhavani p
 
From Deepa's client
From Deepa's clientFrom Deepa's client
From Deepa's clientDeepa Bman
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Marco Tabor
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionMarco Tabor
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationTom Deryckere
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Marco Tabor
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Marco Tabor
 
Dia 1 intro to mobile and xamarin
Dia 1   intro to mobile and xamarinDia 1   intro to mobile and xamarin
Dia 1 intro to mobile and xamarinHernan Zaldivar
 
Android introduction
Android introductionAndroid introduction
Android introductionReena Nachare
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop PresentationNAILBITER
 
Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Marco Tabor
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overviewDima Maleev
 

Similar to Introduction to Android Development: Before Getting Started (20)

AndroidOverview
AndroidOverviewAndroidOverview
AndroidOverview
 
Mobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th editionMobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th edition
 
Android overview 123
Android overview 123Android overview 123
Android overview 123
 
Android overview
Android overviewAndroid overview
Android overview
 
"double quotes"
"double quotes""double quotes"
"double quotes"
 
Android overview
Android overviewAndroid overview
Android overview
 
Android overview
Android overviewAndroid overview
Android overview
 
Android overview
Android overviewAndroid overview
Android overview
 
From Deepa's client
From Deepa's clientFrom Deepa's client
From Deepa's client
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
 
Dia 1 intro to mobile and xamarin
Dia 1   intro to mobile and xamarinDia 1   intro to mobile and xamarin
Dia 1 intro to mobile and xamarin
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop Presentation
 
Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
 

More from Ahsanul Karim

Lecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesLecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesAhsanul Karim
 
Lecture 3 getting active through activities
Lecture 3 getting active through activities Lecture 3 getting active through activities
Lecture 3 getting active through activities Ahsanul Karim
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsAhsanul Karim
 
Day 4: Activity lifecycle
Day 4: Activity lifecycleDay 4: Activity lifecycle
Day 4: Activity lifecycleAhsanul Karim
 
Mobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyMobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyAhsanul Karim
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)Ahsanul Karim
 

More from Ahsanul Karim (7)

Lecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & PreferencesLecture 5: Storage: Saving Data Database, Files & Preferences
Lecture 5: Storage: Saving Data Database, Files & Preferences
 
Lecture 3 getting active through activities
Lecture 3 getting active through activities Lecture 3 getting active through activities
Lecture 3 getting active through activities
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViews
 
Day 4: Activity lifecycle
Day 4: Activity lifecycleDay 4: Activity lifecycle
Day 4: Activity lifecycle
 
Mobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete StudyMobile Banking in Bangladesh: An Incomplete Study
Mobile Banking in Bangladesh: An Incomplete Study
 
Ui layout (incomplete)
Ui layout (incomplete)Ui layout (incomplete)
Ui layout (incomplete)
 
Client-Server
Client-ServerClient-Server
Client-Server
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Introduction to Android Development: Before Getting Started

  • 1. Android Application Development Seminar on Getting Started Ahsanul Karim ahsanul.karim@sentinelbd.com Sentinel Solutions Ltd. http://www.sentinelbd.com Engineering Students Association of Bangladesh (ESAB) http://androidstream.wordpress.com
  • 3. Before Introduction: Your Suggestions 1. Monotonous discussion should be banned But, let me try… after all it’s a free seminar. No one’s going to kill me….
  • 4. Before Introduction: Your Suggestions 2. This could be the first phase and it should be continued. 3. Arranging a workshop is better than seminar for the novice. We have following probable plans: 1. Workshops 2. Training Programs 3. Onsite Contests with help from experienced Developers 4. Idea-based Contests with help from experienced Developers 5. Jamming Events Depends on your feedback
  • 5. Before Introduction: Your Suggestions 4. You can emphasize on learning OOPs before starting session on Android. Because very large number of Software Developer have no clear concept on OOP. OOP concept is indispensable. But we have to learn in parallel. 5. It might get a little more interesting if the attendants are allowed to have the opportunity to play or use some of the android apps themselves. Can you suggest how can we do that? May be next time we’ll try. We may review some good apps today.
  • 6. Before Introduction: Your Suggestions 6. If you give us some knowledge regarding to developing android software and how to post them in the android market it can be helpful to us in the future. We’ll do that in this session 7. You can give us some video about mobile application programming which can help us. We’ll provide you complete course content with video tutorials we did in BASIS (Bangladesh Association of Software & Information Services)
  • 7. Before Introduction: Your Suggestions 8. Consider all type of audience. Excellent suggestion. We’ll try that 9. Discuss from technological perspective as well as business Excellent suggestion. We’ll try that 10. Forecast about near future associated with Android. Excellent suggestion. We’ll try that
  • 8. So Today… 1. Get Basic Idea on Mobile and Smartphone Applications 2. Get Basic Idea on Mobile, Smartphone & Tablet Platforms 3. Identify the Position of Android Platform 4. Background and History of Android 5. Get the Idea: Why Should We Learn Android Platform 6. Opportunities 7. Some App Demos 8. System Architecture 9. Environment Setup to Kick-start 10. Application Structure 11. Cross-platform development 12. Resources
  • 9. Mobile and Smartphone Applications Mobile Phones A mobile phone (also called mobile, cellular telephone, cell phone, or hand phone is an electronic device used to make 1. Calls across a wide geographic area. 2. Send Text SMS 3. Can see call records 4. Can capture image 5. Can run music 6. Can browse web etc. To learn about mobile phones in details: http://en.wikipedia.org/wiki/Mobile_phone You’ll get detailed history about how this technology evolved over the years
  • 10. Mobile and Smartphone Applications Mobile Phone Applications: Some Examples Category: Utility Tools Personal Finance Calculator Another example can be: Daily Planner Application Possible Features: 1. Task List 2. Reminder 3. Appointment etc.
  • 11. Mobile and Smartphone Applications Mobile Phone Applications: Some Examples (Contd.) Category: Games Sudoku Tetris Snake
  • 12. Mobile and Smartphone Applications Mobile Phone Applications: Development 1. Different Mobile phone vendor companies use different platforms for developing applications for their own platform. 2. We’ll discuss about a open “Legacy” platform as an example which is J2ME Java Platform, Micro Edition, or Java ME: 1. It is a Java platform designed for embedded systems (mobile Devices are one kind of such systems) . 2. Target devices range from industrial controls to mobile phones with Java (KVM support). Formerly known as Java 2 Platform, Micro Edition (J2ME). For details: http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition Nokia, Samsung, Sony Ericsson and many other vendors supports J2ME for applications and games development
  • 13. Mobile and Smartphone Applications Mobile Phone Applications: Development With J2ME Limitations 1. Memory Issues 1. Vendor Specific Implementation 2. Insufficient Memory 3. Inefficient Memory Management 2. Device Compatibility Issues 3. Not enough Access to Core System of the Phone 4. Vendor Specific Implementation of KVM That is why… We see sites like this:
  • 14. Mobile and Smartphone Applications Smart Phones 1. A smartphone is a mobile phone that offers more advanced computing ability, Features and connectivity than a contemporary mobile phones. 2. Smartphones may be thought of as handheld computers integrated with a mobile telephone. 3. They also provide their own Operating System with Application Development Framework To learn about smart phones in details: http://en.wikipedia.org/wiki/Smartphone You’ll get detailed history about how this technology evolved over the years
  • 15. Mobile and Smartphone Applications Smart Phones Platforms Android iPhone BlackBerry Palm Pre
  • 16. Mobile and Smartphone Applications Tablet Platforms Android: Galaxy Tab Apple: iPad
  • 17. Overview of Application Platforms (alphabetically) Platform Language (s) Remarks Android Java, C, C++ Open Source OS (Based on Linux) http://developer.android.com bada C, C++ Samsung’s mobile platform running on Linux or RealTime OS http://developer.bada.com BlackBerry Java, Web Apps Java, Web Apps, Java ME compatible, extensions enable tighter integration http://na.blackberry.com/eng/developers iOS Objective-C, C Requires Apple Developer Account http://developer.apple.com/iphone MeeGo Qt, C++, others Intel and Nokia guided open source OS (based on Linux) http://meego.com/developers Symbian C, C++, Java, Qt, OS built from the ground up for mobile devices Web Apps, http://www.forum.nokia.com/symbian others
  • 18. Overview of Application Platforms (Cont.) Platform Language (s) Remarks webOS HTML, CSS, Supports widget style programming (based on Linux) JavaScript, C http://developer.palm.com Windows C#, C .NET CF or Windows Mobile API, most devices ship Mobile with Java ME compatible JVM http://developer.windowsmobile.com Windows C#, VB.NET Silverlight, XNA Frameworks Phone http://create.msdn.com Source: http://mobileplatforms.wikidot.com/
  • 20. Why Android T h e y s a y a p i c t u r e i s wo r t h
  • 21. Why Android (Cont.) T h e y s a y a p i c t u r e i s wo r t h
  • 29. Why Android: Finally BlackBerry Gives In
  • 30. Open Handset Alliance (Nov 2007) Manufacturers: Designing the Android Handsets Content Providers: Developing Apps Mobile Operators Markets: Distribution
  • 31. Why Android (Cont.) What about ASIA-Pacific region??? Low cost devices from China manufacturers… $96 Android devices
  • 32. Why Android (Cont.) Technical Advantages No need to pay for any developer’s program to develop and test apps in real devices Open source platform with scope of more innovation (Less proprietary restrictions) Java programming language Rich and easy to integrate feature sets Easy, effective and cost-effective prototyping for research and business Development Environment Support in Windows, Mac & Linux (Ubuntu) I ma g i n a t i o n i s t h
  • 33. Why Android (Cont.) Business Advantages Android market: Integrated market app One time low registration fee Many Distribution Channels: (We’ll see next) Low Barrier to Market: No approval process Less restrictions with copyright issues
  • 34. Why Android (Cont.) Opportunities Android market: (http://market.android.com) Integrated Android Market Application in phones can ensure your reach to millions of users without any approval process. Amazon Appstore for Android: http://www.amazon.com/mobile-apps/b?ie=UTF8&node=2350149011 Enterprise Market: https://marketplace.cisco.com/ 3rd Party Distribution Channels : 1. Andspot 2. Handango 3. GetJar 4. SlideMe 5.AndAppStore 6. AndroLib 7. AppBrain and many more…
  • 35. Why Android (Cont.) Opportunities Android Market: (1) Analytics to help decision making
  • 36. Why Android (Cont.) Opportunities Android Market: (2) Crash log to support bug fixes
  • 37. Why Android (Cont.) Opportunities Android Market: (3) Requirements
  • 38. Why Android (Cont.) Opportunities Amazon Appstore for Android:
  • 39. Why Android (Cont.) Opportunities Enterprise Market: $ $ $ $ $ $ $
  • 40. Why Android (Cont.) Monetization Opportunities Paid Apps $ $ $ $ $ $ $ In-App Billing Free Apps with Ads AdMob AdWhirl Mobclix and many more
  • 41. Why Android (Cont.) Freelancing Opportunities Statistics Source: http://www.elance.com/android-programmers-freelancers/230 Similar trend is seen in other freelancing sites Can be a good source of income to support your own product development or research
  • 42. Why Android (Cont.) Game Development Opportunities Case Study: AhhhPah http://ahhhpah.com/ Development Time: 8 hours Downloads: millions Simplified Game frameworks 1. Libgdx: http://code.google.com/p/libgdx/ 2. AndEngine: http://www.andengine.org/ 3. Unity3d: http://unity3d.com/
  • 43. Why Android (Cont.) Some Interesting Apps Shazam Hear a song you don't know? INSTALLS:10,000,000 - 50,000,000 Shazam identifies it instantly.
  • 44. Why Android (Cont.) Some Interesting Apps Guitar : Solo Lite INSTALLS:10,000,000 - 50,000,000
  • 45. Why Android (Cont.) My Story ProTranslate INSTALLS: 50,000 - 100,000 It gave us Google’s Device Seeding Program Award Features: 1. Support for wide range of languages 2. Share translated text (Email,SMS,twitter,facebook) Pronounciation and speech output 3. Website translation Document translation and share via email 4. Auto-prompt to translate SMS received 5. Optimized for all Android devices
  • 46. Why Android (Cont.) My Story ProTranslate
  • 47. Why Android (Cont.) Research Opportunities Easy Prototyping of any idea is possible in Android. Some of the advanced research based projects are prototyped in Android. mHealth eMOCA (www.emocha.org) Developed by the Johns Hopkins Center for Clinical Global Health Education, eMOCHA uses video, audio, touchscreen quizzes, GPS and SMS to collect and analyze large amounts of data.
  • 48. Why Android (Cont.) Research Opportunities Easy Prototyping of any idea is possible in Android. Some of the advanced research based projects are prototyped in Android. mHealth ClickDiagnostics http://clickdiagnostics.com/ Developed by ClickDiagnostics, uses video, audio, touchscreen Quizzes to upload data to server to reach the consultants.
  • 49. Why Android (Cont.) Research Opportunities mHealth Clinical diagnosis + Data acquisition
  • 50. Why Android (Cont.) Research Opportunities Android + Arduino = Innovation Unlimited Arduino (http://www.arduino.cc/) 1. Arduino is an open-source electronics prototyping platform 2. can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. http://arduino.cc/blog/2011/10/12/androi d-open-2011-massimo-banzi-arduino- android-infinite-possibilities/
  • 51. Why Android (Cont.) Research Opportunities Android in Disaster Management A Mobile Disaster Management System Using the Android Technology http://www.naun.org/journals/communications/19-280.pdf Implementation of an Android based disaster management system http://www.bcdph.com/download/android.pdf Android Incident Reporting for SAHANA Disaster Management System http://code.google.com/p/sahana-incident-reporter/ Case Study: Bangladesh Army 1. Custom sensor device to accumulate weather data 2. Create forecast 3. Use data feeds to plan strategies for recovery 4. Integrated solar cell for self sufficient power
  • 52. Why Android (Cont.) Application Development Opportunities Augmented Reality Some more: http://techsplurge.com/3214/mega-list-33-awesome-augmented-reality-apps-games-android/ Real World Environment+ Sound, Video, Graphics data generated by systems= AR
  • 53. Why Android (Cont.) Research Opportunities Android in Space!!! http://www.youtube.com/watch?v=REsEgrhmMjc
  • 54. What is Android Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language. Google describes Android as: The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation.
  • 55. Android Features Features 1. Application framework 2. Dalvik virtual machine 3. Integrated browser 4. Optimized graphics 5. SQLite Storage 6. Media support 7. GSM Telephony 8. Bluetooth, EDGE, 3G, and WiFi 9. Camera, GPS, compass, and accelerometer 10.Rich development environment
  • 56. Android Features (Cont.) Accelerometer GPS Thermal Sensor Your App + With logic to Actuate = Gyroscope Light Sensor TTS Voice Search Magnetic Sensor
  • 58. Setting up Development Environment System Requirements Supported OS 1. Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit) 2. Mac OS X 10.5.8 or later (x86 only) 3. Linux (tested on Ubuntu Linux, Lucid Lynx) Supported Development Environment (Eclipse IDE based) 1. Eclipse 3.4 (Ganymede) or greater/Eclipse Classic (versions 3.5.1 and higher) 2. JDK 1.5 or 1.6 3. ADT Plugin
  • 59. Setting up Development Environment(Contd.) To set up the development environment, we need: 1. Java Development Kit (JDK 1.5+, 1.6 is preferable) 2. Eclipse IDE 3. Android SDK
  • 60. Setting up Development Environment (Contd.) Java Development Kit (JDK) Download Link: http://www.java.com/en/download/index.jsp Download JDK from here and Install JDK
  • 61. Setting up Development Environment (Contd.) Eclipse IDE Download Link: http://eclipse.org/downloads/ Download the highlighted version of Eclipse IDE
  • 62. Setting up Development Environment (Contd.) Android SDK Link: http://developer.android.com/sdk/index.html Download and Install the SDK starter package from the table above (Highlighted)
  • 63. Setting up Development Environment (Contd.) Android SDK Setup (1) 1. Install available packages to get all SDK platform versions
  • 64. Setting up Development Environment (Contd.) Android SDK Setup (2) 2. Installation progress
  • 65. Setting up Development Environment (Contd.) Android SDK Setup (3) 3. ADT Plugin for Eclipse ADT Plugin: Android Development Tools (ADT) is a plugin for the Eclipse IDE for 1. extending the capabilities of Eclipse to set up new Android projects 2. creating an application UI 3. adding components based on the Android Framework API 4. debugging your applications using the Android SDK tools 5. exporting signed (or unsigned) APKs in order to distribute your application We’ll see the 5 points gradually during development
  • 66. Setting up Development Environment (Contd.) Android SDK Setup (4) 4. Installing the ADT 1. Start Eclipse, then select Help > Install New Software.... 2. Click Add, in the top-right corner. 3. In the next window, you'll see a list of the tools to be downloaded. Click Next. 4. Read and accept the license agreements, then click Finish. 5. When the installation completes, restart Eclipse.
  • 67. Setting up Development Environment (Contd.) Android SDK Setup (5) 5. Set SDK path 1. Start Eclipse, then select Window > Preferences 2. Browse and show the path of Android SDK. 3. Press Apply and OK. Development Environment Setup is now completed!
  • 68. Setting up Development Environment (Contd.) In Our Lab (1) In our D:// Drive we get:
  • 69. Setting up Development Environment (Contd.) In Our Lab (2) First we install JDK We have already done that
  • 70. Setting up Development Environment (Contd.) In Our Lab (3.1) We’ll setup Eclipse Galileo
  • 71. Setting up Development Environment (Contd.) In Our Lab (3.2) We’ll setup Eclipse Galileo You can create a shortcut in the desktop for eclipse.exe
  • 72. Setting up Development Environment (Contd.) In Our Lab (3.3) We’ll setup Eclipse Galileo Choose your WorkSpace
  • 73. Setting up Development Environment (Contd.) In Our Lab (3.5) We’ll setup Eclipse Galileo You have already seen this for previous case Helios Expecting a question
  • 74. Setting up Development Environment (Contd.) In Our Lab (3.6) We’ll setup Eclipse Galileo We’ll become familiar to our new IDE gradually and I swear you’ll start loving it
  • 75. Setting up Development Environment (Contd.) In Our Lab (4.1) We’ll setup ADT Plugin
  • 76. Setting up Development Environment (Contd.) In Our Lab (4.2) We’ll setup ADT Plugin
  • 77. Setting up Development Environment (Contd.) In Our Lab (4.3) We’ll setup ADT Plugin
  • 78. Setting up Development Environment (Contd.) In Our Lab (4.4) We’ll setup ADT Plugin
  • 79. Setting up Development Environment (Contd.) In Our Lab (4.5) We’ll setup ADT Plugin
  • 80. Setting up Development Environment (Contd.) In Our Lab (4.6) We’ll setup ADT Plugin
  • 81. Setting up Development Environment (Contd.) In Our Lab (4.7) We’ll setup ADT Plugin Adding ADT Pluging is DONE… You’ll now get a message
  • 82. Setting up Development Environment (Contd.) In Our Lab (5.1) We’ll setup android SDK After restarting Eclipse we get: Don’t forget to ask me about the red marks
  • 83. Setting up Development Environment (Contd.) In Our Lab (5.2) We’ll setup android SDK SDK and AVD Manager: If we click on it: So, we have to set the location of Android SDK and show it to our IDE To do so….
  • 84. Setting up Development Environment (Contd.) In Our Lab (5.3) We’ll setup android SDK
  • 85. Setting up Development Environment (Contd.) In Our Lab (5.4) We’ll setup android SDK
  • 86. Setting up Development Environment (Contd.) In Our Lab (5.5) We’ll setup android SDK
  • 87. Setting up Development Environment (Contd.) In Our Lab (5.6) We’ll setup android SDK
  • 88. Setting up Development Environment (Contd.) In Our Lab (5.6) We’ll setup DDMS Now We are Ready
  • 89. Let’s say “Hello” to the Android World! Now that our development environment is ready, we’ll build our first Android application. In the subsequent slides: 1. We’ll create an application step by step using the help of IDE and ADT. 2. We’ll then explain application structure and identify the building blocks. 3. We’ll experiment with components and learn to convert our innovative ideas into neat apps.
  • 90. Let’s say “Hello” to the Android World! (Contd.) 1. Start Eclipse and Go to File>New>Android Project 2. We keep project name “Hello World” (Since 1970 Ritchie’s book on C programming, programmers always say Hello World first) 3. Build Target “Android1.6” 4. Application name: “Hello World” 5. Package name: com.sentinelbd.hallo 6. Initial Activity Name: HalloActivity 7. Min SDK Version: 4 8. Click Finish Congratulations! You’ve just created your first Android application We’ll explain each input shortly
  • 91. Let’s Go Deep… Created Project has the following structure Project Structure -Source (src) -Generated Class (gen) -Android 1.6 library -Assets (assets) -Resource(res) -drawable-hdpi -drawable-ldpi -drawable-mdpi -layout -values -AndroidMenifest.xml -default.properties
  • 92. Let’s Go Deep… (Contd.) To run the app in emulator, we have to do the following steps: 1. Create AVD (Android Virtual Device) 2. Create Run Configuration 3. Run the Application To run the app in device, we have to do the following steps: 1. Install device driver 2. Connect device through USB 3. Create Run Configuration 4. Run the Application We’ll run the app in emulator for now
  • 93. Let’s Go Deep… (Contd.) 1. Create AVD (Android Virtual Device) Use Android SDK & AVD Manager to create AVD
  • 94. Let’s Go Deep… (Contd.) 2. Create Run Configuration 1. Create a Run Configuration 2. Browse and select the project to run
  • 95. Let’s Go Deep… (Contd.) 3. Select AVD & Run Click Run to start AVD/emulator
  • 96. Let’s Go Deep… (Contd.) Result in Emulator Now its time to analyze how it works
  • 97. Project Structure… Created Project has the following structure Project Structure -Source (src) -Generated Class (gen) -Android 1.6 library -Assets (assets) -Resource(res) -drawable-hdpi -drawable-ldpi -drawable-mdpi -layout -values -AndroidMenifest.xml -default.properties
  • 98. Project Structure (Contd.) -Source (src) We have used only one class here which is an Activity named HalloActivity. We’ll describe about Activity in detail with lifecycle shortly. For now we can consider Activity as Android analogue for the window or dialog in a desktop application. It can load view from xml layout (here main.xml under res/layout folder) In the HelloActivity class the view of the Activity is set from main.xml given below
  • 99. Project Structure (Contd.) -res/layout/main.xml 1. UI Layout can be defined from source code using View or by layout xmls. 2. The layout xml can be generated by visual tool given by ADT
  • 100. Project Structure (Contd.) -res/drawable 1. From Android 1.6 to support different screen sizes and screen densities graphic files are kept in 3 different folders drawable-hdpi, drawable-ldpi and drawable-mdpi 2. In our current project, they contain only default icon file with different dimensions to support devices with different screen resolution. -assets Holds other static files you wish packaged with the application for deployment onto the device. In this project, we have none -gen/R.java -values/strings.xml
  • 101. Project Structure (Contd.) -AndroidMenifest.xml XML file describing the application being built and what components – activities, services, etc. – are being supplied by that application
  • 102. Cross-platform Development 1. RhoMobile http://rhomobile.com/ 2. Appcelerator http://www.appcelerator.com/ 3. PhoneGap http://www.phonegap.com/
  • 103. Resources: DVD Tutorials Day Content DVD Content 1. Video Tutorials 2. PPT Slides Ebooks Tools
  • 104. Resources: Android Developers’ Site http://developer.android.com 1. Tutorials & Design Guidelines 2. SDK References 3. Articles on Pragmatic & Good Practices 4. & anything you’ll need including Google IO Videos
  • 105. Resources: Open Source Projects 1. http://code.google.com/p/apps-for-android/ 2. http://en.wikipedia.org/wiki/List_of_open_source_Android_applications