Tuesday, December 7, 2010

Android Application Development (Daniel Switkin)


Android applications
• Introduce major Android application concepts
• Walk you through a sample application in the

development environment
Agenda
•System architecture
•Hello World!
•Application components
•Practical matters
•Toolchain

What is Android?
• A free, open source mobile platform
• A Linux-based, multiprocess, multithreaded OS
• Android is not a device or a product
• It’s not even limited to phones - you could build a DVR, a handheld GPS, an MP3 player, etc.


The History of GUIs
• Hardcoded to the screen
• Hardcoded to the window
• Hardcoded within a view hierarchy
• Dynamic layout within a view hierarchy

Generating GUIs
• Two ways to create GUIs: in XML or in code
• Declarative route via XML has advantages
• A lot of your GUI-related work will take place in:
•res/layout
•res/values
•@id/name_for_component gives you handle for referencing XML declarations in code

Views
• Views are building blocks
• Examples:
• Can be as basic as: TextView, EditText, or

ListView
• Fancier views: ImageView, MapView, WebView

Layouts
• Controls how Views are laid out
• FrameLayout : each child a layer
• LinearLayout : single row or column
• RelativeLayout : relative to other Views
• TableLayout : rows and columns
• AbsoluteLayout : <x,y> coordinates
Layouts are resizable


Layouts are customizable

Layout Parameters
• Specify many aspects of what’s being rendered
• Examples: android:layoutheight, android:layout_width
• Tip: start with documentation for a specific View or Layout and then look at what’s inherited from
parent class

Activities
• Typically correspond to one screen in a UI
• But, they can:
• be faceless
• be in a floating window
• return a value

Intents
• Think of Intents as a verb and object; a description of what you want done
• Examples: VIEW, CALL, PLAY, etc.
• System matches Intent with Activity that can best provide that service
• Activities and BroadcastReceivers describe what Intents they can service in their IntentFilters (via
AndroidManifest.xml)


BroadcastReceivers
• Components designed to respond to broadcast Intents
• Think of them as a way to respond to external notifications or alarms
• Applications can invent and broadcast their own Intents as well

Services
• Faceless components that run in the background
• Example: music player, network downlaod, etc.
• Bind your code to a running service via a remote-able interface defined in an IDL
• Can run in your own process or separateprocess

ContentProviders
• Enables sharing of data across applications
• Examples: address book, photo gallery, etc.
• Provides uniform APIs for:
• querying (returns a Cursor)
• delete, update, and insert rows
• Content is represented by URI and MIME type

Practical matters
Storage and Persistence
• A couple of different options:
• Preferences
• Flat file
• SQLite
• ContentProvider

Packaging
• Think of .apk files as Android packages
• Everything needed for an application is bundled up therein
• Basically a glorified ZIP file

Resources
• res/layout: declarative layout files
• res/drawable: intended for drawing
• res/anim: bitmaps, animations for transitions
• res/values: externalized values for things likestrings, colors, styles, etc.
• res/xml: general XML files used at runtime
• res/raw: binary files (e.g. sound)

Assets
• Similar to Resources
• Differences:
• Read-only
• InputStream access to assets
• Any kind of file
• Be mindful of file sizes

Application Lifecycle
• Application lifecycle is managed by the system
• Application start/stop is transparent to the user
• End-user only sees that they are moving between

Eclipse Plugin

Debugging

1 comment:

  1. By using this android application you can get very advance features.This is one of the unique post.
    Android app developers

    ReplyDelete