Introduction to Android Application Development Mike Kvintus Principal Engineer JDSU
Agenda Android Background
What is Android?
Android Fundamentals
Getting Started with App Development
Demo
Tips/Links
Android Background
Open Source Mobile Operating System from Android Inc, which was purchased by Google http://source.android.com/
Part of the Open Handset Alliance
Releases named after desserts 1.5 – Cupcake April 30, 2009
1.6 – Donut Sept 15, 2009
2.0/2.0.1 – Eclair Oct 26, 2009
2.1 – Eclair Jan 12, 2010 Android Background
Why Should You Care Android is gaining momentum Share of the smartphone market grew from 2.8% to 3.5% in Q3 2009
October, 2009, Gartner Inc. predicted that by 2012, Android would become the world's second most popular smartphone platform, behind only Symbian OS
Estimated 250,000 Motorola Droid phones were sold in the US during the phone's first week in stores Open Source OS and free SDK/IDE
Runs a Linux kernel
App development uses the Java language syntax
What is Android?
Android Features Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
Android Architecture
Application Framework Underlying all applications is a set of services and systems, including: A rich and extensible set of views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
A Notification Manager that enables all applications to display custom alerts in the status bar

More Related Content

KEY
Android Development: The Basics
PDF
Android Basic Components
PPTX
android architecture
PPT
Android ppt
PPT
Android Application Development Using Java
PPSX
Android - A brief introduction
PPT
Android Presentation
PPT
Android ppt
Android Development: The Basics
Android Basic Components
android architecture
Android ppt
Android Application Development Using Java
Android - A brief introduction
Android Presentation
Android ppt

What's hot (20)

PPTX
Android studio ppt
PPTX
Android app development
PDF
Introduction to Android Window System
PPTX
Android ppt
PPTX
Flutter introduction
PPTX
Basic of Android App Development
PPTX
PPT on Android
PPTX
Introduction to Android Development
PPTX
Android ppt
PDF
Flutter Tutorial For Beginners | Edureka
PDF
Android Operating System (Androrid OS)
PPTX
Flutter
PDF
Android tutorial ppt
PPT
Mobile Application Development With Android
PPTX
Presentation on android
PPT
Android Training
ODP
Introduction to Mobile Application Development
PPTX
Introduction to Flutter
PPTX
What is Flutter
PDF
Flutter
Android studio ppt
Android app development
Introduction to Android Window System
Android ppt
Flutter introduction
Basic of Android App Development
PPT on Android
Introduction to Android Development
Android ppt
Flutter Tutorial For Beginners | Edureka
Android Operating System (Androrid OS)
Flutter
Android tutorial ppt
Mobile Application Development With Android
Presentation on android
Android Training
Introduction to Mobile Application Development
Introduction to Flutter
What is Flutter
Flutter
Ad

Viewers also liked (20)

PPT
PPTX
All about Android app development -Texavi presentation
ODP
Custom Android App Development – Web Animation India
ZIP
Android Application Development
PDF
Android App development and test environment, Understaing android app structure
PDF
Android App Development Company Presentation
PDF
Android App Development Intro at ESC SV 2012
ODP
Introduction to Android App Development
PPTX
Introduction to Android development - Presentation
PDF
School Management Android App - Techvidyalay
PPT
Fingerprint Technology
PPTX
Android technology _seminar_ ppt
PPTX
android technology presentation
PPTX
Creating the first app with android studio
PPTX
Android ppt
PPT
fingerprint technology
PPTX
Android Project Presentation
PPTX
Android seminar ppt
PPTX
Android ppt
PPTX
Presentation on Android operating system
All about Android app development -Texavi presentation
Custom Android App Development – Web Animation India
Android Application Development
Android App development and test environment, Understaing android app structure
Android App Development Company Presentation
Android App Development Intro at ESC SV 2012
Introduction to Android App Development
Introduction to Android development - Presentation
School Management Android App - Techvidyalay
Fingerprint Technology
Android technology _seminar_ ppt
android technology presentation
Creating the first app with android studio
Android ppt
fingerprint technology
Android Project Presentation
Android seminar ppt
Android ppt
Presentation on Android operating system
Ad

