Android Training Session - 1 Presented By: A.T.M. Hassan Uzzaman
Agendas • Introduction to Android • Application Structure • Layouts & Drawable Resources • Activities and Activity lifecycle • First sample Application • Launching emulator
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
Brief History – Android 2009  SDK 1.5 (Cupcake)  New soft keyboard with “autocomplete” feature  SDK 1.6 (Donut)  Support Wide VGA  SDK 2.0/2.0.1/2.1 (Eclair)  Revamped UI, browser 2010  SDK 2.2 (Froyo)  Flash support, tethering  SDK 2.3 (Gingerbread)  UI update, system-wide copy-paste
5 2011 – SDK 3.0/3.1/3.2 (Honeycomb) for tablets only New UI for tablets, support multi-core processors – SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich) Changes to the UI, Voice input, NFC 2012  SDK 4.1/4.1.1/4.2(Jelly Bean)  Performance optimization, refined UI Honeycomb Android 3.0-3.2 Ice cream Sandwich Android 4.0+ Jelly Bean 4.1+
6 API Level Platform Version API Level Version Name Android 4.2 17 Jelly bean Android 4.1, 4.1.1 16 Jelly bean Android 4.0.3, 4.0.4 15 Ice cream sandwich Android 4.0, 4.0.1, 4.0.2 14 Ice cream sandwich Android 3.2 13 Honey Comb Android 3.1.x 12 Honey Comb Android 3.0.x 11 Honey Comb Android 2.3.4 Android 2.3.3 10 Gingerbread
7 API Level Platform Version API Level Version Name Android 2.3.2 Android 2.3.1 Android 2.3 9 Gingerbread Android 2.2.x 8 Froyo Android 2.1.x 7 Eclair Android 2.0.1 6 Eclair Android 2.0 5 Eclair Android 1.6 4 Donut Android 1.5 3 Cupcake
Levels
Activity BackStack • Main activity calls activity2 Activity 2Push Operation( Last in) Activity 2 is visible on screen Main activity goes in background backstack main
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)
Java Source Code Java Byte Code JVM Java Byte Code Dalvik Byte Code Java Compiler Dex Compiler Dalvik Executable DVM
Differences between DVM and JVM Machine Property DVM JVM Architecture base Register Stack No of operations fewer more File format .dex .class
JVM - Stack Based POP 20 POP 7 ADD 20, 7, result PUSH result
DVM - Register Based Add R3,R1,R2
15 Android Java Consists of Android Java = Java SE - AWT/Swing + Android API
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
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.
Activity Lifecycle
Configuring Android Development Environment
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.
Adding Platforms and Packages Figure . The Android SDK Manager shows the SDK packages that are available, already installed, or for which an update is available.
Sample Application
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.
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.
 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
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
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.
• 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 :
References www.developer.android.com www.developer.android.com/sdk/index.html
Questions ?
Thank You.

Android session-1-sajib

  • 1.
    Android Training Session -1 Presented By: A.T.M. Hassan Uzzaman
  • 2.
    Agendas • Introduction toAndroid • Application Structure • Layouts & Drawable Resources • Activities and Activity lifecycle • First sample Application • Launching emulator
  • 3.
    Introduction  A Linuxbased 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
  • 4.
    Brief History –Android 2009  SDK 1.5 (Cupcake)  New soft keyboard with “autocomplete” feature  SDK 1.6 (Donut)  Support Wide VGA  SDK 2.0/2.0.1/2.1 (Eclair)  Revamped UI, browser 2010  SDK 2.2 (Froyo)  Flash support, tethering  SDK 2.3 (Gingerbread)  UI update, system-wide copy-paste
  • 5.
    5 2011 – SDK 3.0/3.1/3.2(Honeycomb) for tablets only New UI for tablets, support multi-core processors – SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich) Changes to the UI, Voice input, NFC 2012  SDK 4.1/4.1.1/4.2(Jelly Bean)  Performance optimization, refined UI Honeycomb Android 3.0-3.2 Ice cream Sandwich Android 4.0+ Jelly Bean 4.1+
  • 6.
    6 API Level Platform VersionAPI Level Version Name Android 4.2 17 Jelly bean Android 4.1, 4.1.1 16 Jelly bean Android 4.0.3, 4.0.4 15 Ice cream sandwich Android 4.0, 4.0.1, 4.0.2 14 Ice cream sandwich Android 3.2 13 Honey Comb Android 3.1.x 12 Honey Comb Android 3.0.x 11 Honey Comb Android 2.3.4 Android 2.3.3 10 Gingerbread
  • 7.
    7 API Level Platform VersionAPI Level Version Name Android 2.3.2 Android 2.3.1 Android 2.3 9 Gingerbread Android 2.2.x 8 Froyo Android 2.1.x 7 Eclair Android 2.0.1 6 Eclair Android 2.0 5 Eclair Android 1.6 4 Donut Android 1.5 3 Cupcake
  • 8.
  • 9.
    Activity BackStack • Mainactivity calls activity2 Activity 2Push Operation( Last in) Activity 2 is visible on screen Main activity goes in background backstack main
  • 10.
    Activity BackStack • Fromactivity2, user presses back button Activity 2 Main activity is visible on screen and activity 2 is destroyed backstack main Pop operation (First Out)
  • 11.
    Java Source Code JavaByte Code JVM Java Byte Code Dalvik Byte Code Java Compiler Dex Compiler Dalvik Executable DVM
  • 12.
    Differences between DVMand JVM Machine Property DVM JVM Architecture base Register Stack No of operations fewer more File format .dex .class
  • 13.
    JVM - StackBased POP 20 POP 7 ADD 20, 7, result PUSH result
  • 14.
    DVM - RegisterBased Add R3,R1,R2
  • 15.
    15 Android Java Consistsof Android Java = Java SE - AWT/Swing + Android API
  • 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.
  • 18.
  • 19.
  • 20.
    Requirements JDK 6 (JavaDevelopment 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.
  • 21.
    Adding Platforms and Packages Figure . TheAndroid SDK Manager shows the SDK packages that are available, already installed, or for which an update is available.
  • 22.
  • 23.
    Understanding Android ProjectStructure • 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 • Everyapplication 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 fileR.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 finalclass 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 allAndroid 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 offersone 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 :
  • 29.
  • 30.
  • 31.