1 introduction of android

Post on 10-May-2015

208 views 0 download

Tags:

description

ANDROID INTRODUCTION

Transcript of 1 introduction of android

Introduction

What is a Software? A collection of computer programs and related data that provide the

instructions for telling a computer what to do and how to do it making imaginary into reality.

patel.nauka@codefruxtechnology.com

SMART PHONES

Smartphone= PDA + Cell phone

Smartphone Features Keyboard Internet Access Ability to download app & run independently Personal Information Management Wi-Fi Support 3rd party app And many more…

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

Software Stack Set of programs working together to produce a result.

It consists of

1. Operating System

2. Middleware

3. Key Applications

patel.nauka@codefruxtechnology.com

Different OS available

Feature iOS Android Windows Mobile

BlackBerry OS

Symbian Bada

Company Apple

Open Handset Alliance(Google)

Microsoft RIMSymbian Foundation

Samsung

Current Version

4.3.3

4.0(Phones) 4.0(Tablets)

6.5.3 6.0.0 9.5 1.2

Programmed in

C, C++, Objective-C

C, C++, Java

C++ Java C++ C++

patel.nauka@codefruxtechnology.com

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

patel.nauka@codefruxtechnology.com

WHYANDROID? A simple and powerful SDK

No licensing, distribution, or development fees Development over many platform Linux, Mac OS, windows

Excellent documentation

For us: Development using Java . Job opportunity

patel.nauka@codefruxtechnology.com

The Birth of Android Android Inc. founded in 2003

The key players at Android Inc. included Andy Rubin -co-founder of Danger .Inc

Rich Miner-co-founder of Wildfire Communications, Inc. Nick Sears - once VP at T-Mobile Chris White - headed design and interface development at Web TV

Android Inc. acquired by Google

Google acquired the startup company Android Inc. in 2005 to start the development of the Android Platform.

Introducing Android

A first joined project of the Open Handset Alliance (OHA) First open, complete and free platform Software stack open-sourced.

A generous development environment A SDK is available to build ,compile, test and debug user applications. Applications are developed using Java programming language No difference between the built-in applications and the user ones

What is Open Handset Alliance? •“… Open Handset Alliance™, a group of 85 technology and mobile

firms have come together to develop open standards for mobile devices.

Google, HTC, Sony, Dell, Intel, Motorola, Qualcomm, Samsung, LG, T-

Mobile.....etc.

Announcement of the formation of the OHA was on 5 November 2007.

First Mobile An early look of the SDK was released to developers on 12 November

2007.

The first commercially available Android phone was the T-Mobile G1 (HTC Dream). In August 2008,and became available on 22 October.

Phones

Motorola Droid (X)

Huawei-IDEOS-X5 Samsung Galaxy

Nexus-S

sony-ericssonexperia-x10

HTC-Wildfire

patel.nauka@codefruxtechnology.com

Tablets

Velocity Micro Cruz Gome FlyTouch Acer beTouch

Dawa D7

Cisco Android Tablet

Samsung Galaxy Tabpatel.nauka@codefruxtechnology.com

Features Application framework enabling reuse and replacement of components Dalvik virtual machine optimized for mobile devices Integrated browser based on the open source WebKit engine Optimized graphics powered by a custom 2D graphics library; 3D graphics based

on the OpenGL ES 1.0 specification (hardware acceleration optional) SQLite for structured data storage Media support for common audio, video, and still image formats (MPEG4, H.264,

MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) Bluetooth, EDGE, 3G, and WiFi (hardware dependent) Camera, GPS, compass, and accelerometer (hardware dependent) Rich development environment including a device emulator, tools for debugging,

memory and performance profiling, and a plugin for the Eclipse IDE

patel.nauka@codefruxtechnology.com

What you need: Operating System:

Windows XP: (32-bit), Vista (32/64-bit), or Windows 7 (32/ 64-bit) Mac OS X : 10.5.8 or later (x86 only)

