Post on 10-May-2015
description
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