introduction to android development - presentation report
TRANSCRIPT
I
SEMINAR REPORT
ON
ANDROID DEVELOPMENT
By
ATUL PANJWANI
(120120107013)
DEPARTMENT OF COMPUTER ENGINEERING
GANDHINAGAR INSTITUTE OF TECHNOLOGY
2014/2015
II
SEMINAR REPORT
ON
ANDROID DEVELOPMENT
By
ATUL PANJWANI
Guided by
Prof. MansiVithalani
(C.E. / I.T. Dept.)
DEPARTMENT OF COMPUTER ENGINEERING
GANDHINAGAR INSTITUTE OF TECHNOLOGY
2014/2015
III
GANDHINAGAR INSTITUTE OF TECHNOLOGY
DEPARTMENT OF COMPUTER ENGINEERING
CERTIFICATE
This is to certify that the project entitled ―ANDROID DEVELOPMENT” has
been carried out by ATUL PANJWANI under my guidance in partial
fulfilment ofthe degree of Bachelor of Engineering in Computer Engineering
of Gandhinagar Institute of Technology during the academic
year 2014. To the best of my knowledge and belief this work has been
submitted elsewhere for the award of Bachelor in Engineering degree.
Guided By Head of Department
Prof. Mansi Vithalani Prof. Kinjal Adhvaryu
(CE Department)
IV
ACKNOWLEDGEMENT
As I write this acknowledgement, I must clarify that this is not just a formal
acknowledgement, but also a sincere note of thanks and regard from my side. I
feel a deep sense of gratitude and affection for those who were associated with
this seminar. Without their co-operation and guidance this seminar could not
have been conducted properly. I am also indebted to my friends and family for
their constant support and their priceless reviews which helped me to take this
seminar to current level. I am also thankful to our Head of the Department
Prof. Kinjal Adhvaryu, for her indispensable suggestions and kind help
throughout the project.
ATUL PANJWANI
V
PAGE INDEX
Chapter Page
Abstract 1
1. Introduction 2
1.1 What is Android? 2
1.2 Why Android? 2
1.3 History 3
1.4 Architecture 5
1.5 Development Process 7
2. Training 8
2.1 Getting Started 8
2.2 Building Apps 12
2.3 Best Practices 15
3. API Guides 18
3.1 App Components 19
3.2 App Resources 19
3.3 User Interface 20
3.4 Animation & Graphics 21
3.5 Computation 21
3.6 Media 22
3.7 Connectivity 22
3.8 Data Storage 23
4. References ̶ Packages & Classes 24
VI
5. Tools 26
5.1 Eclipse ADT 26
5.2 Android Studio ─ beta 28
5.3 Difference 29
6. Interesting about Android 30
6.1 Google Services 30
6.2 Android Nomenclature 32
6.3 Conclusion 33
Bibliography 34
1
ABSTRACT
Android is a mobile operating system (OS) based on the Linux kernel and
currently developed by Google.
Android is designed primarily for touchscreen mobile devices such
as smartphones and tablet computers, with specialized user interfaces for
televisions (Android TV), cars (Android Auto), and wrist watches (Android
Wear).
It also has been used in game consoles, digital cameras, regular PCs and
other electronics.
Android has 4 layers: applications, applications framework, libraries &
LINUX kernel.
Google sells the license to run android on third party hardwares.
In May 2012, the number of available apps in the Google Play Store
amounted to 500,000 and surpassed 1 million apps in July 2013.
The user interface of Android is based on the concept of direct
manipulation, using multi-touch gestures.
Interaction with the OS includes gestures such as swiping, tapping,
pinching, and reverse pinching.
The report gives you the clear idea for development of android along with its
history and some interesting features. The idea of learning, rather practising
android has become an important ―course‖ and key to success for a computer
engineer.
2
Chapter 1: Introduction
1.1 WHAT IS ANDROID?
Android is a mobile operating system (OS) based on the Linux kernel and
currently developed by Google. With a user interface based on direct
manipulation, Android is designed primarily for touchscreen mobile devices
such as smartphones and tablet computers, with specialized user interfaces for
televisions (Android TV), cars (Android Auto), and wrist watches (Android
Wear). The OS uses touch inputs that loosely correspond to real-world actions,
like swiping, tapping, pinching, and reverse pinching to manipulate on-screen
objects, and a virtual keyboard. Despite being primarily designed for
touchscreen input, it also has been used in game consoles, digital cameras,
regular PCs and other electronics.
Android's source code is released by Google under open source licenses,
although most Android devices ultimately ship with a combination of open
source and proprietary software. Initially developed by Android, Inc., which
Google backed financially and later bought in 2005, Android was unveiled in
2007 along with the founding of the Open Handset Alliance—a consortium
of hardware, software, and telecommunication companies devoted to
advancing open standards for mobile devices.
1.2 WHY ANDROID?
Android is popular with technology companies which require a ready-made,
low-cost and customizable operating system for high-tech devices. Android's
open nature has encouraged a large community of developers and enthusiasts
to use the open-source code as a foundation for community-driven projects,
3
which add new features for advanced users or bring Android to devices which
were officially released running other operating systems. The operating
system's success has made it a target for patent litigation as part of the so-
called "smartphone wars" between technology companies.
Following features add to the day-by-day increasing usage of Android
devices in the market:
Multitasking
Ease of access of notification
Access to millions of applications (through Google Play Store)
Widgets
Permission to install Custom ROM
Google Support
1.3 HISTORY
Android, Inc. was founded in Palo Alto, California in October 2003 by Andy
Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire
Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White
(headed design and interface development at WebTV) to develop, in Rubin's
words, "smarter mobile devices that are more aware of its owner's location and
preferences". The early intentions of the company were to develop an
advanced operating system for digital cameras, when it was realized that the
market for the devices was not large enough, and diverted their efforts to
producing a smartphone operating system to rival those
of Symbian and Windows Mobile. Despite the past accomplishments of the
founders and early employees, Android Inc. operated secretly, revealing only
that it was working on software for mobile phones.That same year, Rubin ran
4
out of money. Steve Perlman, a close friend of Rubin, brought him $10,000 in
cash in an envelope and refused a stake in the company.
Google acquired Android Inc. on August 17, 2005; key employees of
Android Inc., including Rubin, Miner, and White, stayed at the company after
the acquisition. Not much was known about Android Inc. at the time, but many
assumed that Google was planning to enter the mobile phone market with this
move. At Google, the team led by Rubin developed a mobile device platform
powered by the Linux kernel. Google marketed the platform to handset makers
and carriers on the promise of providing a flexible, upgradable system. Google
had lined up a series of hardware component and software partners and
signalled to carriers that it was open to various degrees of cooperation on their
part.
On November 5, 2007, the Open Handset Alliance, a consortium of
technology companies including Google, device manufacturers such
as HTC, Sony and Samsung, wireless carriers such as Sprint Nextel and T-
Mobile, and chipset makers such as Qualcomm and Texas Instruments,
unveiled itself, with a goal to develop open standards for mobile devices. That
day, Android was unveiled as its first product, a mobile device platformbuilt
on the Linux kernel version 2.6.25. The first commercially available
smartphone running Android was the HTC Dream, released on October 22,
2008.
In 2010, Google launched its Nexus series of devices – a line of
smartphones and tablets running the Android operating system, and built by
manufacturing partners. HTC collaborated with Google to release the first
Nexus smartphone, the Nexus One. Google has since updated the series with
newer devices, such as the Nexus 5 phone (made by LG) and
the Nexus 7 tablet (made by Asus). Google releases the Nexus phones and
5
tablets to act as their flagship Android devices, demonstrating Android's latest
software and hardware features.
Since 2008, Android has seen numerous updates which have incrementally
improved the operating system, adding new features and fixing bugs in
previous releases. Each major release is named in alphabetical order after a
dessert or sugary treat; for example, version 1.5 Cupcake was followed by
1.6 Donut. The latest released version, 4.4.4 KitKat, appeared as a security-
only update; it was released on June 19, 2014, shortly after the release of
4.4.3. As of October 2014, newest version of the Android operating system,
Android 5.0 "Lollipop", is available only as a developer preview.
1.4 ARCHITECTURE
6
Android operating system is a stack of software components which is roughly
divided into five sections and four main layers as shown above in the
architecture diagram.
1.4.1 Linux kernel
At the bottom of the layers is Linux - Linux 2.6 with approximately 115
patches. This provides basic system functionality like process management,
memory management, device management like camera, keypad, display etc.
Also, the kernel handles all the things that Linux is really good at such as
networking and a vast array of device drivers, which take the pain out of
interfacing to peripheral hardware.
1.4.2 Libraries
On top of Linux kernel there is a set of libraries including open-source Web
browser engine WebKit, well known library libc, SQLite database which is a
useful repository for storage and sharing of application data, libraries to play
and record audio and video, SSL libraries responsible for Internet security etc.
1.4.3 Android Runtime
This is the third section of the architecture and available on the second layer
from the bottom. This section provides a key component called Dalvik Virtual
Machine which is a kind of Java Virtual Machine specially designed and
optimized for Android.
The Dalvik VM makes use of Linux core features like memory
management and multi-threading, which is intrinsic in the Java language. The
Dalvik VM enables every Android application to run in its own process, with
its own instance of the Dalvik virtual machine.
7
The Android runtime also provides a set of core libraries which enable
Android application developers to write Android applications using standard
Java programming language.
1.4.4 Application Framework
The Application Framework layer provides many higher-level services to
applications in the form of Java classes. Application developers are allowed to
make use of these services in their applications.
1.4.5 Applications
You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are
Contacts Books, Browser, Games etc.
1.5 DEVELOPMENT PROCESS
Android applications development process is mainly divided in following
categories:
Training
API Guides
References & Packages
Tools
Google Services
We will see the above stages in the succeeding chapters.
8
Chapter 2: Training
2.1 GETTING STARTED
Getting started, teaches you the bare essentials for Android app development.
If you're a new Android app developer, you should complete each of these
classes in order:
2.1.1 Building First App
This class teaches you how to build your first Android app. You’ll learn how
to create an Android project and run a debuggable version of the app. You'll
also learn some fundamentals of Android app design, including how to build a
simple user interface and handle user input.
Before you start this class, be sure you have your development
environment set up. You need to:
1. Download the Android SDK.
2. Install the ADT plugin for Eclipse (if you’ll use the Eclipse IDE).
3. Download the latest SDK tools and platforms using the SDK Manager.
2.1.1.1 Creating sample app using Eclipse
1. Click New in the toolbar.
2. In the window that appears, open the Android folder, select Android
Application Project, and click Next.
9
Figure 1. The New Android App Project wizard in Eclipse.
3. Fill in the form that appears:
o Application Name is the app name that appears to users. For this
project, use "My First App."
o Project Name is the name of your project directory and the name
visible in Eclipse.
o Package Name is the package namespace for your app (following
the same rules as packages in the Java programming language).
Your package name must be unique across all packages installed
on the Android system. For this reason, it's generally best if you
use a name that begins with the reverse domain name of your
organization or publisher entity. For this project, you can use
something like "com.example.myfirstapp." However, you cannot
publish your app on Google Play using the "com.example"
namespace.
10
o Minimum Required SDK is the lowest version of Android that
your app supports, indicated using the API level. To support as
many devices as possible, you should set this to the lowest
version available that allows your app to provide its core feature
set. If any feature of your app is possible only on newer versions
of Android and it's not critical to the app's core feature set, you
can enable the feature only when running on the versions that
support it (as discussed in Supporting Different Platform
Versions). Leave this set to the default value for this project.
o Target SDK indicates the highest version of Android (also using
the API level) with which you have tested with your application.
As new versions of Android become available, you should test your app on the
new version and update this value to match the latest API level in order to take
advantage of new platform features.
o Compile With is the platform version against which you will
compile your app. By default, this is set to the latest version of
Android available in your SDK. (It should be Android 4.1 or
greater; if you don't have such a version available, you must
install one using the SDK Manager). You can still build your app
to support older versions, but setting the build target to the latest
version allows you to enable new features and optimize your app
for a great user experience on the latest devices.
o Theme specifies the Android UI style to apply for your app. You
can leave this alone.
Click Next.
11
4. On the next screen to configure the project, leave the default selections
and click Next.
5. The next screen can help you create a launcher icon for your app.
You can customize an icon in several ways and the tool generates an icon for
all screen densities. Before you publish your app, you should be sure your icon
meets the specifications defined in the Iconographydesign guide.
Click Next.
6. Now you can select an activity template from which to begin building
your app.
For this project, select BlankActivity and click Next.
7. Leave all the details for the activity in their default state and
click Finish.
2.1.2 Adding Action Bar
The action bar is one of the most important design elements you can
implement for your app's activities. Although first introduced with API level
11, you can use the Support Library to include the action bar on devices
running Android 2.1 or higher.
2.1.3 Supporting Different Devices
How to build your app with alternative resources that provide an optimized
user experience on multiple device form factors using a single APK.
12
2.1.4 Building Dynamic UI
How to build a user interface for your app that is flexible enough to present
multiple UI components on large screens and a more constrained set of UI
components on smaller screens—essential for building a single APK for both
phones and tablets.
2.1.5 Saving Data
To save data on the device, whether it's temporary files, downloaded app
assets, user media, structured data, or something else.
2.1.6 Interacting With Other Apps
To build a user experience that leverages other apps available on the device to
perform advanced user tasks, such as capture a photo or view an address on a
map.
2.2 BUILDING APPS
2.2.1WithSharing Simple Data
To take your app interaction to the next level by sharing information with
other apps, receive information back, and provide a simple and scalable way to
perform Share actions with user content.
2.2.1.1 Sharing Files
To provide secure access to a file associated with your app using a content
URI and temporary access permissions.
2.2.1.2 Sharing Files with NFC
To transfer files between devices using the NFC Android Beam feature.
13
2.2.2BUILDING APPS WITH CONTENT MULTIMEDIA
2.2.2.1Managing Audio Playback
To respond to hardware audio key presses, request audio focus when playing
audio, and respond appropriately to changes in audio focus.
2.2.2.3Capturing Photos
To leverage existing camera apps on the user's device to capture photos or
control the camera hardware directly and build your own camera app.
2.2.2.4Printing Content
To print photos, HTML documents, and custom documents from your app.
2.2.3BUILDING APPS WITH CONNECTIVITY & CLOUD
2.2.3.1Connecting Devices Wirelessly
To find and connect to local devices using Network Service Discovery and
how to create peer-to-peer connections with Wi-Fi.
2.2.3.2Performing Network Operations
To create a network connection, monitor the connection for changes in
connectivity, and perform transactions with XML data.
2.2.3.3Transferring Data Without Draining the Battery
To minimize your app's impact on the battery when performing downloads and
other network transactions.
2.2.3.4Syncing to the Cloud
To sync and back up app and user data to remote web services in the cloud and
how to restore the data back to multiple devices.
14
2.2.3.5 Resolving Cloud Save Conflicts
To design a robust conflict resolution strategy for apps that save data to the
cloud.
2.2.3.6Transferring Data Using Sync Adapters
To transfer data between the cloud and the device using the Android sync
adapter framework
2.2.3.7Transmitting Network Data Using Volley
To perform fast, scalable UI operations over the network using Volley
2.2.4 BUILDING APPS WITH LOCATION INFO
These classes teach you how to add user personalization to your app. Some of
the ways you can do this is by identifying users, providing information that's
relevant to them, and providing information about the world around them.
2.2.4.1Accessing Contacts Data
To use Android's central address book, the Contacts Provider, to display
contacts and their details and modify contact information.
2.2.4.2Making Your App Location-Aware
To add location-aware features to your app by getting the user's current
location.
15
2.3 BEST PRACTICES
2.3.1 FOR INTERACTION
These classes teach you how to engage and retain your users by implementing
the best interaction patterns for Android. For instance, to help users quickly
discover content in your app, your app should match their expectations for user
interaction on Android. And to keep your users coming back, you should take
advantage of platform capabilities that reveal and open your content without
requiring users to go through the app launcher.
2.3.1.1Designing Effective Navigation
To plan your app's screen hierarchy and forms of navigation so users can
effectively and intuitively traverse your app content using various navigation
patterns.
2.3.1.2Implementing Effective Navigation
To implement various navigation patterns such as swipe views, a navigation
drawer, and up navigation.
2.3.1.3Notifying the User
To display messages called notifications outside of your application's UI.
2.3.1.4Adding Search Functionality
To properly add a search interface to your app and create a searchable
database.
16
2.3.1.5Making Your App Content Searchable by Google
To enable deep linking and indexing of your application content so that users
can open this content directly from their mobile search results.
2.3.2 FOR USER INTERFACE
These classes teach you how to build a user interface using Android layouts
for all types of devices. Android provides a flexible framework for UI design
that allows your app to display different layouts for different devices, create
custom UI widgets, and even control aspects of the system UI outside your
app's window.
2.3.2.1 Designing for Multiple Screens
To build a user interface that's flexible enough to fit perfectly on any screen
and how to create different interaction patterns that are optimized for different
screen sizes.
2.3.2.2 Creating Custom Views
To build custom UI widgets that are interactive and smooth.
2.3.2.3 Creating Backward-Compatible UIs
To use UI components and other APIs from the more recent versions of
Android while remaining compatible with older versions of the platform.
2.3.2.4 Implementing Accessibility
To make your app accessible to users with vision impairment or other physical
disabilities.
17
2.3.2.5 Managing the System UI
To hide and show status and navigation bars across different versions of
Android, while managing the display of other screen components.
18
Chapter 3: API Guides
In computer programming, application programming interface (API) is a set of
routines, protocols, and tools for building software applications. An API
expresses a software component in terms of its operations, inputs, outputs, and
underlying types. An API defines functionalities that are independent of their
respective implementations, which allows definitions and implementations to
vary without compromising each other. The API specifies how software
components should interact. An API is used when programminggraphical user
interface (GUI) components. A good API makes it easier to develop a program
by providing all the building blocks. A programmer then puts the blocks
together.
In addition to accessing databases or computer hardware, such as hard disk
drives or video cards, an API can ease the work of programming GUI
components. For example, an API can facilitate integration of new features
into existing applications (a so-called "plug-in API"). An API can also assist
otherwise distinct applications share data, which can help to integrate and
enhance the functionalities of the applications.
APIs often come in the form of a library that includes specifications
for routines, data structures, object classes, and variables. In other cases,
notably SOAP and REST services, an API is simply a specification of remote
calls exposed to the API consumers.
An API specification can take many forms, including an International
Standard, such as POSIX, vendor documentation, such as
the Microsoft Windows API, or the libraries of a programming language,
e.g., Standard Template Library in C++ or Java API. An API differs from
19
an application binary interface (ABI) in that an API is source code-based while
an ABI is a binary interface. For instance POSIX is an API, while the Linux
Standard Base is an ABI.
3.1 APP COMPONENTS
Android's application framework lets you create rich and innovative apps using
a set of reusable components. This section explains how you can build the
components that define the building blocks of your app and how to connect
them together using intents. These include:
Intents and Intent Filters
Activities
Services
Content Providers
App Widgets
Processes and Threads
3.2 APP RESOURCES
The following documents provide a complete guide to how you can organize
your application resources, specify alternative resources, access them in your
application, and more:
The following documents provide a complete guide to how you can
organize your application resources, specify alternative resources, access them
in your application, and more:
20
3.2.1 Providing Resources
What kinds of resources you can provide in your app, where to save them, and
how to create alternative resources for specific device configurations.
3.2.2 Accessing Resources
To use the resources you've provided, either by referencing them from your
application code or from other XML resources.
3.2.3 Handling Runtime Changes
To manage configuration changes that occur while your Activity is running.
3.2.4 Localization
A bottom-up guide to localizing your application using alternative resources.
While this is just one specific use of alternative resources, it is very important
in order to reach more users.
3.2.5 Resource Types
A reference of various resource types you can provide, describing their XML
elements, attributes, and syntax. For example, this reference shows you how to
create a resource for application menus, drawables, animations, and more.
3.3 USER INTERFACE
Your app's user interface is everything that the user can see and interact with.
Android provides a variety of pre-build UI components such as structured
layout objects and UI controls that allow you to build the graphical user
interface for your app. Android also provides other UI modules for special
interfaces such as dialogs, notifications, and menus. These include:
21
3.4 ANIMATION & GRAPHICS
Make your apps look and perform their best using Android's powerful graphics
features such as OpenGL, hardware acceleration, and built-in UI animations.
Property Animation
View Animation
Drawable Animation
Canvas and Drawables
OpenGL ES
Hardware Acceleration
3.5 COMPUTATION
RenderScript provides a platform-independent computation engine that
operates at the native level. Use it to accelerate your apps that require
extensive computational horsepower.
22
RenderScript
Advanced RenderScript
Runtime API Reference
3.6 MEDIA
Add video, audio, and photo capabilities to your app with Android's robust
APIs for playing and recording media.
Media Playback
Media Router
Media Route Provider
ExoPlayer
Supported Media Formats
Audio Capture
JetPlayer
Camera
3.7 CONNECTIVITY
Android provides rich APIs to let your app connect and interact with other
devices over Bluetooth, NFC, Wi-Fi P2P, USB, and SIP, in addition to
standard network connections.
Bluetooth
NFC
Wi-Fi P2P
USB
SIP
23
3.8 DATA STORAGE
Store application data in databases, files, or preferences, in internal or
removable storage. You can also add a data backup service to let users store
and recover application and system data.
Storage Options
Data Backup
App Install Location
24
Chapter 4: Packages & Classes
Below listed are some of the Packages used for android application
development. The programmers while app development, do not have to
remember a huge number of packages and the classes included in the
packages. So they use the reference from the official android development
website: http://developer.android.com/reference/packages.html
Some packages are listed hereby:
android
Contains resource classes used by applications
included in the platform and defines application
permissions for system features.
android.accessibilityservice
The classes in this package are used for development
of accessibility service that provide alternative or
augmented feedback to the user.
android.app.backup
Contains the backup and restore functionality
available to applications. If a user wipes the data on
their device or upgrades to a new Android-powered
device, all applications that have enabled backup can
restore the user's previous data when the application is
reinstalled.
android.appwidget
Contains the components necessary to create "app
widgets", which users can embed in other applications
(such as the home screen) to quickly access
application data and services without launching a new
activity.
For more information, see the App Widgets guide.
android.bluetooth
Provides classes that manage Bluetooth functionality,
such as scanning for devices, connecting with devices,
and managing data transfer between devices. The
Bluetooth API supports both "Classic Bluetooth" and
Bluetooth Low Energy.
android.database
Contains classes to explore data returned through a
content provider.
25
android.graphics
Provides low level graphics tools such as canvases,
color filters, points, and rectangles that let you handle
drawing to the screen directly.
android.graphics.drawable
Provides classes to manage a variety of visual
elements that are intended for display only, such as
bitmaps and gradients.
android.graphics.drawable.shapes Contains classes for drawing geometric shapes.
android.graphics.pdf Contains classes for manipulation of PDF content.
android.hardware
Provides support for hardware features, such as the
camera and other sensors.
android.hardware.camera2
The android.hardware.camera2 package provides an
interface to individual camera devices connected to an
Android device.
android.mtp
Provides APIs that let you interact directly with
connected cameras and other devices, using the PTP
(Picture Transfer Protocol) subset of the MTP (Media
Transfer Protocol) specification.
android.net
Classes that help with network access, beyond the
normal java.net.* APIs.
android.net.wifi
Provides classes to manage Wi-Fi functionality on the
device.
android.net.wifi.p2p
Provides classes to create peer-to-peer (P2P)
connections with Wi-Fi Direct.
android.security
Provides access to a few facilities of the Android
security subsystems.
26
Chapter 5: Tools
5.1 ECLIPSE
The Android SDK provides the API libraries and developer tools necessary to
build, test, and debug apps for Android.
Download the ADT Bundle to quickly start developing apps. It includes
the essential Android SDK components and a version of the Eclipse IDE with
built-in ADT (Android Developer Tools) to streamline your Android app
development.
With a single download, the Eclipse ADT bundle includes everything you
need to begin developing apps:
Eclipse + ADT plug-in
Android SDK Tools
Android Platform-tools
A version of the Android platform
A version of the Android system image for the emulator
Eclipse uses plug-ins to provide all the functionality within and on top of
the runtime system. Its runtime system is based on Equinox, an
implementation of the OSGi core framework specification.
In addition to allowing the Eclipse Platform to be extended using
other programming languages, such as C and Python, the plug-in framework
allows the Eclipse Platform to work with typesetting languages
like LaTeX and networking applications such as telnet and database
27
management systems. The plug-in architecture supports writing any desired
extension to the environment, such as for configuration management. Java
and CVS support is provided in the Eclipse SDK, with support for
other version control systemsprovided by third-party plug-ins.
With the exception of a small run-time kernel, everything in Eclipse is a
plug-in. This means that every plug-in developed integrates with Eclipse in
exactly the same way as other plug-ins; in this respect, all features are "created
equal". Eclipse provides plug-ins for a wide variety of features, some of which
are through third parties using both free and commercial models. Examples of
plug-ins include for UML, for Sequence and other UML diagrams, a plug-in
for DB Explorer, and many others.
The Eclipse SDK includes the Eclipse Java development tools (JDT),
offering an IDE with a built-in incremental Java compiler and a full model of
the Java source files. This allows for advanced refactoring techniques and code
analysis. The IDE also makes use of a workspace, in this case a set
of metadata over a flat filespace allowing external file modifications as long as
the corresponding workspace "resource" is refreshed afterwards.
Eclipse implements, uses the graphical control elements of the Java toolkit
called SWT, whereas most Java applications use the Java standard Abstract
Window Toolkit (AWT) orSwing. Eclipse's user interface also uses an
intermediate graphical user interface layer called JFace, which simplifies the
construction of applications based on SWT. Eclipse was made to run
on Wayland during a GSoC-Project in 2014.
In addition to this Eclipse supports development for Tomcat, GlassFish and
many other servers and is often capable of installing the required server (for
development) directly from the IDE. It supports remote debugging, allowing
28
the user to watch variables and step through the code of an application that is
running on the attached server.
5.2 ANDROID STUDIO – BETA
Android Studio is a new Android development environment based on IntelliJ
IDEA. It provides new features and improvements over Eclipse ADT and will
be the official Android IDE once it's ready. On top of the capabilities you
expect from IntelliJ, Android Studio offers:
Flexible Gradle-based build system.
Build variants and multiple APK generation.
Expanded template support for Google Services and various device types.
Rich layout editor with support for theme editing.
Lint tools to catch performance, usability, version compatibility, and other
problems.
ProGuard and app-signing capabilities.
Built-in support for Google Cloud Platform, making it easy to integrate
Google Cloud Messaging and App Engine.
29
5.3 ANDROID STUDIO vs. ECLIPSE ADT
FEATURE ECLIPSE ADT ANDROID
STUDIO
Build system Ant Gradle
Maven-based build dependencies No Yes
Build variants and multiple-APK
generation (great for Android Wear)
No Yes
Advanced Android code completion and
refactoring
No Yes
Graphical layout editor Yes Yes
APK signing and keystore management Yes Yes
NDK support Yes Coming soon
30
Chapter 6: Interesting about Android
6.1 GOOGLE SERVICES
The most significant factor which makes android successful software is
Google. Google offers a variety of services that help you build new revenue
streams, manage app distribution, track app usage, and enhance your app with
features such as maps, sign-in, and cloud messaging.
Although these Google services are not included in the Android platform,
they are supported by most Android-powered devices. When using these
services, you can distribute your app on Google Play to all devices running
Android 2.3 or higher, and some services support even more devices.
Google Maps
Include the power of Google Maps in your app with an embeddable map
view. You can customize the map with markers and overlays, control the user's
perspective, draw lines and shapes, and much more.
Google+
Allow users to sign in with their Google account, customize the user
experience with Google+ info, pull people into your app with interactive posts,
and add +1 buttons so users can recommend your content.
31
Google Cloud Platform
Build and host the backend for your Android app at Google-scale. With an
infrastructure that is managed automatically, you can focus on your app. Then,
scale to support millions of users.
Google Cloud Messaging
Immediately notify your users about timely events by delivering
lightweight messages from your web server. There are no quotas or charges to
use Google Cloud Messaging.
Google Cloud Save
Enable per-user data storage and sync in your apps with no backend
programming required.
Google Play In-App Billing
Build an app with a steady revenue stream that keeps users engaged by
offering new content or virtual goods directly in your app. All transactions are
handled by Google Play Store for a simple user experience.
Google Wallet Instant Buy
Provide fast and easy checkout in your app when selling physical goods
and services. Increase conversions by streamlining your purchase flow and
reducing the amount of information your customers need to enter.
32
Google Analytics
Measure your success and gain insights into how users engage with your
app content by integrating Google Analytics. You can track in-app purchases,
the number of active users, interaction patterns, and much more.
Google Mobile Ads
Display ads from Google Mobile Ads offer you an alternative revenue
opportunity that leverages multiple ad networks with targeted ads and several
display formats.
6.2 ANDROID NOMENCLATURE
Since April 2009, Android versions have been developed under
a confectionery-themed code name and released in alphabetical order; the
exceptions are versions 1.0 and 1.1 as they were not released under specific
code names.
Version Name Version # Release Year
Alpha 1.0 (Pre-commercial) 2007-2008
Beta 1.1 (Pre-commercial) 2007-2008
Cupcake 1.5 2009
Donut 1.6 2009
Éclair 2.0 – 2.1 2009-2010
Froyo 2.2 – 2.2.3 2010-2011
Gingerbread 2.3 – 2.3.7 2010-2011
33
Honeycomb 3.0 – 3.2.6 2011-2012
Ice-cream Sandwich 4.0 – 4.0.4 2011-2012
Jelly Bean 4.1 – 4.3.1 2013
KitKat 4.4 – 4.4.4 2013
Lollipop 5.0 2014
6.3 CONCLUSION
Due to advantages of Android like:
Multitasking, Ease of notification, Access to millions of Apps, Widgets,
Access to install custom ROM and the biggest factor ̶ Google support, it has
attracted the users all over the globe and has changed the concept
―CellPhones‖ to ―SmartPhones‖ and thus it has commercially acquired a huge
market which is still expanding. . .
34
BIBLIOGRAPHY
[1] developer.android.com
[2] en.wikipedia.org/wiki/Android_(operating_system)