Similar to Intro To Android App Development (20)

PPTX
Android 1-intro n architecture
PPT
PPT Companion to Android
PPT
Android Anatomy
PPT
Android primer
PDF
Wifi Direct Based Chat And File Transfer Android Application
PPT
Android overview
PDF
Android Introduction by Kajal
PDF
01 what is android
PPT
Android In A Nutshell
PPT
Android For Java Developers
PPTX
architecture of android.pptx
PPTX
Android development-tutorial
PPTX
UNIT5newpart1pptx__2024_11_13_09_51_59 (1).pptx
PPT
Android For Java Developers
PPTX
Android- Introduction for Beginners
PPTX
Introduction to Android Development Part 1
PPTX
Introduction to android
PDF
Ch1 hello, android
PPT
IntroToAndroid
PDF
Introduction to Android
Android 1-intro n architecture
PPT Companion to Android
Android Anatomy
Android primer
Wifi Direct Based Chat And File Transfer Android Application
Android overview
Android Introduction by Kajal
01 what is android
Android In A Nutshell
Android For Java Developers
architecture of android.pptx
Android development-tutorial
UNIT5newpart1pptx__2024_11_13_09_51_59 (1).pptx
Android For Java Developers
Android- Introduction for Beginners
Introduction to Android Development Part 1
Introduction to android
Ch1 hello, android
IntroToAndroid
Introduction to Android

Recently uploaded (20)

DOCX
search engine optimization ppt fir known well about this
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
Auditboard EB SOX Playbook 2023 edition.
PPTX
Build Your First AI Agent with UiPath.pptx
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
search engine optimization ppt fir known well about this
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Flame analysis and combustion estimation using large language and vision assi...
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
MuleSoft-Compete-Deck for midddleware integrations
Data Virtualization in Action: Scaling APIs and Apps with FME
Co-training pseudo-labeling for text classification with support vector machi...
Training Program for knowledge in solar cell and solar industry
NewMind AI Weekly Chronicles – August ’25 Week IV
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Comparative analysis of machine learning models for fake news detection in so...
Auditboard EB SOX Playbook 2023 edition.
Build Your First AI Agent with UiPath.pptx
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Custom Battery Pack Design Considerations for Performance and Safety

