2. 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
4.
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
6. 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
8. What is Android?
Android is a software stack for
mobile devices that includes an
operating system, middleware
and key applications.
patel.nauka@codefruxtechnology.com
9. 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
10. 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.
11. 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
12. 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, TMobile.....etc.
Announcement of the formation of the OHA was on 5 November 2007.
13. 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.
16. 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
17. 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
19. Installation - 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
21. To create an AVD in Eclipse:
1.
Select Window > Android SDK and AVD Manager.
The Android SDK and AVD Manager displays.
1.
Make sure the entry for Virtual Devices is selected and click
New.
The Create new AVD window displays.
1.
Enter a Name for the AVD.
2.
Select Android APIs (API level 8) as the Target.
Click Create AVD.
Close the Android SDK and AVD Manager.
3.
4.
patel.nauka@codefruxtechnology.com
22. To create the project in Eclipse:
1.
2.
3.
4.
5.
6.
7.
8.
Select File > New > Project.
Select Android Project in the Android folder and click Next.
Enter Project Name.
Select APIs (Platform 2.2) as the Build Target.
Enter the Application name.
Enter com.android as the Package name.
Enter the Activity name.
Click Finish.
patel.nauka@codefruxtechnology.com
24. Structure of a typical Android Application
patel.nauka@codefruxtechnology.com
25. Android Manifest xml File
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.
patel.nauka@codefruxtechnology.com
28. 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
29. 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
30. 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
31. 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
32. 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
33. Android S/W Stack – App Framework
Features
Feature
Role
View
System
Used to build an application, including lists, grids, text
boxes, 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
34. 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
36. 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
37.
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
38.
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
39.
onDestroy(): called before activity is destroyed by the system.
onRestart() : called when activity has been stopped and
restarting again.
patel.nauka@codefruxtechnology.com
42. 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
43.
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
46.
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
47.
Implicit Intent:
Intent which is sent from one
activity to in built android activity
For ex
1. Dialer
2. Contacts
3. Browser
patel.nauka@codefruxtechnology.com
55.
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
56.
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
57.
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
58.
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);
ankit@codefruxtechnology.com
59. 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