SlideShare a Scribd company logo
1 of 17
Download to read offline
Android development
       (in a nutshell)
●


                 ●
                     Guillem Mayol
                       ●
                           Aleix Solé


                     EETAC - DXAT
Overview
●
    What is Android
●
    Android Development
         ●
             App Fundamentals
         ●
             Framework API
         ●
             Framework API: Activities
         ●
             Framework API: Tasks
         ●
             Framework API: Services
         ●
             Framework API: Content Providers
         ●
             Framework API: Broadcast Receivers
         ●
             Framework API: AndroidManifest.xml
●
    A simple example
What is Android
●
    „Android is a software stack for mobile
    devices that includes an operating
    system, middleware and key
    applications.“
●
    Based on the Linux Kernel, open source
    libraries, an open source VM to abstract
    the phone features (Dalvik) and the
    programmable app framework
●
    All code is Apache v2 licensed
What is Android
Android Development
               App Fundamentals


●
    Apps are written in Java. → .apk files
●
    Each App has their Linux user ID. →
    permissions
●
    Each process has its own VM → isolation
●
    An App has only access to necessary
    components. → Security & Sharing
Android Development
                       Framework API
●
    An App can be composed by the next
    components:
       ●
           Activities : Single screen with user interface.
           Ex: Mail App → Its composed by several activities
             (List of mails, new message, …)
       ●
           Services : A component that runs in the backgroud.
           Ex: Listening music while the device is locked.
       ●
           Content Providers : Manages a shared set of App
             data.
           Ex: User's contact info. → ContactsContract.Data
       ●
           Broadcast Receivers : Allow to share
             announcements
Android Development
                         Framework API : Activities
●
    Activity States
    - Resumed (running)
    - Paused (another activity is visible on
    top of this one)
    *can be killed by System in low mem. Situation.

    - Stopped (in the backgroud)
●
    Activity Lifetime
    -Entire Lifetime      OnCreate() to OnDestroy()

    -Visible Lifetime      OnStart() to OnStop()

    -Foregroud      Lifetime    OnResume() to OnPause()
Android Development
                 Framework API : Tasks
●
    When an activity is launched, the previous ones are
    saved to BackStack.
●
    An activity can start activities that exist in other Apps.
    → A task is a collection of activities that users can
    interact with.
Android Development
                     Framework API : Services
●
    A Service is an App component running in the background and
    doesn't provide a user interface.
●
    A service can take two forms:
    - Started [startService()]: Indepently of
    father App (can run indefinitely).
    Usually a single operation. (Upload file)
    - Bound [bindService()]: Depends of
    father App.
    Usually offers Client-server interface.
●
    A service can work both ways with:
    onStartComand() & onBind()
Android Development
     Framework API: Contents Providers

●
    A Content Provider is an App component that
    stores and retrieves data and makes it accessible
    to all App.
●
    The data can be stored using Android's file
    storage or SQLite databases.
●
    Each Content Provider exposes a public URI.
    Ex: android.provider.Contacts.Phones.CONTENT_URI

●
    If you want to make own data public, you can:
      1. Create your own content provider.
      2. Add the data to an existing provider.
Android Development
         Framework API: Broadcast Receivers

●
    Most common: Notifications to user. It can be:
    1. Toast Notifications → SMS that pops up on screen.
                    Context context = getApplicationContext();
                    CharSequence text = "Hello toast!";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text,
                    duration);
                    toast.show();




    2. Status Bar Notifications → Adds an icon to
    the system's status bar with optional SMS.


    3. Dialog Notification
Android Development
        Framework API: AndroidManifest.xml File
●
     Every App must have this file in its root directory.
●
     The file contains components description of App.
●
     These declarations let the Android system know:
             ●
                 Components that can be used (GPS,...)
             ●
                 Under what conditions they can be launched
             ●
                 Permissions of the App. (interact with others)
             ●
                 Libraries of API (Google Maps)
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.android.snake">
        <application android:label="Snake on a Phone">
          <activity android:name="Snake"
            android:screenOrientation="portrait"
            android:configChanges="keyboardHidden|orientation">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>
