Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
41 views

A Developer'S Introduction To Google Android: Dr. Frank Mccown Harding University Spring 2010

This document provides an overview of the Android operating system and platform for developing Android applications. It discusses the history and development of Android, the architecture including the Dalvik VM and emulator, setting up the development environment, and the core application components in Android - activities, services, broadcast receivers, and content providers. It also covers the Android manifest file, data storage options, common UI elements and layouts, and the activity lifecycle. References for further reading on Android development are provided.

Uploaded by

caran4201
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

A Developer'S Introduction To Google Android: Dr. Frank Mccown Harding University Spring 2010

This document provides an overview of the Android operating system and platform for developing Android applications. It discusses the history and development of Android, the architecture including the Dalvik VM and emulator, setting up the development environment, and the core application components in Android - activities, services, broadcast receivers, and content providers. It also covers the Android manifest file, data storage options, common UI elements and layouts, and the activity lifecycle. References for further reading on Android development are provided.

Uploaded by

caran4201
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

A Developer’s Introduction to

Google Android
Dr. Frank McCown
Harding University
Spring 2010
http://findmearobot.com/Pages/Required%20robots/Images/Do http://doctorbeatnik.files.wordpress.com/2009/10/blade_runner2.jpg
%20androids%20dream%20of%20electric%20sheep.jpg
Brief History
• 2005
– Google acquires startup Android Inc. to start Android platform
– Work on Dalvik VM begins
• 2007
– Open Handset Alliance announced
– Early look at SDK
• 2008
– Google sponsors 1st  Android Developer Challenge
– T-Mobile G1 announced
– SDK 1.0 released
– Android released open source (Apache License)
– Android Dev Phone 1 released

Pro Android by Hashimi & Komatineni (2009)


Brief History cont.
• 2009
– SDK 1.5 (Cupcake)
• new soft keyboard with an "Autocomplete" feature
– SDK 1.6 (Donut)
– SDK 2.0/2.0.1/2.1 (Eclair)
– Android runs on 3.5% of all smartphones
• Gartner Inc. predicts 14% in 2012
• 2010
– Nexus One released to the public
http://en.wikipedia.org/wiki/Android_(operating_system)
http://www.computerworld.com/s/article/9139026/Android_to_grab_No._2_spot_by_2012_says_Gartner
iPhone or Droid?

http://www.xkcd.com/662/
Key Differences: Android vs. iPhone
iPhone Android
• OS is proprietary • OS is open source
• OS runs on iPhone or iPod • OS can be licensed for any
Touches only mobile device
• Apps written in Objective-C • Apps written in Java
• Apple must approve all apps • No approval process for
 Application Store apps  Android Market
• Some apps are more • All apps considered equal
important than others (choose your browser)
(Safari is your browser)
What is Google Android?
• A software stack for mobile devices that includes
– An operating system
– Middleware
– Key Applications
• Uses Linux to provide core system services
– Security
– Memory management
– Process management
– Power management
– Hardware drivers
http://developer.android.com/guide/basics/what-is-android.html
Android Runtime: Dalvik VM
• Subset of Java developed by Google
• Optimized for mobile devices (better memory
management, battery utilization, etc.)
• Dalvik runs .dex files that are compiled from
.class files
• Introduces some new libraries
• Does not support some Java libraries like AWT
Applications Are Boxed
• By default, each app is run in its own Linux process
– Process started when app’s code needs to be executed
– Threads can be started to handle time-consuming
operations
• Each process has its own Dalvik VM
• By default, each app is assigned unique Linux ID
– Permissions are set so app’s files are only visible to that
app
Android Emulator
Emulator Hardware
• An ARMv5 CPU and the corresponding memory-
management unit (MMU)
• A 16-bit LCD display
• One or more keyboards (a Qwerty-based keyboard
and associated Dpad/Phone buttons)
• A sound chip with output and input capabilities
• Flash memory partitions (emulated through disk
image files on the development machine)
• A GSM modem, including a simulated SIM Card
http://developer.android.com/guide/developing/tools/emulator.html
Emulator Limitations
• No support for placing or receiving actual phone calls. You can
simulate phone calls (placed and received) through the
emulator console, however.
• No support for USB connections
• No support for camera/video capture (input)
• No support for device-attached headphones
• No support for determining connected state
• No support for determining battery charge level and AC
charging state
• No support for determining SD card insert/eject
• No support for Bluetooth
http://developer.android.com/guide/developing/tools/emulator.html
Setup Development Environment
• Install JDK 5 or 6
• Install Eclipse IDE for Java EE Developers (version
3.5 - Galileo)
• Download and unpack the Android SDK
• Install Android Development Tools (ADT) plugin
for Eclipse
• Detailed install instructions available on Android
site
http://developer.android.com/sdk/installing.html
Producing an Android App
javac
Java code Byte code

dx
.java .class Dalvik exe

classes.dex aapt

Byte code <xml>

Other .class files AndroidManifest.xml .apk

<str>

Resources
Hello Android Tutorial

http://developer.android.com/resources/tutorials/hello-world.html
Four Application Components
1. Activities
– Presents a visual UI for a single endeavor
– Examples: list of photos, buttons to start/stop a song
2. Services
– Performs background work (no UI)
– Examples: play background music, retrieve data over a network
3. Broadcast Receivers
– Receives and reacts to broadcast announcements (no UI)
– Broadcast examples: battery is low, pic is taken, lang pref changed
4. Content Providers
– Provides app data to other applications (no UI)
– Examples: share contact info from SQLite, provide image from the
file system
Activating Components
• Content providers are activated by a
ContentResolver
• Activities, services, & broadcast receivers are
activated by intents
• Intents are asynchronous messages
• Example: A Service starts an Activity to pick a
photo by using an intent. The photo is
returned to the Service also using an intent.
Shutting Down Components
• Content providers are only active when
responding to ContentResolvers
• Broadcast receivers are only active when
responding to broadcast messages
• Activities can stop themselves with finish()
or stop other activities it started with
finishActivity()
• Services can stop themselves with stopSelf()
or Context.stopService()
AndroidManifest.xml
• Bundled into Android package (.apk file)
• Declares all the app’s components
• Names libraries app needs to be linked against
• Identifies permissions the app expects to be
granted
Data Storage
• App’s data is private
• Data can be shared using content providers
• Four ways to store data:
1. Preferences: Lightweight mechanism to store and
retrieve key-value pairs of primitive data types
2. Files: Store on mobile device or on a removable
storage medium
3. Databases: SQLite 
4. Network: Store/retrieve data stored elsewhere
Various Layouts

http://developer.android.com/resources/tutorials/views/index.html
Various Widgets

http://developer.android.com/resources/tutorials/views/index.html
SDK Samples
Activity Lifecycle

http://developer.android.com/reference/android/app/Activity.html
References
• Android Introduction by Marko Gargenta,
http://www.lecturemaker.com/2009/10/andro
id-software-platform/
• Android Dev Guide
http://developer.android.com/guide/topics/fu
ndamentals.html
• Pro Android by Hashimi & Komatineni (2009)
Questions?

http://www.pocket-lint.com/news/30712/android-powered-microwave-cooking-google

You might also like