2. Agendas
• Introduction to Android
• Application Structure
• Layouts & Drawable Resources
• Activities and Activity lifecycle
• First sample Application
• Launching emulator
3. Introduction
A Linux based Operating System designed primarily for touch
screen mobile devices
Initially developed by Android Inc
and later purchased by Google in 2005
The first Android powered device was sold in Oct 2008
Android is Open Source and Google releases code under Apache2
license
Google Play Store
9. Activity BackStack
• Main activity calls activity2
Activity 2Push
Operation(
Last in)
Activity 2 is
visible on screen
Main activity
goes in
background
backstack
main
10. Activity BackStack
• From activity2, user presses back button
Activity 2
Main activity is
visible on screen
and activity 2 is
destroyed
backstack
main
Pop
operation
(First Out)
16. APK file format:
Application package file
Zip package format based on JAR file format
Apk holds
Code(.dex file)
Resources
Assets
Certificates
Manifest file
Once .apk is installed on a device:
Own security sandbox
A unique Linux UserID
Own Virtual Machine
Own Linux process
Application Fundamentals
17. Android Application Components
• Activities: An Activity is an application component that
provides a screen with which users can interact in order to do
something.
• Services: A Service is an application component that can
perform long-running operations in the background and does
not provide a user interface.
• Content Providers: A content provider manages a shared
set of application data.
• Broadcast Receivers: A broadcast receiver is a
component that responds to system-wide broadcast
announcements.
20. Requirements
JDK 6 (Java Development Kit ) and above
– (JRE alone is not sufficient)
– http://www.oracle.com/technetwork/java/javase/downloads/index.html
Eclipse IDE
– Eclipse + ADT plugin
– Android SDK Tools
– Android Platform-tools
– The latest Android platform
– The latest Android system image for the emulator
• http://developer.android.com/sdk/index.html
Other development environments
• Apache Ant 1.8 or later ( http://ant.apache.org/ )
• Not compatible with Gnu Compiler for Java (gcj)
Note: Some Linux distributions may
Include JDK 1.4 or Gnu Compiler for Java,
both of which are not supported
for Android development.
23. Understanding Android Project Structure
• AndroidManifest.xml
– The manifest file describes the fundamental characteristics of the app and
defines each of its components.
• src/
– Directory for your app's main source files. By default, it includes an Activity
class that runs when your app is launched using the app icon.
• res/
– Contains several sub-directories for app resources. Here are just a few:
– drawable-hdpi/
• Directory for drawable objects (such as bitmaps) that are designed for high-
density (hdpi) screens. Other drawable directories contain assets designed for
other screen densities.
– layout/
• Directory for files that define your
app's user interface.
– values/
• Directory for other various XML files that
contain a collection of resources,
such as string and color definitions.
24. AndroidManifest.xml file
• Every application must have an AndroidManifest.xml file.
• The manifest presents essential information about the
application to the Android system.
• The manifest does the following
– It names the Java package for the application. The package name
serves as a unique identifier for the application.
– It describes the components of the application: The activities,
services, broadcast receivers, and content providers.
– It determines which processes will host application components.
– It also declares the permissions that others are required to have,
in order to interact with the components of the application
– It declares the minimum level of the Android API, that the
application requires.
25. The file R.java is an auto-generated file, that is added to your
application, by the Android plug-in.
This file contains pointers into the drawable, layout, and values
directories.
You should never modify this file directly. You will be only
referencing R.java in most of your applications.
R.Java
26. package testPackage.HelloWorldText;
public final class R {
public static final class attr {}
public static final class drawable{
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
}
}
R.Java: Content
27. Resources
Almost all Android applications will have some sort of
resources in them; at a minimum they often have the
user interface layouts in the form of XML files.
28. • Android offers one more directory
where you can keep files which also will
be included is package.
This directory called /assets.
•The difference between /res and
/assets is that, Android does not
generate IDs of assets content.
•You need to specify relative path and
name, for files inside /assets.
InputStream is = getAssets().open("text.txt");
Code to Access Assets :