Android Development
                   Framework API
●
    SDK publicly available
       ●
           http://developer.android.com/sdk/
Android development
●
    After downloading the SDK tools, we also
    need the toolchain for debugging and
    loading code to targets, and the specific
    API for each Android release
       ●
           On linux (after extracting the SDK)
               ●
                   run tools/android
               ●
                   Install Platform-tools, SDK platform for
                     the desired Android version, code
                     samples and documentation
Android development
●
    Eclipse has a plugin specifically designed
    for Android development
       ●
           Eclipse-ADT
       ●
           http://developer.android.com
                  /sdk/eclipse-adt.html
       ●
           Repo a https://dl-ssl.google.com/android/eclipse/
●
    Since Android itself is open source, an
    NDK also exists for native development
       ●
           Development at the VM-level, outside
            the Java API, using C and C++
A simple example
1) Create a new virtual device target,
running some Android version
2) Create a new test project in Eclipse
from one of the SDK samples
3) Run it!
   ●
       It will automatically be loaded on the
         Virtual Device or on the plugged in
         physical device
   ●
       Device must run the Android version the
        sample code is developed for!
END
Do you have any questions?

More Related Content

What's hot

Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
Ajailal Parackal
 

What's hot (20)

Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Android Basic Components
Android Basic ComponentsAndroid Basic Components
Android Basic Components
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
android-tutorial-for-beginner
android-tutorial-for-beginnerandroid-tutorial-for-beginner
android-tutorial-for-beginner
 
Eclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATIONEclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATION
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Ios development
Ios developmentIos development
Ios development
 
Appium
AppiumAppium
Appium
 
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
스터디그룹 패턴 (A PATTERN LANGUAGE FOR STUDY GROUPS)
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
 
Android PPT Presentation 2018
Android PPT Presentation 2018Android PPT Presentation 2018
Android PPT Presentation 2018
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
 
Android - A brief introduction
Android - A brief introductionAndroid - A brief introduction
Android - A brief introduction
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 

Similar to Android Development in a Nutshell

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
Ahsanul Karim
 
Android application development
Android application developmentAndroid application development
Android application development
slidesuren
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
weerabahu
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
Joe Jacob
 

Similar to Android Development in a Nutshell (20)

Android studio
Android studioAndroid studio
Android studio
 
Java Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development WorkshopJava Meetup - 12-03-15 - Android Development Workshop
Java Meetup - 12-03-15 - Android Development Workshop
 
Android interview questions and answers
Android interview questions and answersAndroid interview questions and answers
Android interview questions and answers
 
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
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Notes Unit2.pptx
Notes Unit2.pptxNotes Unit2.pptx
Notes Unit2.pptx
 
Android application development
Android application developmentAndroid application development
Android application development
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android In A Nutshell
Android In A NutshellAndroid In A Nutshell
Android In A Nutshell
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Android session-1-sajib
Android session-1-sajibAndroid session-1-sajib
Android session-1-sajib
 