Linux : Ubuntu Linux, version 8.04 or later is required.

JDK >= 5

Android SDK

Eclipse + Android Development Tools plug-in

patel.nauka@codefruxtechnology.com

Installation - JDKInstallation - JDK

patel.nauka@codefruxtechnology.com

Installation - Android SDKInstallation - Android SDK

Download the Android SDK from:

http://developer.android.com/sdk/

Unpack the compressed file into a location you prefer.

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

To create an AVD in Eclipse:

1. Select Window > Android SDK and AVD Manager.The Android SDK and AVD Manager displays.

2. Make sure the entry for Virtual Devices is selected and click New.

The Create new AVD window displays.

3. Enter a Name for the AVD.

4. Select Android APIs (API level 8) as the Target.5. Click Create AVD.6. Close the Android SDK and AVD Manager.

patel.nauka@codefruxtechnology.com

To create the project in Eclipse:

1. Select File > New > Project.2. Select Android Project in the Android folder and click Next.3. Enter Project Name.4. Select APIs (Platform 2.2) as the Build Target.5. Enter the Application name.6. Enter com.android as the Package name.7. Enter the Activity name.8. Click Finish.

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

Structure of a typical Android Application

patel.nauka@codefruxtechnology.com

Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory.

The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application's code.

Android Manifest xml File

patel.nauka@codefruxtechnology.com

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="matos.currencyconvereter" android:versionCode="1" android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".Currency1" android:label="@string/app_name">

<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity> </application>

<uses-sdkandroid:minSdkVersion="3" /> </manifest>

patel.nauka@codefruxtechnology.com

Architecture

patel.nauka@codefruxtechnology.com

Android S/W Stack – Linux Kernel

This is the kernel on which android is based . This layer contains all the low level device drivers for the various hardware components of an android device.

Providing an abstraction layer between the H/W and the rest of the S/W stack letting the upper levels remain

unchanged despite changes in the underlying hardware.

patel.nauka@codefruxtechnology.com

Android S/W Stack - Runtime

Core Libraries At the same layer as libraries set of core libraries that enable developers to write android Apps

using java Prog. Language.

Providing most of the functionality available in the core libraries of the Java language

APIs Data Structures Utilities File Access Network Access Graphics Etc

patel.nauka@codefruxtechnology.com

Android S/W Stack – Runtime (Cont) Dalvik Virtual Machine

Providing environment on which every Android application runs

Each Android application runs in its own process, with its own instance of the Dalvik VM.

Dalvik has been written so that a device can run multiple VMs efficiently.

Register-based virtual machine

patel.nauka@codefruxtechnology.com

Android S/W Stack – Runtime (Cont) Dalvik Virtual Machine (Cont)

Executing the Dalvik Executable (.dex) format .dex format is optimized for minimal memory footprint. Compilation

Relying on the Linux Kernel for: Threading Low-level memory management

patel.nauka@codefruxtechnology.com

Android S/W Stack – App Framework

Enabling and simplifying the reuse of components Developers have full access to the same framework APIs

used by the core applications. Users are allowed to replace components.

patel.nauka@codefruxtechnology.com

Android S/W Stack – App Framework Features

Feature Role

View System

Used to build an application, including lists, grids, textboxes, buttons, and embedded web browser

Content Provider

Enabling applications to access data from other applications or to share their own data

Resource Manager

Providing access to non-code resources (localized string, graphics, and layout files)

Notification Manager

Enabling all applications to display customer alerts in the status bar

Activity Manager

Managing the lifecycle of applications and providing a common navigation backstack

patel.nauka@codefruxtechnology.com

Android S/W Stack - Application

Android provides a set of core applications: Email Client SMS Program Calendar Maps Browser Contacts Etc

All applications are written using the Java language.

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

Activity lifecycle An activity has essentially three states: It is active or running when it is in the foreground of

the screen (at the top of the activity stack for the current task). This is the activity that is the focus for the user's actions.

