Android Programming Basic
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
Introducing android
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
What is android? Source: An introduction to android – Huang Xuguang
What is android? U.S. Smartphone Market share
Android architecture Source: http://developer.android.com
Installing the tools Java SE (JDK) Eclipse Android SDK Android Development Tools (ADT) for Eclipse Android platforms and other components Create virtual device
Creating first program
Android basic
Layout • Linear Layout • Frame Layout • Absolute Layout • Relative Layout • Table Layout
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 …
Custom component Use the Custom Component
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.
Dialog • Alert Dialog • Progress Dialog • Date Picker Dialog • Time Picker Dialog • Custom Dialog Source: http://developer.android.com
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
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
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
Supporting Multiple Screens NinePatch Source: http://www.developer.com/ws/other/article.php/3889086/Working- with-NinePatch-Stretchable-Graphics-in-Android.htm
Supporting Multiple Screens Draw 9-patch Source: http://android10.org/index.php/articlesother/279-draw-9-patch-tutorial
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
Activity Activity Lifecycle
Activity Navigating to another activity Wait for result
Activity Passing data to another activity Sharing data among activities • using a class with a lot of static variables • File or database
Google map
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
Using sensors Android supports several sensors via the SensorManager • Accelerometer • Compass • Temperature • Gyroscope • Gravity • Proximity • … Can not test on the Android emulator
Communicating with the server • HttpGet • HttpPost • Socket • Call webservice using ksoap2
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.
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:
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 • …
Slide, tools, documents & samples Share on my PC now: yp-tienhungandroid
Q&A

Android Programming Basic

  • 1.
  • 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
  • 3.
  • 4.
    What is android? Androidis 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
  • 6.
    What is android? U.S.Smartphone Market share
  • 7.
    Android architecture Source: http://developer.android.com
  • 8.
    Installing the tools JavaSE (JDK) Eclipse Android SDK Android Development Tools (ADT) for Eclipse Android platforms and other components Create virtual device
  • 9.
  • 10.
  • 11.
    Layout • Linear Layout •Frame Layout • Absolute Layout • Relative Layout • Table Layout
  • 12.
    Custom Component Extend anexisting 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 …
  • 13.
    Custom component Use theCustom Component
  • 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.
  • 15.
    Dialog • Alert Dialog •Progress Dialog • Date Picker Dialog • Time Picker Dialog • Custom Dialog Source: http://developer.android.com
  • 16.
    Supporting Multiple Screens Displayunits 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 Usingconfiguration 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
  • 19.
    Supporting Multiple Screens NinePatch Source: http://www.developer.com/ws/other/article.php/3889086/Working- with-NinePatch-Stretchable-Graphics-in-Android.htm
  • 20.
    Supporting Multiple Screens Draw9-patch Source: http://android10.org/index.php/articlesother/279-draw-9-patch-tutorial
  • 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
  • 22.
  • 23.
    Activity Navigating to anotheractivity Wait for result
  • 24.
    Activity Passing data toanother activity Sharing data among activities • using a class with a lot of static variables • File or database
  • 25.
  • 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 supportsseveral sensors via the SensorManager • Accelerometer • Compass • Temperature • Gyroscope • Gravity • Proximity • … Can not test on the Android emulator
  • 28.
    Communicating with theserver • HttpGet • HttpPost • Socket • Call webservice using ksoap2
  • 29.
    Working in thebackground 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 thebackground 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 • …
  • 32.
    Slide, tools, documents& samples Share on my PC now: yp-tienhungandroid
  • 33.

Editor's Notes