2. Agenda
Introducing Android
• What is android?
• Android architecture
• Installing the tools
• Creating first program
Android basic
• Layout
• Custom component
• Menu
• Dialog
• Supporting Multiple Screens
• Activity
• Google map
• Location services
• Using sensors
• Communicating with the server
• Working in the background
4. What is android?
Android is a Linux-based mobile phone operating system developed
by Google
•Open
•All application are created equal
•Breaking down application boundaries
•Fast & easy application development
5. What is android?
Source: An introduction to android – Huang Xuguang
8. Installing the tools
Java SE (JDK)
Eclipse
Android SDK
Android Development Tools (ADT) for Eclipse
Android platforms and other components
Create virtual device
12. Custom Component
Extend an existing View class
Override some of the methods from the superclass
• onDraw: Called when the view should render its content.
• onMeasure: Called to determine the size requirements for this view and all of its
children.
• onTouchEvent, onKeyUp, onKeyDown …
14. Menu
• Options Menu: The primary collection of menu items for an activity,
which appears when the user touches the MENU button.
• Context Menu: A floating list of menu items that appears when the
user touches and holds a view that's registered to provide a context
menu.
• Sub Menu: A floating list of menu items that appears when the user
touches a menu item that contains a nested menu.
16. Supporting Multiple Screens
Display units in android
• dp: Density-independent Pixels - an abstract unit that is based on the physical
density of the screen. These units are relative to a 160 dpi (dots per inch)
screen, so 160dp is always one inch regardless of the screen density
The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For
example, on a 160 dpi screen, 1 dp equals 1 physical pixels and on a 240 dpi
screen, 1 dp equals 1.5 physical pixels…
• sp: Scale-independent Pixels - this is like the dp unit, but it is also scaled by the
user's font size preference.
• pt: Points - 1/72 of an inch based on the physical size of the screen
• px: Pixels - corresponds to actual pixels on the screen
• mm: Millimeters - based on the physical size of the screen.
• in: Inches - based on the physical size of the screen.
Source: http://developer.android.com
17. Supporting Multiple Screens
Density independence
Example application without support for different densities, as shown on low, medium, and high density screens.
Example application with good support for different densities (it's density independent), as shown on low, medium, and high density
screens.
Source: http://developer.android.com
18. Supporting Multiple Screens
Using configuration qualifiers
• Directory qualifier
Size: small, normal, large, xlarge
Density: ldpi (~120dpi), mdpi (~160dpi), hdpi (~240dpi), xhdpi, nodpi, tvdpi
Aspect ratio: long, notlong
Orientation: land, port
• List of resource directory
• Specific screen size (via the AndroidManifest)
Source: http://developer.android.com
21. Activity
• An Activity roughly corresponds to screen
• They appear on a stack, with one visible at a time, and use a BACK button for
reverse navigation through the stack
26. Location services
Cell ID
• Each cell tower worldwide has a unique identifier called Cell ID
• Each tower knows its latitude and longitude, so it's easy enough for a mobile phone
to know "approximately" where you are located
Triangulation
• Most of the time your mobile phone is in range of more
than one cell tower
• The cell tower has the ability to tell what direction your
signal is coming from
• If there are two or three towers that can see your
phone, together they can triangulate on your phone's
location
GPS
• The satellite-based Global Positioning System (GPS)
• Your mobile phone can determine its location very accurately
Source: http://www.helloandroid.com/content/location-and-mapping
27. Using sensors
Android supports several sensors via the SensorManager
• Accelerometer
• Compass
• Temperature
• Gyroscope
• Gravity
• Proximity
• …
Can not test on the Android emulator
28. Communicating with the server
• HttpGet
• HttpPost
• Socket
• Call webservice using ksoap2
29. Working in the background
Threads
• Android supports standart Java Threads.
• If you need update the UI in a separate thread you need to use Handler
(android.os.Handler). When you send message to the Handler and it will get
saved into a queue and get executed by the UI thread as soon as possible.
Handler
• The class "Handler" can update the UI.
30. Working in the background
AsyncTask
• The class AsyncTask encapsulates the creation of Threads and Handlers
• AsyncTask enables proper and easy use of the UI thread
• An asynchronous task is defined by 3 generic types, called Params, Progress and
Result, and 4 steps, called onPreExecute, doInBackground, onProgressUpdate and
onPostExecute.
• Example:
31. References
• Thesis - Android programming – Vo Thanh Nhat & Phan Thanh Trung –
University of Science Ho Chi Minh City
• Hello android – Introducing Google Mobile’s Development Platform – Ed
Burnette
• Wrox – Professional Android Application development – Rito Meier
• Wrox – Professional Android 2 Application development – Rito Meier
• Apress – Pro Android – Sayed Y.Hashimi and Satya Komatineni
• http://developer.android.com
• http://stackoverflow.com
• http://www.helloandroid.com
• …