patel.nauka@codefruxtechnology.com

As an activity transitions from state to state, it is notified of the change by calls to the following protected methods:

void onCreate(Bundle savedInstanceState) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy()

patel.nauka@codefruxtechnology.com

onCreate() : called when the activity is first created

onStart() :called when activity becomes visible to user

onResume() : called when activity start interacting with user.

onPause() : called when current activity is being paused and previous activity is being resumed.

onStop() : called when activity is longer visible to user.

patel.nauka@codefruxtechnology.com

onDestroy(): called before activity is destroyed by the system.

onRestart() : called when activity has been stopped and restarting again.

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

Layouts1. LinearLayout2. RelativeLayout3. TableLayout4. TabLayout5. FrameLayout6. GridLayout7. ListView

patel.nauka@codefruxtechnology.com

Layouts: Frame Layout: all child views are pinned to the top left

corner of the screen

Linear Layout: each child view is added in a straight line (vertically or horizontally)

Table Layout: add views using a grid of rows and columns

Relative Layout : add views relative to the position of other views or to its parent.

patel.nauka@codefruxtechnology.com

Absolute Layout : for each view you add, you specify the exact screen coordinate to display on the screen

Tab Layout : add different tab relative to each other

patel.nauka@codefruxtechnology.com

Views TextView Button EditText Radio button CheckBox Spinner WebView ImageView GalleryView SurfaceView

patel.nauka@codefruxtechnology.com

Intent

Message passing between two or more then two components of android

Activity interact each other with the help of intent in android

Basically two type of intent available in android

Implicit Intent Explicit Intent

patel.nauka@codefruxtechnology.com

Implicit Intent: Intent which is sent from one activity

to in built android activity

For ex1. Dialer2. Contacts3. Browser

patel.nauka@codefruxtechnology.com

patel.nauka@codefruxtechnology.com

Dialer

patel.nauka@codefruxtechnology.com

Calling

patel.nauka@codefruxtechnology.com

Browser

patel.nauka@codefruxtechnology.com

Contacts

Nauka Rao

N

patel.nauka@codefruxtechnology.com

Log

patel.nauka@codefruxtechnology.com

Camera

patel.nauka@codefruxtechnology.com

Pick

Nauka Rao

ankit@codefruxtechnology.com

Dial: Intent i = new Intent(); i.setAction(android.content.Intent.ACTION_DIAL); i.setData(Uri.parse("tel:2121")); startActivity(i);

Call: Intent i = new Intent(); i.setAction(android.content.Intent.ACTION_CALL); i.setData(Uri.parse("tel:2121")); startActivity(i);

ankit@codefruxtechnology.com

Browser: Intent i = new Intent(); i.setAction(android.content.Intent.ACTION_VIEW); i.setData(Uri.parse("http://www.google.com")); startActivity(i);

Contacts: Intent i = new Intent(); i.setAction(android.content.Intent.ACTION_VIEW); i.setData(Uri.parse("content://contacts/people/")); startActivity(i);

ankit@codefruxtechnology.com

Call_Log: Intent i = new Intent(); i.setAction(Intent.ACTION_VIEW); i.setData(Uri.parse("content://call_log/calls/1")); startActivity(i);

Media: Intent i = new Intent();

i.setAction(android.content.Intent.ACTION_VIEW); i.setData(Uri.parse("content://media/external/images/media/1")); startActivity(i);

ankit@codefruxtechnology.com

Camera: Intent i = new Intent(); i.setAction(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(i);

Pick :Intent i = new Intent();i.setAction(android.content.Intent.ACTION_PICK);i.setData(Uri.parse("content://contacts/people/"));startActivity(i);

Explicit Intent: intent which is send to one activity to

another own activity

Second Activity must be registered in manifest.xml file

Intent i=new Intent(First.this,Second.class);startActivity(i);

ankit@codefruxtechnology.com

patel.nauka@codefruxtechnology.com