Introduction to Android Development
Upcoming SlideShare
Loading in...5
×
 

Introduction to Android Development

on

  • 950 views

Introduction to Android Development - Galatasaray University

Introduction to Android Development - Galatasaray University

Statistics

Views

Total Views
950
Views on SlideShare
950
Embed Views
0

Actions

Likes
3
Downloads
31
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introduction to Android Development Introduction to Android Development Presentation Transcript

    • Introduction to Android Development Can Elmas March 07, 2012
    • Who am I ?• 2008 GSU graduate• Software Development Team Leader at Pozitron – http://www.pozitron.com• Interest in mobile platforms• Experience with mobile platforms such as Symbian (Java ME), BlackBerry and Android• Experience with server side development
    • Agenda• What is Android?• Why Android?• Android Architecture• Android Building Blocks• Demo
    • What is Android ?
    • What is Android?• Software stack for mobile devices including an operating system, middleware , key applications and rich set of APIs• Project by Open Handset Alliance led by Google, a consortium of 86 companies (Samsung, Motorola, Sony, HTC, LG, Dell, Intel, Nvidia etc.)• First Release in November 2007
    • What is Android?• Based on Linux Kernel• Security, Memory Management, Process Management, Network Stack, Driver stack• No, Android is not Linux (No native windowing system, no glibc, no standard GNU/linux utilities)• Linux Kernel enhancements (alarm, ashmem, power management, low memory killer - no swap space)• Robust and proven over time
    • What is Android?• Applications written primarily in customized version of Java• No, android is not Java – Uses Java language – Implements part of the Java 5 SE specification (Collections, generics support) – Runs on Dalvik Virtual Machine instead of JVM – Multiple VMs
    • What is Android?• Free and open – No need of any user id or account for SDK access – Source at http://source.android.com• Rich Developer Community• Cheaper and more innovative Mobile Devices• Extendable – Players can add proprietary functionality to their products – Companies can remove functionality if they choose
    • What is Android?• Android Market, 450.000 apps as of February 2012• 850.000 devices activated every day, according to Google’s Andy Rubin
    • What is Android?• Mulitasking• Integrated browser based on WebKit Engine• 3d Graphics based on the OpenGL Es• SQLite• Camera, GPS, compass and accelerometer
    • Why Android?
    • Why Android?• Free SDK – Available at http://developer.android.com• Open Source• All applications are equal• Dalvik Virtual Machine• Development on Windows, Linux or Mac OS• Starting development easy and cheap
    • Why Android?• Rich Development Environment – Full Device Emulator – Tools for debugging DDMS (Dalvik Debug Monitor Server) – Memory and performance profiling• Rich Documentation• Very large community and target audience• Open Market Place – Instant publishing
    • Android Architecture
    • Android Architecture• Relies on Linux kernel version 2.6 for core system services• Every Android application runs on its own process, with its own Dalvik Virtual Machine• C/C++ libraries (Surface Manager , Media Libraries, SQLite etc.)• Native set of core applications including email client, SMS, Calendar, maps, browser, contacts and others
    • Android Building Blocks
    • Vocabulary• Activity• Views• Resources• Intents• Intent Filters• AndroidManifest.xml
    • Activity• What the user see on the screen• An Android application with User Interface consists of one or more Activities.
    • Activity
    • Activity
    • Activity• Moving through screens is by starting new activities• Managed as an activity stack• LIFO (Last In First Out)• Only one is visible• Only one is active• Activity Lifecycle
    • Source : http://developer.android.com
    • Activity States• Active – At the top of the stack• Paused – Lost focusbut still visible – Can be killed by Low Memory Killer• Stopped – Not at the top of the stack• Dropped – Killed to reclaim its memory
    • Activity• An empty activity with no content
    • Views• Views are basic UI building blocks• They know how to draw themselves – Android framework responsible for measuring, laying out and drawing• Respond to events• Implementation : – Java code – XML – Separation of presentation of the application from the code controlling the behavior. – Ease of visualization of the UI structure – Strings, color, styles, shapes, animations etc can be described as XML
    • Views• Views and view groups trees build up complex GUIs : widgets – android.widget.ListView – android.widget.TextView – android.widget.Button – android.widget.ImageView
    • Views• Subclasses of ViewGroup, Layouts• Standard layouts : – LinearLayout – FrameLayout – TableLayout – RelativeLayout – AbsoluteLayout
    • Views• Android UI in XML : /res/layout/main_act.xml
    • Resources• External sources other than your code (images, views and layouts in xml, strings etc.) should be externalized, so that you can maintain them independently
    • Resources• Accessing application resources : – R class• All reources IDs are defined in R class, which is automatically generated by Android aapt tool
    • Activity• An empty activity with no content
    • Activity
    • Activity
    • Intents• An Intention to do something• Abstract description of an operation to be performed• A message to the OS that you want to do something (pre-defined action)• Used to move from one Activity to another
    • Intents• Facilitates app to app communication• Primary Attributes – Action • The general action to be performed – Data • The data to operate on (a contact, an url, the new activity etc.)
    • Intent Filters• Description of what intent an activity is capable of handling
    • Intent Filters
    • AndroidManifest .xml• Description of the android application including activities, intent receivers, permissions, application icon, application name, version information etc.• It’s the glue that specifies which Intents your activities might receive• An activity should be declared as the main entry point
    • AndroidManifest.xml
    • More Advanced Topics• How Android deal with Fragmentation? – API Levels (Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich)• How are the resources selected at run time according to different screen sizes and densities?
    • More Advanced Topics• Single Threaded UI Model• APK (Android Package)• Application Signing
    • Thank you• We’re Hiring – http://pozitron.com/careers.php – ik@pozitron.com• Twitter – @foragoodpurpose – @Pozitron_Mobile
    • Demo• Phase 1: – Create a new Android project with package name com.gsuandroid.activities – Create a new Activity called MainActivity – Create a layout for MainActivity which will consist of a LinearLayout containing a TextView with predefined text “Hello Android” – Run your application
    • Demo• Phase 2: – Create another activity called ActTwo – Create a layout for your new activity containing a TextView without setting a text in XML – Modify your MainActivity’s layout xml in and add a Button with setting and id, android:id="@+id/btn_go_to_act_two » and text « Go to Next Activity» – Start ActTwo when user presses button inserted in the MainActivity – Run your application
    • Demo• Phase 3: – Pass a text message “That’s it for today” when moving from MainActivity to ActTwo – Run your application
    • Full Code
    • main_act.xml
    • act_two.xml