Intro To Android App Development

  • 1. Introduction to Android Application Development Mike Kvintus Principal Engineer JDSU
  • 5. Getting Started with App Development
  • 9. Open Source Mobile Operating System from Android Inc, which was purchased by Google http://source.android.com/
  • 10. Part of the Open Handset Alliance
  • 11. Releases named after desserts 1.5 – Cupcake April 30, 2009
  • 12. 1.6 – Donut Sept 15, 2009
  • 13. 2.0/2.0.1 – Eclair Oct 26, 2009
  • 14. 2.1 – Eclair Jan 12, 2010 Android Background
  • 15. Why Should You Care Android is gaining momentum Share of the smartphone market grew from 2.8% to 3.5% in Q3 2009
  • 16. October, 2009, Gartner Inc. predicted that by 2012, Android would become the world's second most popular smartphone platform, behind only Symbian OS
  • 17. Estimated 250,000 Motorola Droid phones were sold in the US during the phone's first week in stores Open Source OS and free SDK/IDE
  • 18. Runs a Linux kernel
  • 19. App development uses the Java language syntax
  • 21. Android Features Application framework enabling reuse and replacement of components
  • 22. Dalvik virtual machine optimized for mobile devices
  • 23. Integrated browser based on the open source WebKit engine
  • 24. Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • 25. SQLite for structured data storage
  • 26. Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • 28. Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • 29. Camera, GPS, compass, and accelerometer (hardware dependent)
  • 30. Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
  • 32. Application Framework Underlying all applications is a set of services and systems, including: A rich and extensible set of views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
  • 33. Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
  • 34. A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
  • 35. A Notification Manager that enables all applications to display custom alerts in the status bar
  • 36. An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack
  • 37. Libraries System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • 38. Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • 39. Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • 40. LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • 41. SGL - the underlying 2D graphics engine
  • 42. 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • 43. FreeType - bitmap and vector font rendering
  • 44. SQLite - a powerful and lightweight relational database engine available to all applications
  • 45. Runtime Environment Dalvik VM Uses the Java language syntax, but does not provide the full-class libraries and APIs bundled with Java SE or ME
  • 46. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint
  • 47. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model The kernel also acts as an abstraction layer between the hardware and the rest of the software stack. It can be difficult to maintain applications working on different versions of Android, because of various compatibility issues between versions 1.5 and 1.6, specifically concerning the different resolution ratios of the various Android phones
  • 49. Applications Compiled Java code and resources are bundled into an .apk file Each .apk file is considered an application. By default, every application runs in its own Linux process with its own JVM so code runs in isolation from other applications
  • 50. By default each application is assigned a unique Linux user ID with security set so other user IDs can't read the application's files It's possible for 2 applications to share a single Linux user id.
  • 51. Application Components Resources External elements (images, audio, video, layouts, themes, strings, etc.) to be included and referenced in an application
  • 52. Reside under the res/ directory
  • 53. Accessed via the generated R class
  • 54. Application Components Activities Presents a visual user interface focused on one task
  • 55. Apps can have 1 or more activities
  • 56. Each activity is given a default window to draw in
  • 57. Visual content of the window is provided by a hierarchy of views
  • 58. One activity is designated the first one shown
  • 59. Move from one activity to another by having the current activity start the next activity
  • 60. Launched by passing an Intent object to Context.startActivity() or Activity.startActivityForResult()
  • 61. Stopped by calling finish() or finishActivity() of another Activity
  • 62. Application Components Intents “Verbs” Move from one Activity to another Activity
  • 64. Application Components Services No UI and run in the background for an indefinite period of time
  • 65. Code can “bind” to a service and communicate with the service via the interface the service exposes
  • 66. Runs on the app's main thread, so time consuming tasks should spawn another thread to avoid blocking the UI or other components
  • 67. Launched by passing an Intent object to Context.startService()
  • 68. Stopped by calling stopSelf() or Context.stopService()
  • 69. Application Components Broadcast receivers Receives and reacts to broadcast announcements
  • 70. Many broadcasts come from system code but apps can also initiate broadcasts
  • 71. No UI, but can start activities and use NotificationManage to alert the user Broadcasts initiated by passing an Intent object to Context.sendBroadcast(), Context.sendOrderedBroadcast(), or Context.sendStickyBroadcast()
  • 72. Content providers Makes a set of app's data available to other apps
  • 73. Activated when targeted by a request from a ContentResolver
  • 75. The AndroidManifest.xml File Names the Java package for the application (the package name serves as a unique identifier for the application)
  • 76. Describes the components of the app (activities, services, broadcast receivers, and content providers) **
  • 77. Declares which permissions the app must have in order to access protected parts of the API and interact with other apps
  • 78. Declares the permissions that others are required to have in order to interact with the app's components
  • 79. Declares the minimum level of the Android API required
  • 80. Lists the libraries that the app must be linked against
  • 81. Determines which processes will host app components
  • 82. Location API You can build location-based and maps-based capabilities into your applications using the classes of the android.location package and the Google Maps external library
  • 83. Main component of the location framework is the LocationManager system service
  • 84. Provide mock location data when testing your app with the emulator DDMS tool Manually send individual longitude/latitude coordinates to the device or use a GPX file describing a route for playback to the device or use a KML file describing individual placemarks for sequenced playback to the device “ geo” command in the console geo fix -121.45356 46.51119 4392
  • 86. Maps External Library Classes of the com.google.android.maps package offer built-in downloading, rendering, and caching of Maps tiles, as well as a variety of display options and controls
  • 87. Main class in the Maps package is com.google.android.maps.MapView, a subclass of ViewGroup
  • 89. Not part of the standard Android library
  • 90. To display Google Maps data in a MapView, you must register with the Google Maps service and obtain a Maps API Key http://code.google.com/android/add-ons/google-apis/mapkey.html
  • 91. Data Storage Preferences Lightweight mechanism to store and retrieve key-value pairs of primitive data types Files Context.openFileInput() Context.openFileOutput() Resources.openRawResource (R.raw.myDataFile) Databases – SQLite – Portable, used by iPhone, Mac, et al
  • 92. Network – java.net.* and android.net.* classes
  • 93. Getting Started with App Development
  • 94. What Do You Need to Dev Apps? x86-architecture computer running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP, Vista, 7
  • 95. Java 5 or 6 JDK (JRE alone is not sufficient)
  • 96. Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
  • 97. Android SDK ( http://developer.android.com/sdk/index.html )
  • 98. Eclipse IDE 3.4 (Ganymede) or 3.5 (Galileo) - optional Eclipse JDT plugin (included in most Eclipse IDE packages)
  • 99. Android Development Tools plugin - http://developer.android.com/sdk/eclipse-adt.html MOTODEV Studio http://developer.motorola.com
  • 100. Dev Environment Setup Install SDK Install versions you want to support
  • 101. Create Android Virtual Devices (specify release, memory, screen resolution, etc) for emulator Install Android SDK plugin in Eclipse Set the location of the Android SDK under Preferences
  • 102. Types of Apps Native Android apps (SDK, Eclipse, Netbeans, MOTODEV Studio)
  • 104. Steps to Dev Apps Using Eclipse Get code signing certificate (optional)
  • 105. Get Google Maps API key (required if using Google Maps API)
  • 106. Decide on the lowest release of Android you want to target
  • 112. Publish to Android Market (app must be signed, $25 signup fee ) or make app available for download
  • 113. Android Fragmentation Android Platform Versions http://developer.android.com/resources/dashboard/platform-versions.html Source: http://developer.android.com/resources/dashboard/platform-versions.html Source: http://androidandme.com/2010/01/news/google-updates-android-fragmentation-numbers/
  • 114. Setting Up A Phone for Testing Apps Add android:debuggable=&quot;true&quot; to the <application> element in AndroidManifest.xml
  • 115. Turn on &quot;USB Debugging&quot; on your device
  • 116. Setup your system to detect your phone Install Windows USB driver
  • 117. See online docs for Linux setup Connect phone via USB and verify using “adb devices” command
  • 119. Tips Make sure to add new components to AndroidManifest.xml
  • 120. For ListView, use android:cacheColorHint=&quot;#00000000&quot; when using a background image
  • 121. Test with different screen resolutions and different devices if possible
  • 122. Target the appropriate release of Android
  • 123. Other App Dev Tools Titanium Mobile http://www.appcelerator.com/products/titanium-mobile/
  • 124. Ruboto - JRuby on Android http://github.com/headius/ruboto-irb
  • 125. ASE – Android Scripting Environment http://code.google.com/p/android-scripting/
  • 127. Useful Links http://developer.android.com/ SDK, Developer Guide – Sample apps, Tutorials/Videos http://www.android.com/ General Android info http://www.eclipse.org/ Eclipse IDE http://developer.motorola.com MOTODEV Studio - @motodev http://developer.android.com/guide/developing/tools/emulator.html#controlling Commands to control the Android Emulator http://training.oreilly.com/androidapps-java/ Online Course: Developing Android Applications with Java