Upload
tomas-kypta
View
964
Download
0
Tags:
Embed Size (px)
Citation preview
Android Development- the basics
Tomáš Kypta@TomasKypta
Outline
● Android platform● Android ecosystem● Android SDK and development tools● Hello World● Building blocks & the manifest file● Activities, widgets, intents● Dialog, toast
Android platform
● Linux-based operating system● open-source● originally phone OS● tablet (since Honeycomb)● Google TV● hundreds of devices
History
● 2003, Android inc.● 2005 acquired by Google● 2008 first Android phone – T-Mobile G1
● since then rapid development of the platform
Android ecosystem
● the world's most popular mobile platform● over 850 000 new devices activated each day● total number of devices ~ 300 million
● play.google.com (market.android.com)● more than 450 000 applications● ~ 70% free apps
Problems
● fragmentation● manufacturer/carrier enhancements● updates & support● openness – low quality apps● malware (users)
Sources
● developer.android.com● android-developers.blogspot.com● source.android.com● stackoverflow.com● youtube.com/androiddevelopers● svetandroida.cz
Development
● programming in “Java”● native apps possible (C++)
● development tools platform friendly● Windows, Linux, Mac OS X● IDE support – ADT plugin for Eclipse,
Netbeans, IntelliJ IDEA, ...
Android SDK● android – Android SDK and AVD Manager● adb – Android Debug Bridge● ddms – Dalvik Debug Monitor● emulator● hierarchyviewer● ProGuard● Traceview● docs
Libraries
● compatibility libraries● licensing library
● AdMob● Google Analytics, Flurry● C2DM
Android internals
Hello World
Android Building Blocks
● Activity● Service● Content provider● Broadcast receiver
● AndroidManifest.xml
Activity
● screen with user interface● the only visual component
● examples:– list of emails
– email detail
– email composition
Service
● runs in background● long-running tasks
● examples:– music playback service
– download service
– sync service
Content Provider
● manages and shares application data● data storage doesn't matter – database, web,
filesystem● apps can query and modify data through
content provider● read/write permissions can be defined● examples:
– all system databases
– contacts
– SMS
Broadcast Receiver
● responds to broadcasts● broadcasts are system wide● can be registered statically or dynamically● system or custom messages● examples:
– incoming SMS, incoming call
– screen turned off
– low baterry
– removed SD card
AndroidManifest.xml
● defines what parts the app have● defines which endpoints are exposed● minimum API level● permissions● declare hardware and software features● required configuration
Intent
● asynchronous message● binds components together (all of them
except ContentProvider)● starting activities● starting services and binding to services● sending broadcasts
User Interface
● defined by hierarchy of views● layouts = containers
– LinearLayout
– RelativeLayout
– FrameLayout
● widgets = UI objects– Button, TextView, EditText
– WebView
Activity Lifecycle
● activities managed in a stack● activity can be in different states during it's
lifecycle:– foreground
– visible
– stopped
– killed
Intent & Activity
● starting activity explicitly
● starting activity implicitly
● starting activity for result
List Widgets
● displays a list of items (some view)– ListView, Spinner, GridView, Gallery
● use adapter to bind list to data
Dialogs and Toasts
● Dialog – displays modal information– standard dialogs
– custom dialogs
● Toast – non-modal information – doesn't have user focus
THE END