Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
Mac OS X 10.5.8 or later (x86 only)
Linux (tested on Ubuntu Linux, Lucid Lynx)
Supported Development Environment (Eclipse IDE based)
Eclipse 3.4 (Ganymede) or greater/Eclipse Classic (versions 3.5.1 and higher)
JDK 1.5 or 1.6
To set up the development environment, we need:
Java Development Kit (JDK 1.5+, 1.6 is preferable)
Setting up Development Environment(Contd.)
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
Setting up Development Environment (Contd.) Download Link: http://eclipse.org/downloads/ Download the highlighted version of Eclipse IDE
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)
Android SDK Setup (1)
Setting up Development Environment (Contd.) 1. Install available packages to get all SDK platform versions
Android SDK Setup (2)
Setting up Development Environment (Contd.) 2. Installation progress
Android SDK Setup (3)
Setting up Development Environment (Contd.)
3. ADT Plugin for Eclipse
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
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.
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!
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.
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
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
Let’s Go Deep… (Contd.)
To run the app in emulator, we have to do the following steps:
Create AVD (Android Virtual Device)
Create Run Configuration
Run the Application
To run the app in device, we have to do the following steps:
Install device driver
Connect device through USB
Create Run Configuration
Run the Application
We’ll run the app in emulator for now
Let’s Go Deep… (Contd.) 1. Create AVD (Android Virtual Device) Use Android SDK & AVD Manager to create AVD
Let’s Go Deep… (Contd.) 2. Create Run Configuration
Create a Run Configuration
Browse and select the project to run
Let’s Go Deep… (Contd.) 3. Select AVD & Run Click Run to start AVD/emulator
Let’s Go Deep… (Contd.) Result in Emulator Now its time to analyze how it works
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
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
Project Structure (Contd.) -res/layout/main.xml
UI Layout can be defined from source code using View or by layout xmls.
The layout xml can be generated by visual tool given by ADT
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
Project Structure (Contd.) -AndroidMenifest.xml XML file describing the application being built and what components – activities, services, etc. – are being supplied by that application
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 :
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?