introduction to android development
DESCRIPTION
Introduction to Android Development - Galatasaray UniversityTRANSCRIPT
Introduction to Android Development
Can ElmasMarch 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
–@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