1. General Course Outline
• Introduction to Android and Mobile Devices
• Setting up Development Environment
• Application Architecture and Lifecycle
• Java Language Basics and Syntax
• Object Oriented Programming in Java
• Vertical and Horizontal Libraries in Java
• Object Oriented Principles and Practice
• Building Android Applications
• Android User Interface
• Common Controls
• Android Application Components: Activity, BroadcastListener,
Service, Content Provider
2. System Requirements
Setting up Development Environment
Supported OS
2.Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32-
or 64-bit)
3.Mac OS X 10.5.8 or later (x86 only)
4.Linux (tested on Ubuntu Linux, Lucid Lynx)
Supported Development Environment (Eclipse IDE based)
2.Eclipse 3.4 (Ganymede) or greater/Eclipse Classic (versions 3.5.1
and higher)
3.JDK 1.5 or 1.6
4.ADT Plugin
3. To set up the development environment, we need:
2. Java Development Kit (JDK 1.5+, 1.6 is preferable)
3. Eclipse IDE
4. Android SDK
Setting up Development Environment(Contd.)
4. Java Development Kit (JDK)
Setting up Development Environment (Contd.)
Download Link: http://www.java.com/en/download/index.jsp
Download JDK from here and Install JDK
5. Eclipse IDE
Setting up Development Environment (Contd.)
Download Link: http://eclipse.org/downloads/
Download the highlighted version of Eclipse IDE
6. Android SDK
Setting up Development Environment (Contd.)
Link:
http://developer.android.com/sdk/index.html
Download and Install the SDK starter package from the table above
(Highlighted)
7. Android SDK Setup (1)
Setting up Development Environment (Contd.)
1. Install available packages to get all SDK platform versions
8. Android SDK Setup (2)
Setting up Development Environment (Contd.)
2. Installation progress
9. Android SDK Setup (3)
Setting up Development Environment (Contd.)
3. ADT Plugin for Eclipse
ADT Plugin:
Android Development Tools (ADT) is a plugin for the Eclipse IDE for
•extending the capabilities of Eclipse to set up new Android projects
•creating an application UI
• adding components based on the Android Framework API
• debugging your applications using the Android SDK tools
• exporting signed (or unsigned) APKs in order to distribute your application
We’ll see the 5 points gradually during development
10. Android SDK Setup (4)
Setting up Development Environment (Contd.)
4. Installing the ADT
• Start Eclipse, then select Help >
Install New Software....
• Click Add, in the top-right
corner.
• In the next window, you'll see a
list of the tools to be
downloaded. Click Next.
• Read and accept the license
agreements, then click Finish.
• When the installation
completes, restart Eclipse.
11. Android SDK Setup (5)
Setting up Development Environment (Contd.)
5. Set SDK path
• Start Eclipse, then select
Window > Preferences
• Browse and show the path of
Android SDK.
• Press Apply and OK.
Development Environment Setup is now completed!
12. Let’s say “Hello” to the Android World!
In the subsequent slides:
•We’ll create an application step by
step using the help of IDE and ADT.
•We’ll then explain application
structure and identify the building
blocks.
•We’ll experiment with components
and learn to convert our innovative
ideas into neat apps.
Now that our development environment is
ready, we’ll build our first Android application.
13. Let’s say “Hello” to the Android World! (Contd.)
1. Start Eclipse and Go to File>New>Android Project
2. We keep project name “Hello World”
(Since 1970 Ritchie’s book on C
programming, programmers always say
Hello World first)
3. Build Target “Android1.6”
4. Application name: “Hello World”
5. Package name: com.sentinelbd.hallo
6. Initial Activity Name: HalloActivity
7. Min SDK Version: 4
8. Click Finish
Congratulations!
You’ve just created your
first Android application
We’ll explain each input shortly
14. Let’s Go Deep…
Created Project has the following structure
Project Structure
-Source (src)
-Generated Class (gen)
-Android 1.6 library
-Assets (assets)
-Resource(res)
-drawable-hdpi
-drawable-ldpi
-drawable-mdpi
-layout
-values
-AndroidMenifest.xml
-default.properties
15. Let’s Go Deep… (Contd.)
To run the app in emulator, we have to do the following steps:
3.Create AVD (Android Virtual Device)
4.Create Run Configuration
5.Run the Application
To run the app in device, we have to do the following steps:
3.Install device driver
4.Connect device through USB
5.Create Run Configuration
6.Run the Application
We’ll run the app in emulator for now
16. Let’s Go Deep… (Contd.)
1. Create AVD (Android Virtual Device)
Use Android SDK & AVD Manager to create AVD
17. Let’s Go Deep… (Contd.)
2. Create Run Configuration
• Create a Run
Configuration
• Browse and select
the project to run
18. Let’s Go Deep… (Contd.)
3. Select AVD & Run
Click Run to start AVD/emulator
19. Let’s Go Deep… (Contd.)
Result in Emulator
Now its time to analyze how it works
20. Project Structure…
Created Project has the following structure
Project Structure
-Source (src)
-Generated Class (gen)
-Android 1.6 library
-Assets (assets)
-Resource(res)
-drawable-hdpi
-drawable-ldpi
-drawable-mdpi
-layout
-values
-AndroidMenifest.xml
-default.properties
21. Project Structure (Contd.)
-Source (src)
We have used only one class here which is an Activity named HalloActivity. We’ll
describe about Activity in detail with lifecycle shortly. For now we can consider
Activity as Android analogue for the window or dialog in a desktop application. It
can load view from xml layout (here main.xml under res/layout folder)
In the HelloActivity class the view
of the Activity is set from main.xml
given below
23. Project Structure (Contd.)
-res/drawable
• From Android 1.6 to support different screen sizes and screen densities graphic files
are kept in 3 different folders drawable-hdpi, drawable-ldpi and drawable-mdpi
• In our current project, they contain only default icon file with different dimensions
to support devices with different screen resolution.
-assets
Holds other static files you wish packaged with the application for deployment
onto the device. In this project, we have none
-gen/R.java -values/strings.xml
25. Hmm.. No public static void main() ???
What is the Entry Point of an Android App?
Instead of main(), Android apps have the 4 essential components which can
instantiate and run as needed:
1. Activities
2. Services
3. Broadcast Receivers
4. Content Providers
Whenever there's a request that should be handled by a particular
component, Android makes sure that
•the application process of the component is running,
•starting it if necessary, and
•that an appropriate instance of the component is available,
•creating the instance if necessary.
But how a request is made? What is the missing link?