Part 2 android application development 101
Part 2 android application development 101Part 2 android application development 101
Part 2 android application development 101
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Introduction to Android Development Part 1
Introduction to Android Development Part 1Introduction to Android Development Part 1
Introduction to Android Development Part 1
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android ppt
Android ppt Android ppt
Android ppt
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Android Development in a Nutshell

  • 1. Android development (in a nutshell) ● ● Guillem Mayol ● Aleix Solé EETAC - DXAT
  • 2. Overview ● What is Android ● Android Development ● App Fundamentals ● Framework API ● Framework API: Activities ● Framework API: Tasks ● Framework API: Services ● Framework API: Content Providers ● Framework API: Broadcast Receivers ● Framework API: AndroidManifest.xml ● A simple example
  • 3. What is Android ● „Android is a software stack for mobile devices that includes an operating system, middleware and key applications.“ ● Based on the Linux Kernel, open source libraries, an open source VM to abstract the phone features (Dalvik) and the programmable app framework ● All code is Apache v2 licensed
  • 5. Android Development App Fundamentals ● Apps are written in Java. → .apk files ● Each App has their Linux user ID. → permissions ● Each process has its own VM → isolation ● An App has only access to necessary components. → Security & Sharing
  • 6. Android Development Framework API ● An App can be composed by the next components: ● Activities : Single screen with user interface. Ex: Mail App → Its composed by several activities (List of mails, new message, …) ● Services : A component that runs in the backgroud. Ex: Listening music while the device is locked. ● Content Providers : Manages a shared set of App data. Ex: User's contact info. → ContactsContract.Data ● Broadcast Receivers : Allow to share announcements
  • 7. Android Development Framework API : Activities ● Activity States - Resumed (running) - Paused (another activity is visible on top of this one) *can be killed by System in low mem. Situation. - Stopped (in the backgroud) ● Activity Lifetime -Entire Lifetime OnCreate() to OnDestroy() -Visible Lifetime OnStart() to OnStop() -Foregroud Lifetime OnResume() to OnPause()
  • 8. Android Development Framework API : Tasks ● When an activity is launched, the previous ones are saved to BackStack. ● An activity can start activities that exist in other Apps. → A task is a collection of activities that users can interact with.
  • 9. Android Development Framework API : Services ● A Service is an App component running in the background and doesn't provide a user interface. ● A service can take two forms: - Started [startService()]: Indepently of father App (can run indefinitely). Usually a single operation. (Upload file) - Bound [bindService()]: Depends of father App. Usually offers Client-server interface. ● A service can work both ways with: onStartComand() & onBind()
  • 10. Android Development Framework API: Contents Providers ● A Content Provider is an App component that stores and retrieves data and makes it accessible to all App. ● The data can be stored using Android's file storage or SQLite databases. ● Each Content Provider exposes a public URI. Ex: android.provider.Contacts.Phones.CONTENT_URI ● If you want to make own data public, you can: 1. Create your own content provider. 2. Add the data to an existing provider.
  • 11. Android Development Framework API: Broadcast Receivers ● Most common: Notifications to user. It can be: 1. Toast Notifications → SMS that pops up on screen. Context context = getApplicationContext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); 2. Status Bar Notifications → Adds an icon to the system's status bar with optional SMS. 3. Dialog Notification
  • 12. Android Development Framework API: AndroidManifest.xml File ● Every App must have this file in its root directory. ● The file contains components description of App. ● These declarations let the Android system know: ● Components that can be used (GPS,...) ● Under what conditions they can be launched ● Permissions of the App. (interact with others) ● Libraries of API (Google Maps) <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.snake"> <application android:label="Snake on a Phone"> <activity android:name="Snake" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
  • 13. Android Development Framework API ● SDK publicly available ● http://developer.android.com/sdk/
  • 14. Android development ● After downloading the SDK tools, we also need the toolchain for debugging and loading code to targets, and the specific API for each Android release ● On linux (after extracting the SDK) ● run tools/android ● Install Platform-tools, SDK platform for the desired Android version, code samples and documentation
  • 15. Android development ● Eclipse has a plugin specifically designed for Android development ● Eclipse-ADT ● http://developer.android.com /sdk/eclipse-adt.html ● Repo a https://dl-ssl.google.com/android/eclipse/ ● Since Android itself is open source, an NDK also exists for native development ● Development at the VM-level, outside the Java API, using C and C++
  • 16. A simple example 1) Create a new virtual device target, running some Android version 2) Create a new test project in Eclipse from one of the SDK samples 3) Run it! ● It will automatically be loaded on the Virtual Device or on the plugged in physical device ● Device must run the Android version the sample code is developed for!
  • 17. END Do you have any questions?