Post on 14-May-2015
description
transcript
Mobile App Development using Android
SDK
Josh ClemmOctober 27, 2010
Agenda● Overview of Android
● Overview of Android App framework
● Application Development walkthrough
● Demos!
What is Android?
● Complete software stack for mobile devices● Operating system based
on Linux● Middleware● Mobile applications
● Developed by Google
● The Android SDK● Provides tools and APIs to develop apps in
Java
LINUX KERNEL
LIBRARIES ANDROID RUNTIME
APPLICATION FRAMEWORK
APPLICATIONS
Home Contacts Phone Browser …
Activity Manager
Window Manager
Content Providers View System
Package Manager
Telephony Manager
Resource Manager
Location Manager
Notification Manager
Surface Manager
Media Framework SQLite
OpenGL | ES FreeType WebKit
libcSSLSGL
Core Libraries
Dalvik Virtual Machine
DisplayDriver
CameraDriver
Flash MemoryDriver
Binder (IPC)Driver
KeypadDriver
WifiDriver
AudioDrivers
PowerManagement
Linux Kernel
● Android relies on core Linux 2.6 services● Security● Memory management● Process management● Network stack● Driver model
LINUX KERNELDisplayDriver
CameraDriver
Flash MemoryDriver
Binder (IPC)Driver
KeypadDriver
WifiDriver
AudioDrivers
PowerManagement
Android libraries● C library (Bionic)
● Media libraries
● LibWebCore – web browser engine
● SGL – 2G graphics engine
● 3D libraries – based on OpenGL ES 1.0
● FreeType – bitmap/vector rendering
● SQLite relational database
LIBRARIESSurface
ManagerMedia
Framework SQLite OpenGL | ES
FreeType WebKit libc SSL
Android Runtime
● Provides most of the functionality of Java’s libraries
● Apps run in its own process within its own Dalvik VM● Optimized for minimal memory● Register-based vs. stack-based ● JIT compilation
ANDROID RUNTIME
Core Libraries
Dalvik Virtual Machine
Java Source Code
Java Byte Code
Dalvik Byte Code
Dalvik ExecutableDalvik VM
APPLICATION FRAMEWORK
Application Framework
● Open/consistent development platform
● Activity Manager controls lifecycle of app
● Access location information
● Run background services, add
notifications to the status bar, and more…
Activity Manager
Window Manager
Content Providers View System
Package Manager
Telephony Manager
Resource Manager
Location Manager
Notification Manager
Android Applications
● Let’s walkthrough…
● Installing what you need
● Writing your app● Layouts, Logic, and Images
● Testing and debugging with emulator/device
● Publishing to App Market
Android Applications
● How to get started● Install Java 5 or 6
● Download Android SDK
● (Optional) Install Eclipse IDE
● (Optional) Install Android Eclipse Plugin (ADT)● The ADT plugin can manage installs of various
Android versions. ● It’s easy to get the latest releases
App Development
● Come up with an idea
● Determine the layout of the screens
● Code logic
● Customize look and feel
App Development - Layouts
App Development - Logic
● An activity can represent one screen● There’s an activity lifecycle: onCreate(),
onStart(), onResume(), onPause(), onStop(), onDestroy()
● An activity can have multiple views● Tabs, lists, a map
App Development – running
● Use built-in emulator● Mimic any target
device● Slow and can’t do
everything
● Run on Device● Fast, debuggable
Demos
● Cool things like
● Embedded map views
● Embedded web views
● Using location
● Using accelerometer
Questions?
Resources
● http://www.openhandsetalliance.com/android_overview.html
● http://developer.android.com/guide/basics/what-is-android.html
● http://en.wikipedia.org/wiki/Android_%28operating_system%29
● Myself
Backup Slides
Publishing and beyond
● Before publishing remember…
● Create an icon
● Be able to support multiple screen sizes
● Be able to support multiple OS versions
● You might want to support multiple
languages
Publishing and beyond
● Sign your apps
● Add your App to Android Market● Also possible to use third-party app
markets
● Register as an Android developer ($25)
● Upload and watch the downloads fly!
Security And Permissions
● No App has permission to do anything that would impact another app
● Apps run in its own process● It’s a secure sandbox
● Permissions required are declared before a user installs the app
Filesystem and Database
● Each app has its own unique file system on the phone’s internal memory● App preferences, databases, flat files
reside there
● The SD card is a better resource for storing larger files (like for a game)
Android Resources/res folder R.java
Android package
Your code
ADT generates
ReferenceConstants
Runtime
App Components
● Reusable components
● Views – GUI widgets like lists, grids, text
boxes, embedded web browser
● Content providers – access data from other
apps (Contacts)
● Resource manager – access to non-code
resources (graphics, layouts, strings)
● Activity manager – lifecycle of apps