(1) Android Wireless Application Development --- Download
(2) Android Application Development for Dummies --- Download
(3) Head First Android Development --- Download
(4) Learning Android --- Download
(5) Programming Android --- Download
Mainly Android Architecture have 4 key components:
Multitasking – Yups, Android phones can run many applications, it means you can browse, Facebook while listened to the song.
Ease of Notification – Any SMS, Email, or even the latest articles from an RSS Reader,
there will always be a notification on the Home Screen Android phone,
do not miss the LED indicator is blinking, so you will not miss a single
SMS, Email or even Misscall .
Easy access to thousands of applications via the Google Android Android App Market – When you love to install applications or games, through Google’s Android App Market, Agan can download applications for free. There are many thousands of applications and games that are ready for download on Android phones You.
Phone options are diverse –
Talk Android phone, it will feel ‘different’ than the IOS, if the IOS
is limited to the iPhone from Apple, then Android is available on mobile
phones from various manufacturers, from Sony Ericsson, Motorola, HTC to Samsung.
And each handset manufacturer also presents an Android phone in the
style of each, such as Motorola with its Motoblur, Sony Ericsson with
its Timescape. So You can freely choose the Android phone in accordance with the ‘brand’ favorite.
Can install a modified ROM –
not satisfied with the standard view of Android, do not worry there are
many custom ROM that can be used in your mobile phones Android .
Widget – absolutely right, with the widgets on the homescreen, You can easily access a variety of settings quickly and easily.
Google Maniac –
If you are a loyal user of Google services ranging from Gmail to Google
Reader Android phone has integrated with Google services, so you can
quickly check e-mail from Gmail.
- See more at: http://mobilecon.info/advantages-and-disadvantages-android-mobile-phone.html#sthash.DGvKKrUC.dpuf
Multitasking – Yups, Android phones can run many applications, it means you can browse, Facebook while listened to the song.
Ease of Notification – Any SMS, Email, or even the latest articles from an RSS Reader,
there will always be a notification on the Home Screen Android phone,
do not miss the LED indicator is blinking, so you will not miss a single
SMS, Email or even Misscall .
Easy access to thousands of applications via the Google Android Android App Market – When you love to install applications or games, through Google’s Android App Market, Agan can download applications for free. There are many thousands of applications and games that are ready for download on Android phones You.
Phone options are diverse –
Talk Android phone, it will feel ‘different’ than the IOS, if the IOS
is limited to the iPhone from Apple, then Android is available on mobile
phones from various manufacturers, from Sony Ericsson, Motorola, HTC to Samsung.
And each handset manufacturer also presents an Android phone in the
style of each, such as Motorola with its Motoblur, Sony Ericsson with
its Timescape. So You can freely choose the Android phone in accordance with the ‘brand’ favorite.
Can install a modified ROM –
not satisfied with the standard view of Android, do not worry there are
many custom ROM that can be used in your mobile phones Android .
Widget – absolutely right, with the widgets on the homescreen, You can easily access a variety of settings quickly and easily.
Google Maniac –
If you are a loyal user of Google services ranging from Gmail to Google
Reader Android phone has integrated with Google services, so you can
quickly check e-mail from Gmail.
- See more at: http://mobilecon.info/advantages-and-disadvantages-android-mobile-phone.html#sthash.DGvKKrUC.dpuf
In an explicit intent, we actually specify the activity that is required to respond to the intent. In other words, we explicitly designate the target component. This is typically used for application internal messages.
Activity – An activity is the equivalent of a Frame/Window in GUI toolkits. It is not a file or a file type it is just a class that can be extended in Android for loading UI elements on view.
Android applications are written using the Java programming language
Q. What is AsyncTask
Android provides many options for storage of persistent data. It provides the solution according to your need. The storage's which have been provided in Android are as follows:-
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
(2) Android Application Development for Dummies --- Download
(3) Head First Android Development --- Download
(4) Learning Android --- Download
(5) Programming Android --- Download
Q. What is android?
Android is a stack of software for mobile devices which has Operating
System, middleware and some key applications. The application executes
within its own process and its own instance of Dalvik Virtual
Machine. Many Virtual Machines run efficiently by a DVM device. DVM
executes Java language byte code which later transforms into .dex format
files.
Android gives you a world-class platform for creating apps and games for
Android users everywhere, as well as an open marketplace for
distributing to them instantly.
Q. What are the key components of Android Architecture?
Mainly Android Architecture have 4 key components:
- Linux Kernel
- Libraries
- Android Framework
- Android Applications
Q. What are the advantages of Android?
- Multitasking: With Android, you can quickly and seamlessly switch between apps and pick up whatever you were doing. Juggling multiple tasks at once on a mobile device has never been easier.
- It have simple and powerful SDK. Also allows multitasking.
- Licensing, Distribution or Development fee is not required.
- Easy to Import third party Java library.
- Supporting platforms are – Linux, Mac Os, Windows.
- Innovative products like the location-aware services, location of a nearby convenience store etc., are some of the additive facilities in Android.
- Components can be reused and replaced by the application framework.
- Optimized DVM for mobile devices.
- SQLite enables to store the data in a structured manner.
- Supports GSM telephone and Bluetooth, WiFi, 3G and EDGE technologies.
- The development is a combination of a device emulator, debugging tools, memory profiling and plug-in for Eclipse IDE.
- The customer will be benefited from wide range of mobile applications to choose, since the monopoly of wireless carriers like AT&T and Orange will be broken by Google Android.
- There's no other software quite like Android. Google engineered Android, and Google’s own apps run best on it. And with millions of apps, games, songs, and videos on Google Play, Android is great for fun, and for getting things done.
Multitasking – Yups, Android phones can run many applications, it means
you can browse, Facebook while listened to the song. - See more at:
http://mobilecon.info/advantages-and-disadvantages-android-mobile-phone.html#sthash.DGvKKrUC.dpuf
Q. What is the disadvantages of Android?
Given that
Android is an open-source platform, and the fact that different Android
operating systems have been released on different mobile devices,
there’s no clear cut policy to how applications can adapt with various
OS versions and upgrades. One app that runs on this particular version
of Android OS may or may not run on another version. Another
disadvantage is that since mobile devices such as phones and tabs come
in different sizes and forms, it poses a challenge for developers to
create apps that can adjust correctly to the right screen size and other
varying features and specs.
Given that
Android is an open-source platform, and the fact that different Android
operating systems have been released on different mobile devices,
there’s no clear cut policy to how applications can adapt with various
OS versions and upgrades. One app that runs on this particular version
of Android OS may or may not run on another version. Another
disadvantage is that since mobile devices such as phones and tabs come
in different sizes and forms, it poses a challenge for developers to
create apps that can adjust correctly to the right screen size and other
varying features and specs.
Q. What is activity?
An activity is a single, focused thing that the user can do. Almost all
activities interact with the user, so the Activity class takes care of
creating a window for you in which you can place your UI.
Q. What are the exceptions in Android?
- InflateException : This exception is thrown by an inflater on error conditions.
- Surface.OutOfResourceException: When a surface is not created or re-sized, this exception is thrown.
- SurfaceHolder.BadSurfaceTypeException: This exception is thrown from the lockCanvas() method, when invoked on a Surface whose is SURFACE_TYPE_PUSH_BUFFERS
- WindowManager.BadTokenException: This exception is thrown at the time of trying to add view an invalid WindowManager.LayoutParamstoken.
Q. What are the different methods of the Activity life cycle?
Here are Seven main methods:
- void onCreate()
- void onStart()
- void onRestart()
- void onResume()
- void onPause()
- void onStop()
- void onDestroy()
Q. Does Android support the Bluetooth serial port profile?
Yes.
Android supports 4 dialog boxes:
Q. What dialog boxes are supported in android?
Android supports 4 dialog boxes:
- AlertDialog: An alert dialog box supports 0 to 3 buttons and a list of Selectable elements, including check boxes and radio buttons. Among the other dialog boxes, the most suggested dialog box is the alert dialog box.
- ProgressDialog: This dialog box displays a progress wheel or a progress bar. It is an extension of AlertDialog and supports adding buttons.
- DatePickerDialog: This dialog box is used for selecting a date by the user.
- TimePickerDialog: This dialog box is used for selecting time by the user.
Q. What is the APK format?.
The APK file is compressed the AndroidManifest.xml file, application
code (.dex files), resource files, and other files. A project is
compiled into a single .apk file.
Q. What is .apk extension?
The extension for an Android package file, which typically contains all
of the files related to a single Android application. The file itself is
a compressed collection of an AndroidManifest.xml file, application
code (.dex files), resource files, and other files.A project is compiled
into a single .apk file.
Q. What is .dex extension?
Android programs are compiled into .dex (Dalvik Executable) files, which are
in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language.
in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language.
Q. Explain the Architecture of Android ?
Q. What is a service?
A Service is an application component representing either an
application's desire to perform a longer-running operation while not
interacting with the user or to supply functionality for other
applications to use. Each service class must have a corresponding declaration in its package's
AndroidManifest.xml
. Services can be started with Context.startService()and Context.bindService().
For example, a service might play background music as the user
attends to other matters, or it might fetch data over the network or
calculate something and provide the result to activities that need
it.Each service extends the Service base class.
Q. Describe a real time scenario where android can be used?
Lets take a
situation that you are in a country where no one understands the
language you speak and you can not read or write. However, you have
mobile phone with you.With a mobile phone with
android, the Google translator translates the data of one language into
another language by using XMPP to transmit data. You can type the
message in English and select the language which is understood by the
citizens of the country in order to reach the message to the citizens.
Q. What is intent?
An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch anActivity, broadcastIntent to send it to any interested BroadcastReceiver components, and startSerrvice to communicate with a background Service.
An Intent provides a facility for performing late run time binding
between the code in different applications. Its most significant use is
in the launching of activities, where it can be thought of as the glue
between activities. It is basically a passive data structure holding an
abstract description of an action to be performed.Q.What is an Implicit Intent?
In an implicit intent, the main power of the android design, we just
declare an intent and leave it to the platform to find an activity that
can respond to the intent. Here, we do not declare the target component
and hence is typically used for activating components of other
applications seamlessly.
Q. What is an Explicit Intent?
In an explicit intent, we actually specify the activity that is required to respond to the intent. In other words, we explicitly designate the target component. This is typically used for application internal messages.
Q. What’s the difference between file, class and activity in android?
File – It is a block of arbitrary information, or resource for storing information. It can be of any type.
Class – Its a compiled form of .Java file . Android finally used this .class files to produce an executable apkActivity – An activity is the equivalent of a Frame/Window in GUI toolkits. It is not a file or a file type it is just a class that can be extended in Android for loading UI elements on view.
Q: What is an Android Manifest 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. Among
other things, 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 that the application is composed of. It names the classes that implement each of the components and publishes their capabilities (for example, which Intent messages they can handle). These declarations let the Android system know what the components are and under what conditions they can be launched.
- It determines which processes will host application components.
- It declares which permissions the application must have in order to access protected parts of the API and interact with other applications.
- It also declares the permissions that others are required to have in order to interact with the application's components.
- It lists the Instrumentation classes that provide profiling and other information as the application is running. These declarations are present in the manifest only while the application is being developed and tested; they're removed before the application is published.
- It declares the minimum level of the Android API that the application requires.
- It lists the libraries that the application must be linked against.
Q. What language does Android support for application development?
Android applications are written using the Java programming language
Q. How to Remove Desktop icons and Widgets?
Press and Hold the icon or widget. The phone will vibrate and on the
bottom of the phone you will see an option to remove. While still
holding the icon or widget drag it to the remove button. Once remove
turns red drop the item and it is gone.
Q. What is the Guardian app for Android?
The Guardian app for Android delivers all the best content from
guardian.co.uk to your phone or tablet. Read the latest news, sport,
comment and reviews, watch video, listen to broadcast and browse
stunning picture galleries while on the move.
Q. What is Mono for Android?
Mono for Android is a software development kit that allows developers to
use the C# language to create mobile applications for Android based
devices.Mono for Android exposes two sets of APIs, the core .NET APIs
that C# developers are familiar with as well as a C# binding to
Android's native APIs exposed through the Mono.Android.* namespace.You
can use Mono for Android to develop applications that are distributed
through the Android Application Stores or to deploy software to your
personal hardware or the Android simulator.
Q.What is included in Mono for Android?
Mono for Android consists of the core Mono runtime, the Mono for Android
bindings to the native Android APIs, a Visual Studio 2010 plugin to
develop Android applications and an SDK that contains the tools to
build, debug and deploy your applications. Our Visual Studio 2010 plugin
allows developers to use Visual Studio 2010 to develop, debug and
deploy their applications to an Android simulator, an Android device, or
the Android Application Store.
Q. What do I need to develop Mono for Android applications?
Mono for Android on Windows provides a plugin for VisualStudio 2010
Professional or better. We also support Mono for Android development
using MonoDevelop on Windows for users that do not own a copy of Visual
Studio 2010 Professional or better.Mono for Android on Mac developers
can use MonoDevelop.On all platforms, Mono for Android requires the
Android SDK (which requires Java JDK).
Q. Are the Android releases available in a ROM?
No, Android is not yet available in a ROM format.Currently Android is
installed by using a clean SD Card,and booted from there.It is booted
by running a special application called 'Haret.exe' residing on your SD
Card which will terminate the Windows kernel and boot into
Linux/Android.It can't easily be run from ROM because:
(a) it's too experimental to risk putting in ROM and then killing a device.
(b) WinMo does some hardware initialization that isn't documented, but is needed before Android can run.
(a) it's too experimental to risk putting in ROM and then killing a device.
(b) WinMo does some hardware initialization that isn't documented, but is needed before Android can run.
Q. How do I turn off, or reboot Android?
In earlier releases, you had to pull the battery or press the reset
button, in newer releases, you can hold down the 'end call' button and
see a menu.
Q. What is context in android?
Interface to global information about an application
environment. This is an abstract class whose implementation is provided
by the Android system. It allows access to application-specific
resources and classes, as well as up-calls for application-level
operations such as launching activities, broadcasting and receiving
intents, etc.
Q. What is Notification in android?
A class that represents how a persistent notification is to be presented to the user using the
NotificationManager
. TheNotification.Builder
has been added to make it easier to construct Notifications.
Q. What is AsyncTask in android?
AsyncTask enables proper and easy use of the UI
thread. This class allows to perform background operations and publish
results on the UI thread without having to manipulate threads and/or
handlers.An asynchronous task is defined by a computation that runs on a
background thread and whose result is published on the UI thread. An
asynchronous task is defined by 3 generic types, called
Params
, Progress
and Result
, and 4 steps, called onPreExecute
,doInBackground
, onProgressUpdate
and onPostExecute
.Q. Does android support jar applications?
You can't install jar files on Andriod devices but you can include jar as library in your application.
Q. What is localization and how to achieve?
Localization
is a way of representing the products in different languages. Android
is an operating system which runs in many regions, so to reach different
users localization is a must. Localization in Android can be achieved
by incorporating different languages in the application which you are
using. To do this knowledge of Java, XML elements, Activity lifecycle
and general principles of internationalization and localization are
required.
Q. What are the different Storage Methods in android?
Android provides many options for storage of persistent data. It provides the solution according to your need. The storage's which have been provided in Android are as follows:-
- Shared Preferences: Store private primitive data in key-value pairs
- Internal Storage: Store private data on the device memory.
- External Storage: Store public data on the shared external storage.
- SQLite Databases: Store structured data in a private database.
- Network Connection: Store data on the web with your own network server.
Q. What is activity life cyle in android?
Activities in the system are managed as an activity stack.
When a new activity is started, it is placed on the top of the stack
and becomes the running activity -- the previous activity always remains
below it in the stack, and will not come to the foreground again until
the new activity exits.An activity has essentially four states:
- If an activity in the foreground of the screen (at the top of the stack), it is active or running.
- If an activity has lost focus but is still visible (that is, a new non-full-sized or transparent activity has focus on top of your activity), it is paused. A paused activity is completely alive (it maintains all state and member information and remains attached to the window manager), but can be killed by the system in extreme low memory situations.
- If an activity is completely obscured by another activity, it is stopped. It still retains all state and member information, however, it is no longer visible to the user so its window is hidden and it will often be killed by the system when memory is needed elsewhere.
- If an activity is paused or stopped, the system can drop the activity from memory by either asking it to finish, or simply killing its process. When it is displayed again to the user, it must be completely restarted and restored to its previous state.
Q. What is Orientation?
Orientation, which can be set using setOrientation(),
dictates if the LinearLayout is represented as a row or as a column.
Values are set as either HORIZONTAL or VERTICAL.
Q. What is the importance of XML-based layouts?
The use of XML-based layouts provides a consistent
and somewhat standard means of setting GUI definition format. In common
practice, layout details are placed in XML files while other items are
placed in source files.
Q. What is a Toast Notification?
A toast notification is a message that pops up on the surface of the
window. It only fills the amount of space required for the message and
the user's current activity remains visible and interactive. The
notification automatically fades in and out, and does not accept
interaction events.
Q. What is a Content Provider?
Content Providers are the only way to share data across Android
applications. They store and retrieve data thus making it accessible to
all. Content Providers give a uniform interface to access the data.
Android platform provides default implementations of content providers
for data types like audio, video, images, contact information etc.
Content providers manage access to a structured set of data. They
encapsulate the data, and provide mechanisms for defining data security.
Content providers are the standard interface that connects data in one
process with code running in another process.
Q. What is the Open Handset Alliance?
The OHA is a consortium of 84 technology and mobile companies that have
joined hands to accelerate innovation in mobile technology and at the
same time offer the end users a better, cost-effective and richer mobile
experience. Members of this include Google, HTC, Sony, Dell, Intel,
Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia.
The OHA was started on 5 November 2007 by Google and 34 other companies.
Android is the main software of the alliance.
Q. What is the difference between Service and Thread?
Service is like an Activity but has no interface. Probably if you want
to fetch the weather for example you won't create a blank activity for
it, for this you will use a Service. It is also known as Background
Service because it performs tasks in background. A Thread is a
concurrent unit of execution. You need to know that you cannot update UI
from a Thread. You need to use a Handler for this.
Q. What is ANR?
ANR is stand for Application Not Responding. This is actually a dialog
that appears to the user whenever an application have been unresponsive
for a long period of time.
See ANR msg:
Q. What is adb?
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:
- A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
- A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
- A daemon, which runs as a background process on each emulator or device instance.
adb
tool in /platform-tools/
.Q. What is the importance of settings permissions in app development?
Permissions allow certain restrictions to be imposed primarily to
protect data and code. Without these, codes could be compromised,
resulting to defects in functionality.
Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.
Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.
Q. What is the proper way of setting up an Android-powered device for app development?
The following are steps to be followed prior to actual application development in an Android-powered device:
Declare your application as “debug-gable” in your Android Manifest.
Turn on “USB Debugging” on your device.
Set up your system to detect your device.
Declare your application as “debug-gable” in your Android Manifest.
Turn on “USB Debugging” on your device.
Set up your system to detect your device.
Q. What is a Fragment?
A Fragment represents a behavior or a portion of user interface in an Activity.
You can combine multiple fragments in a single activity to build a
multi-pane UI and reuse a fragment in multiple activities. You can think
of a fragment as a modular section of an activity, which has its own
lifecycle, receives its own input events, and which you can add or
remove while the activity is running (sort of like a "sub activity" that
you can reuse in different activities).
A fragment must always be embedded in an activity and the fragment's
lifecycle is directly affected by the host activity's lifecycle. For
example, when the activity is paused, so are all fragments in it, and
when the activity is destroyed, so are all fragments.
Q. Do all mobile phones support the latest Android operating system?
Some Android-powered phone allows you to upgrade to the higher Android
operating system version. However, not all upgrades would allow you to
get the latest version. It depends largely on the capability and specs
of the phone, whether it can support the newer features available under
the latest Android version.
Q. Is it possible to use or add a fragment without using a user interface?
Yes, it is possible to do that, such as when you want to create a
background behavior for a particular activity. You can do this by using
add(Fragment, string) method to add a fragment from the activity.
Q. What is Dalvik Virtual Machine?
The name of Android's virtual machine. The Dalvik VM is an
interpreter-only virtual machine that executes files in the Dalvik
Executable (.dex) format, a format that is optimized for efficient
storage and memory-mappable execution. The virtual machine is
register-based, and it can run classes compiled by a Java language
compiler that have been transformed into its native format using the
included "dx" tool. The VM runs on top of Posix-compliant operating
systems, which it relies on for underlying functionality (such as
threading and low level memory management). The Dalvik core class
library is intended to provide a familiar development base for those
used to programming with Java Standard Edition, but it is geared
specifically to the needs of a small mobile device.
Q. What is Android Runtime?
Android includes a set of core libraries that provides most of the
functionality available in the core libraries of the Java programming
language. Every Android application runs in its own process, with its
own instance of the Dalvik virtual machine. Dalvik has been written so
that a device can run multiple VMs efficiently. The Dalvik VM executes
files in the Dalvik Executable (.dex) format which is optimized for
minimal memory footprint. The VM is register-based, and runs classes
compiled by a Java language compiler that have been transformed into the
.dex format by the included "dx" tool.
Q. What does ADT stand for?
ADT stands for Android Development Tools The Android SDK includes several tools and utilities to help you create, test, and debug your projects.
Q. What is AVD in Android?
An Android Virtual Device (AVD) is an emulator configuration that lets
you model an actual device by defining hardware and software options to
be emulated by the Android Emulator.
You can create as many AVDs as you need, based on the types of device you want to model. To thoroughly test your application, you should create an AVD for each general device configuration (for example, different screen sizes and platform versions) with which your application is compatible and test your application on each one.
You can create as many AVDs as you need, based on the types of device you want to model. To thoroughly test your application, you should create an AVD for each general device configuration (for example, different screen sizes and platform versions) with which your application is compatible and test your application on each one.
An AVD consists of:
- A hardware profile: Defines the hardware features of the virtual device. For example, you can define whether the device has a camera, whether it uses a physical QWERTY keyboard or a dialing pad, how much memory it has, and so on.
- A mapping to a system image: You can define what version of the Android platform will run on the virtual device. You can choose a version of the standard Android platform or the system image packaged with an SDK add-on.
- Other options: You can specify the emulator skin you want to use with the AVD, which lets you control the screen dimensions, appearance, and so on. You can also specify the emulated SD card to use with the AVD.
- A dedicated storage area on your development machine: the device's user data (installed applications, settings, and so on) and emulated SD card are stored in this area.
Q. What is AIDL?
AIDL (Android Interface Definition Language) is similar to other IDLs
you might have worked with. It allows you to define the programming
interface that both the client and service agree upon in order to
communicate with each other using inter-process communication (IPC). On
Android, one process cannot normally access the memory of another
process. So to talk, they need to decompose their objects into
primitives that the operating system can understand, and Marshall the
objects across that boundary for you. The code to do that marshaling is
tedious to write, so Android handles it for you with AIDL.
Q. What data types are supported by AIDL?
AIDL supports following data types:
- string
- List
- Map
- charSequence
- All primitive types in the Java programming language (such as
int
,long
,char
,boolean
, and so on)
Q. What is the difference between Activities from Services?
An
activity is a single, focused thing that the user can do. Almost all
activities interact with the user, so the Activity class takes care of
creating a window for you in which you can place your UI. But A Service
is an application component representing either an application's desire
to perform a longer-running operation while not interacting with the
user or to supply functionality for other applications to use.
Activities can be closed, or terminated anytime the user wishes. On the
other hand, services are designed to run behind the scenes, and can act
independently. Most services run continuously, regardless of whether
there are certain or no activities being executed.
Q. What is the importance of Android in the mobile market?
Developers
can write and register apps that will specifically run under the
Android environment. This means that every mobile device that is Android
enabled will be able to support and run these apps. With the growing
popularity of Android mobile devices, developers can take advantage of
this trend by creating and uploading their apps on the Android Market
for distribution to anyone who wants to download it.
======================================================
Introduction Android:
Android
is an operating system for mobile devices that includes middleware and
key applications, and uses a modified version of the Linux kernel. It
was initially developed by Android Inc..It allows developers to write
managed code in the Java language, controlling the device via
Google-developed Java libraries…..
The Android SDK includes a comprehensive set of development tools . These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials. Currently supported development platforms include x86-architecture computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or Vista.
The Android SDK includes a comprehensive set of development tools . These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials. Currently supported development platforms include x86-architecture computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or Vista.
Android
does not use established Java standards, i.e. Java SE and ME. This
prevents compatibility among Java applications written for those
platforms and those for the Android platform. Android only reuses the
Java language syntax, but does not provide the full-class libraries and
APIs bundled with Java SE or ME
What is android?
Android is a stack of software for mobile devices which has Operating System, middleware and some key applications. The application executes within its own process and its own instance of Dalvik Virtual Machine. Many Virtual Machines run efficiently by a DVM device. DVM executes Java language?s byte code which later transforms into .dex format files.
Android is a stack of software for mobile devices which has Operating System, middleware and some key applications. The application executes within its own process and its own instance of Dalvik Virtual Machine. Many Virtual Machines run efficiently by a DVM device. DVM executes Java language?s byte code which later transforms into .dex format files.
What are the advantages of Android?
The following are the advantages of Android:
The following are the advantages of Android:
*
The customer will be benefited from wide range of mobile applications
to choose, since the monopoly of wireless carriers like AT&T and
Orange will be broken by Google Android.
* Features like weather details, live RSS feeds, opening screen, icon on the opening screen can be customized
* Innovative products like the location-aware services, location of a nearby convenience store etc., are some of the additive facilities in Android.
Components can be reused and replaced by the application framework.
*Optimized DVM for mobile devices
*SQLite enables to store the data in a structured manner.
*Supports GSM telephone and Bluetooth, WiFi, 3G and EDGE technologies
*The development is a combination of a device emulator, debugging tools, memory profiling and plug-in for Eclipse IDE.
* Features like weather details, live RSS feeds, opening screen, icon on the opening screen can be customized
* Innovative products like the location-aware services, location of a nearby convenience store etc., are some of the additive facilities in Android.
Components can be reused and replaced by the application framework.
*Optimized DVM for mobile devices
*SQLite enables to store the data in a structured manner.
*Supports GSM telephone and Bluetooth, WiFi, 3G and EDGE technologies
*The development is a combination of a device emulator, debugging tools, memory profiling and plug-in for Eclipse IDE.
Features of Android
- 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.
Explain about the exceptions of Android?
The following are the exceptions that are supported by Android
* InflateException : When an error conditions are occurred, this exception is thrown
* Surface.OutOfResourceException: When a surface is not created or resized, this exception is thrown
* SurfaceHolder.BadSurfaceTypeException: This exception is thrown from the lockCanvas() method, when invoked on a Surface whose is SURFACE_TYPE_PUSH_BUFFERS
* WindowManager.BadTokenException: This exception is thrown at the time of trying to add view an invalid WindowManager.LayoutParamstoken.
* InflateException : When an error conditions are occurred, this exception is thrown
* Surface.OutOfResourceException: When a surface is not created or resized, this exception is thrown
* SurfaceHolder.BadSurfaceTypeException: This exception is thrown from the lockCanvas() method, when invoked on a Surface whose is SURFACE_TYPE_PUSH_BUFFERS
* WindowManager.BadTokenException: This exception is thrown at the time of trying to add view an invalid WindowManager.LayoutParamstoken.
Describe the APK format.
The APK file is compressed the AndroidManifest.xml file, application code (.dex files), resource files, and other files. A project is compiled into a single .apk file.
The APK file is compressed the AndroidManifest.xml file, application code (.dex files), resource files, and other files. A project is compiled into a single .apk file.
What is .apk extension?
The extension for an Android package file, which typically contains all of the files related to a single Android application. The file itself is a compressed collection of an AndroidManifest.xml file, application code (.dex files), resource files, and other files. A project is compiled into a single .apk file.
The extension for an Android package file, which typically contains all of the files related to a single Android application. The file itself is a compressed collection of an AndroidManifest.xml file, application code (.dex files), resource files, and other files. A project is compiled into a single .apk file.
What is .dex extension
Android programs are compiled into .dex (Dalvik Executable) files, which are in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language
Android programs are compiled into .dex (Dalvik Executable) files, which are in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language
What is an adb ?
Android Debug Bridge, a command-line debugging application shipped with the SDK. It provides tools to browse the device, copy tools on the device, and forward ports for debugging.
Android Debug Bridge, a command-line debugging application shipped with the SDK. It provides tools to browse the device, copy tools on the device, and forward ports for debugging.
What is an Application ?
A collection of one or more activities, services, listeners, and intent receivers. An application has a single manifest, and is compiled into a single .apk file on the device.
A collection of one or more activities, services, listeners, and intent receivers. An application has a single manifest, and is compiled into a single .apk file on the device.
What is a Content Provider ?
A class built on ContentProvider that handles content query strings of a specific format to return data in a specific format. See Reading and writing data to a content provider for information on using content providers.
A class built on ContentProvider that handles content query strings of a specific format to return data in a specific format. See Reading and writing data to a content provider for information on using content providers.
What is a Dalvik ?
The name of Android’s virtual machine. The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format that is optimized for efficient storage and memory-mappable execution. The virtual machine is register-based, and it can run classes compiled by a Java language compiler that have been transformed into its native format using the included “dx” tool. The VM runs on top of Posix-compliant operating systems, which it relies on for underlying functionality (such as threading and low level memory management). The Dalvik core class library is intended to provide a familiar development base for those used to programming with Java Standard Edition, but it is geared specifically to the needs of a small mobile device.
The name of Android’s virtual machine. The Dalvik VM is an interpreter-only virtual machine that executes files in the Dalvik Executable (.dex) format, a format that is optimized for efficient storage and memory-mappable execution. The virtual machine is register-based, and it can run classes compiled by a Java language compiler that have been transformed into its native format using the included “dx” tool. The VM runs on top of Posix-compliant operating systems, which it relies on for underlying functionality (such as threading and low level memory management). The Dalvik core class library is intended to provide a familiar development base for those used to programming with Java Standard Edition, but it is geared specifically to the needs of a small mobile device.
What is an DDMS
Dalvik Debug Monitor Service, a GUI debugging application shipped with the SDK. It provides screen capture, log dump, and process examination capabilities.
Dalvik Debug Monitor Service, a GUI debugging application shipped with the SDK. It provides screen capture, log dump, and process examination capabilities.
What is Drawable?
A compiled visual resource that can be used as a background, title, or other part of the screen. It is compiled into an android.graphics.drawable subclass.
A compiled visual resource that can be used as a background, title, or other part of the screen. It is compiled into an android.graphics.drawable subclass.
What is an Intent?
A class (Intent) that contains several fields describing what a caller would like to do. The caller sends this intent to Android’s intent resolver, which looks through the intent filters of all applications to find the activity most suited to handle this intent. Intent fields include the desired action, a category, a data string, the MIME type of the data, a handling class, and other restrictions.
A class (Intent) that contains several fields describing what a caller would like to do. The caller sends this intent to Android’s intent resolver, which looks through the intent filters of all applications to find the activity most suited to handle this intent. Intent fields include the desired action, a category, a data string, the MIME type of the data, a handling class, and other restrictions.
What is an Intent Filter ?
Activities and intent receivers include one or more filters in their manifest to describe what kinds of intents or messages they can handle or want to receive. An intent filter lists a set of requirements, such as data type, action requested, and URI format, that the Intent or message must fulfill. For Activities, Android searches for the Activity with the most closely matching valid match between the Intent and the activity filter. For messages, Android will forward a message to all receivers with matching intent filters.
Activities and intent receivers include one or more filters in their manifest to describe what kinds of intents or messages they can handle or want to receive. An intent filter lists a set of requirements, such as data type, action requested, and URI format, that the Intent or message must fulfill. For Activities, Android searches for the Activity with the most closely matching valid match between the Intent and the activity filter. For messages, Android will forward a message to all receivers with matching intent filters.
What is an Intent Receiver?
An application class that listens for messages broadcast by calling Context.broadcastIntent
An application class that listens for messages broadcast by calling Context.broadcastIntent
What is a Layout resource?
An XML file that describes the layout of an Activity screen.
An XML file that describes the layout of an Activity screen.
What is a Manifest ?
An XML file associated with each Application that describes the various activies, intent filters, services, and other items that it exposes.
An XML file associated with each Application that describes the various activies, intent filters, services, and other items that it exposes.
What is a Resource
A user-supplied XML, bitmap, or other file, entered into an application build process, which can later be loaded from code. Android can accept resources of many types; see Resources for a full description. Application-defined resources should be stored in the res/ subfolders.
A user-supplied XML, bitmap, or other file, entered into an application build process, which can later be loaded from code. Android can accept resources of many types; see Resources for a full description. Application-defined resources should be stored in the res/ subfolders.
What is a Service ?
A class that runs in the background to perform various persistent actions, such as playing music or monitoring network activity.
A class that runs in the background to perform various persistent actions, such as playing music or monitoring network activity.
What is a Theme ?
A set of properties (text size, background color, and so on) bundled together to define various default display settings. Android provides a few standard themes, listed in R.style (starting with “Theme_”).
A set of properties (text size, background color, and so on) bundled together to define various default display settings. Android provides a few standard themes, listed in R.style (starting with “Theme_”).
What is an URIs?
Android uses URI strings both for requesting data (e.g., a list of contacts) and for requesting actions (e.g., opening a Web page in a browser). Both are valid URI strings, but have different values. All requests for data must start with the string “content://”. Action strings are valid URIs that can be handled appropriately by applications on the device; for example, a URI starting with “http://” will be handled by the browser.
Android uses URI strings both for requesting data (e.g., a list of contacts) and for requesting actions (e.g., opening a Web page in a browser). Both are valid URI strings, but have different values. All requests for data must start with the string “content://”. Action strings are valid URIs that can be handled appropriately by applications on the device; for example, a URI starting with “http://” will be handled by the browser.
Can I write code for Android using C/C++?
Yes, but need to use NDK
Android applications are written using the Java programming language. Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included “dx” tool.
Android only supports applications written using the Java programming language at this time.
Yes, but need to use NDK
Android applications are written using the Java programming language. Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included “dx” tool.
Android only supports applications written using the Java programming language at this time.
What is an action?
A description of something that an Intent sender desires.
A description of something that an Intent sender desires.
What is activity?
A single screen in an application, with supporting Java code.
A single screen in an application, with supporting Java code.
What is intent?
A class (Intent) describes what a caller desires to do. The caller sends this intent to Android’s intent resolver, which finds the most suitable activity for the intent. E.g. opening a PDF file is an intent, and the Adobe Reader is the suitable activity for this intent.
A class (Intent) describes what a caller desires to do. The caller sends this intent to Android’s intent resolver, which finds the most suitable activity for the intent. E.g. opening a PDF file is an intent, and the Adobe Reader is the suitable activity for this intent.
How is nine-patch image different from a regular bitmap?
It is a resizable bitmap resource that can be used for backgrounds or other images on the device. The NinePatch class permits drawing a bitmap in nine sections. The four corners are unscaled; the four edges are scaled in one axis, and the middle is scaled in both axes.
It is a resizable bitmap resource that can be used for backgrounds or other images on the device. The NinePatch class permits drawing a bitmap in nine sections. The four corners are unscaled; the four edges are scaled in one axis, and the middle is scaled in both axes.
What languages does Android support for application development?
Android applications are written using the Java programming language.
Android applications are written using the Java programming language.
What is a resource?
A user-supplied XML, bitmap, or other file, injected into the application build process, which can later be loaded from code.
A user-supplied XML, bitmap, or other file, injected into the application build process, which can later be loaded from code.
How will you record a phone call in Android? How to get a handle on Audio Stream for a call in Android?
Permissions.PROCESS_OUTGOING_CALLS: Allows an application to monitor, modify, or abort outgoing calls.
Permissions.PROCESS_OUTGOING_CALLS: Allows an application to monitor, modify, or abort outgoing calls.
What’s the difference between file, class and activity in android?
File – It is a block of arbitrary information, or resource for storing information. It can be of any type.
Class – Its a compiled form of .Java file . Android finally used this .class files to produce an executable apk
Activity – An activity is the equivalent of a Frame/Window in GUI toolkits. It is not a file or a file type it is just a class that can be extended in Android for loading UI elements on view.
File – It is a block of arbitrary information, or resource for storing information. It can be of any type.
Class – Its a compiled form of .Java file . Android finally used this .class files to produce an executable apk
Activity – An activity is the equivalent of a Frame/Window in GUI toolkits. It is not a file or a file type it is just a class that can be extended in Android for loading UI elements on view.
What is a Sticky Intent?
sendStickyBroadcast() performs a sendBroadcast (Intent) that is “sticky,” i.e. the Intent you are sending stays around after the broadcast is complete, so that others can quickly retrieve that data through the return value of registerReceiver (BroadcastReceiver, IntentFilter). In all other ways, this behaves the same as sendBroadcast(Intent).
sendStickyBroadcast() performs a sendBroadcast (Intent) that is “sticky,” i.e. the Intent you are sending stays around after the broadcast is complete, so that others can quickly retrieve that data through the return value of registerReceiver (BroadcastReceiver, IntentFilter). In all other ways, this behaves the same as sendBroadcast(Intent).
One example of a sticky broadcast sent via the operating system is
ACTION_BATTERY_CHANGED. When you call registerReceiver() for that action
— even with a null BroadcastReceiver — you get the Intent that was last
broadcast for that action. Hence, you can use this to find the state of
the battery without necessarily registering for all future state
changes in the battery.
Does Android support the Bluetooth serial port profile?
Yes.
Yes.
Can an application be started on powerup?
Yes.
Yes.
How to Remove Desktop icons and Widgets
A. Press and Hold the icon or widget. The phone will vibrate and on the bottom of the phone you will see anoption to remove. While still holding the icon or widget drag it to the remove button. Once remove turns red drop the item and it is gone
A. Press and Hold the icon or widget. The phone will vibrate and on the bottom of the phone you will see anoption to remove. While still holding the icon or widget drag it to the remove button. Once remove turns red drop the item and it is gone
Describe a real time scenario where android can be used?
Imagine a situation that you are in a country where no one understands the language you speak and you can not read or write. However, you have mobile phone with you.
Imagine a situation that you are in a country where no one understands the language you speak and you can not read or write. However, you have mobile phone with you.
With a mobile phone with android, the Google translator translates the
data of one language into another language by using XMPP to transmit
data. You can type the message in English and select the language which
is understood by the citizens of the country in order to reach the
message to the citizens.
How to select more than one option from list in android xml file?
Give an example.
Specify android id, layout height and width as depicted in the following example.
Give an example.
Specify android id, layout height and width as depicted in the following example.
What languages does Android support for application development?
Android applications are written using the Java programming language.
Android applications are written using the Java programming language.
Describe Android Application Architecture.
Android Application Architecture has the following components:
• Services – like Network Operation
• Intent – To perform inter-communication between activities or services
• Resource Externalization – such as strings and graphics
• Notification signaling users – light, sound, icon, notification, dialog etc.
• Content Providers – They share data between applications
Android Application Architecture has the following components:
• Services – like Network Operation
• Intent – To perform inter-communication between activities or services
• Resource Externalization – such as strings and graphics
• Notification signaling users – light, sound, icon, notification, dialog etc.
• Content Providers – They share data between applications
Common Tricky questions
- Remember that the GUI layer doesn’t request data directly from the web; data is always loaded from a local database.
- The service layer periodically updates the local database.
- What is the risk in blocking the Main thread when performing a lengthy operation such as web access or heavy computation? Application_Not_Responding exception will be thrown which will crash and restart the application.
- Why is List View not recommended to have active components? Clicking on the active text box will pop up the software keyboard but this will resize the list, removing focus from the clicked element.
Open Source
What is the Android Open Source Project?
We use the phrase “Android Open Source Project” or “AOSP” to refer to the people, the processes, and the source code that make up Android.
What is the Android Open Source Project?
We use the phrase “Android Open Source Project” or “AOSP” to refer to the people, the processes, and the source code that make up Android.
The people oversee the project and develop the actual source code. The
processes refer to the tools and procedures we use to manage the
development of the software. The net result is the source code that you
can use to build cell phone and other devices.
Why did we open the Android source code?
Google started the Android project in response to our own experiences launching mobile apps. We wanted to make sure that there would always be an open platform available for carriers, OEMs, and developers to use to make their innovative ideas a reality. We also wanted to make sure that there was no central point of failure, so that no single industry player could restrict or control the innovations of any other. The single most important goal of the Android Open-Source Project (AOSP) is to make sure that the open-source Android software is implemented as widely and compatibly as possible, to everyone’s benefit.
Google started the Android project in response to our own experiences launching mobile apps. We wanted to make sure that there would always be an open platform available for carriers, OEMs, and developers to use to make their innovative ideas a reality. We also wanted to make sure that there was no central point of failure, so that no single industry player could restrict or control the innovations of any other. The single most important goal of the Android Open-Source Project (AOSP) is to make sure that the open-source Android software is implemented as widely and compatibly as possible, to everyone’s benefit.
You can find more information on this topic at our Project Philosophy page.
What kind of open-source project is Android?
Google oversees the development of the core Android open-source platform, and works to create robust developer and user communities. For the most part the Android source code is licensed under the permissive Apache Software License 2.0, rather than a “copyleft” license. The main reason for this is because our most important goal is widespread adoption of the software, and we believe that the ASL2.0 license best achieves that goal.
Google oversees the development of the core Android open-source platform, and works to create robust developer and user communities. For the most part the Android source code is licensed under the permissive Apache Software License 2.0, rather than a “copyleft” license. The main reason for this is because our most important goal is widespread adoption of the software, and we believe that the ASL2.0 license best achieves that goal.
You can find more information on this topic at our Project Philosophy and Licensing pages.
Why is Google in charge of Android?
Launching a software platform is complex. Openness is vital to the long-term success of a platform, since openness is required to attract investment from developers and ensure a level playing field. However, the platform itself must also be a compelling product to end users.
Launching a software platform is complex. Openness is vital to the long-term success of a platform, since openness is required to attract investment from developers and ensure a level playing field. However, the platform itself must also be a compelling product to end users.
That’s why Google has committed the professional engineering resources
necessary to ensure that Android is a fully competitive software
platform. Google treats the Android project as a full-scale product
development operation, and strikes the business deals necessary to make
sure that great devices running Android actually make it to market.
By making sure that Android is a success with end users, we help ensure
the vitality of Android as a platform, and as an open-source project.
After all, who wants the source code to an unsuccessful product?
Google’s goal is to ensure a successful ecosystem around Android, but no
one is required to participate, of course. We opened the Android source
code so anyone can modify and distribute the software to meet their own
needs.
What is Google’s overall strategy for Android product development?
We focus on releasing great devices into a competitive marketplace, and then incorporate the innovations and enhancements we made into the core platform, as the next version.
We focus on releasing great devices into a competitive marketplace, and then incorporate the innovations and enhancements we made into the core platform, as the next version.
In practice, this means that the Android engineering team typically
focuses on a small number of “flagship” devices, and develops the next
version of the Android software to support those product launches. These
flagship devices absorb much of the product risk and blaze a trail for
the broad OEM community, who follow up with many more devices that take
advantage of the new features. In this way, we make sure that the
Android platform evolves according to the actual needs of real-world
devices.
How is the Android software developed?
Each platform version of Android (such as 1.5, 1.6, and so on) has a corresponding branch in the open-source tree. At any given moment, the most recent such branch will be considered the “current stable” branch version. This current stable branch is the one that manufacturers port to their devices. This branch is kept suitable for release at all times.
Each platform version of Android (such as 1.5, 1.6, and so on) has a corresponding branch in the open-source tree. At any given moment, the most recent such branch will be considered the “current stable” branch version. This current stable branch is the one that manufacturers port to their devices. This branch is kept suitable for release at all times.
Simultaneously, there is also a “current experimental” branch, which is
where speculative contributions, such as large next-generation features,
are developed. Bug fixes and other contributions can be included in the
current stable branch from the experimental branch as appropriate.
Finally, Google works on the next version of the Android platform in
tandem with developing a flagship device. This branch pulls in changes
from the experimental and stable branches as appropriate.
You can find more information on this topic at our Branches and Releases.
Why are parts of Android developed in private?
It typically takes over a year to bring a device to market, but of course device manufacturers want to ship the latest software they can. Developers, meanwhile, don’t want to have to constantly track new versions of the platform when writing apps. Both groups experience a tension between shipping products, and not wanting to fall behind.
It typically takes over a year to bring a device to market, but of course device manufacturers want to ship the latest software they can. Developers, meanwhile, don’t want to have to constantly track new versions of the platform when writing apps. Both groups experience a tension between shipping products, and not wanting to fall behind.
To address this, some parts of the next version of Android including the
core platform APIs are developed in a private branch. These APIs
constitute the next version of Android. Our aim is to focus attention on
the current stable version of the Android source code, while we create
the next version of the platform as driven by flagship Android devices.
This allows developers and OEMs to focus on a single version without
having to track unfinished future work just to keep up. Other parts of
the Android system that aren’t related to application compatibility are
developed in the open, however. It’s our intention to move more of these
parts to open development over time.
When are source code releases made?
When they are ready. Some parts of Android are developed in the open, so that source code is always available. Other parts are developed first in a private tree, and that source code is released when the next platform version is ready.
When they are ready. Some parts of Android are developed in the open, so that source code is always available. Other parts are developed first in a private tree, and that source code is released when the next platform version is ready.
In some releases, core platform APIs will be ready far enough in advance
that we can push the source code out for an early look in advance of
the device’s release; however in others, this isn’t possible. In all
cases, we release the platform source when we feel the version has
stabilized enough, and when the development process permits. Releasing
the source code is a fairly complex process.
What is involved in releasing the source code for a new Android version?
Releasing the source code for a new version of the Android platform is a significant process. First, the software gets built into a system image for a device, and put through various forms of certification, including government regulatory certification for the regions the phones will be deployed. It also goes through operator testing. This is an important phase of the process, since it helps shake out a lot of software bugs.
Releasing the source code for a new version of the Android platform is a significant process. First, the software gets built into a system image for a device, and put through various forms of certification, including government regulatory certification for the regions the phones will be deployed. It also goes through operator testing. This is an important phase of the process, since it helps shake out a lot of software bugs.
Once the release is approved by the regulators and operators, the
manufacturer begins mass producing devices, and we turn to releasing the
source code.
Simultaneous to mass production the Google team kicks off several
efforts to prepare the open source release. These efforts include final
API changes and documentation (to reflect any changes that were made
during qualification testing, for example), preparing an SDK for the new
version, and launching the platform compatibility information.
Also included is a final legal sign-off to release the code into open
source. Just as open source contributors are required to sign a
Contributors License Agreement attesting to their IP ownership of their
contribution, Google too must verify that it is clear to make
contributions.
Starting at the time mass production begins, the software release
process usually takes around a month, which often roughly places source
code releases around the same time that the devices reach users.
How does the AOSP relate to the Android Compatibility Program?
The Android Open-Source Project maintains the Android software, and develops new versions. Since it’s open-source, this software can be used for any purpose, including to ship devices that are not compatible with other devices based on the same source.
The Android Open-Source Project maintains the Android software, and develops new versions. Since it’s open-source, this software can be used for any purpose, including to ship devices that are not compatible with other devices based on the same source.
The function of the Android Compatibility Program is to define a
baseline implementation of Android that is compatible with third-party
apps written by developers. Devices that are “Android compatible” may
participate in the Android ecosystem, including Android Market; devices
that don’t meet the compatibility requirements exist outside that
ecosystem.
In other words, the Android Compatibility Program is how we separate
“Android compatible devices” from devices that merely run derivatives of
the source code. We welcome all uses of the Android source code, but
only Android compatible devices — as defined and tested by the Android
Compatibility Program — may participate in the Android ecosystem.
How can I contribute to Android?
There are a number of ways you can contribute to Android. You can report bugs, write apps for Android, or contribute source code to the Android Open-Source Project.
There are a number of ways you can contribute to Android. You can report bugs, write apps for Android, or contribute source code to the Android Open-Source Project.
There are some limits on the kinds of code contributions we are willing
or able to accept. For instance, someone might want to contribute an
alternative application API, such as a full C++-based environment. We
would decline that contribution, since Android is focused on
applications that run in the Dalvik VM. Alternatively, we won’t accept
contributions such as GPL or LGPL libraries that are incompatible with
our licensing goals.
We encourage those interested in contributing source code to contact us
via the AOSP Community page prior to beginning any work. You can find
more information on this topic at the Getting Involved page.
How do I become an Android committer?
The Android Open Source Project doesn’t really have a notion of a “committer”. All contributions — including those authored by Google employees — go through a web-based system known as “gerrit” that’s part of the Android engineering process. This system works in tandem with the git source code management system to cleanly manage source code contributions.
The Android Open Source Project doesn’t really have a notion of a “committer”. All contributions — including those authored by Google employees — go through a web-based system known as “gerrit” that’s part of the Android engineering process. This system works in tandem with the git source code management system to cleanly manage source code contributions.
Once submitted, changes need to be accepted by a designated Approver.
Approvers are typically Google employees, but the same approvers are
responsible for all submissions, regardless of origin.
You can find more information on this topic at the Submitting Patches page.
Compatibility
What does “compatibility” mean?
We define an “Android compatible” device as one that can run any application written by third-party developers using the Android SDK and NDK. We use this as a filter to separate devices that can participate in the Android app ecosystem, and those that cannot. Devices that are properly compatible can seek approval to use the Android trademark. Devices that are not compatible are merely derived from the Android source code and may not use the Android trademark.
What does “compatibility” mean?
We define an “Android compatible” device as one that can run any application written by third-party developers using the Android SDK and NDK. We use this as a filter to separate devices that can participate in the Android app ecosystem, and those that cannot. Devices that are properly compatible can seek approval to use the Android trademark. Devices that are not compatible are merely derived from the Android source code and may not use the Android trademark.
In other words, compatibility is a prerequisite to participate in the
Android apps ecosystem. Anyone is welcome to use the Android source
code, but if the device isn’t compatible, it’s not considered part of
the Android ecosystem.
What is the role of Android Market in compatibility?
Devices that are Android compatible may seek to license the Android Market client software. This allows them to become part of the Android app ecosystem, by allowing users to download developers’ apps from a catalog shared by all compatible devices. This option isn’t available to devices that aren’t compatible.
Devices that are Android compatible may seek to license the Android Market client software. This allows them to become part of the Android app ecosystem, by allowing users to download developers’ apps from a catalog shared by all compatible devices. This option isn’t available to devices that aren’t compatible.
What kinds of devices can be Android compatible?
The Android software can be ported to a lot of different kinds of devices, including some on which third-party apps won’t run properly. The Android Compatibility Definition Document (CDD) spells out the specific device configurations that will be considered compatible.
The Android software can be ported to a lot of different kinds of devices, including some on which third-party apps won’t run properly. The Android Compatibility Definition Document (CDD) spells out the specific device configurations that will be considered compatible.
For example, though the Android source code could be ported to run on a
phone that doesn’t have a camera, the CDD requires that in order to be
compatible, all phones must have a camera. This allows developers to
rely on a consistent set of capabilities when writing their apps.
The CDD will evolve over time to reflect market realities. For instance,
the 1.6 CDD only allows cell phones, but the 2.1 CDD allows devices to
omit telephony hardware, allowing for non-phone devices such as
tablet-style music players to be compatible. As we make these changes,
we will also augment Android Market to allow developers to retain
control over where their apps are available. To continue the telephony
example, an app that manages SMS text messages would not be useful on a
media player, so Android Market allows the developer to restrict that
app exclusively to phone devices.
If my device is compatible, does it automatically have access to Android Market and branding?
Android Market is a service operated by Google. Achieving compatibility is a prerequisite for obtaining access to the Android Market software and branding. Device manufacturers should contact Google to obtain access to Android Market.
Android Market is a service operated by Google. Achieving compatibility is a prerequisite for obtaining access to the Android Market software and branding. Device manufacturers should contact Google to obtain access to Android Market.
If I am not a manufacturer, how can I get Android Market?
Android Market is only licensed to handset manufacturers shipping devices. For questions about specific cases, contact android-partnerships@google.com.
Android Market is only licensed to handset manufacturers shipping devices. For questions about specific cases, contact android-partnerships@google.com.
How can I get access to the Google apps for Android, such as Maps?
The Google apps for Android, such as YouTube, Google Maps and Navigation, Gmail, and so on are Google properties that are not part of Android, and are licensed separately. Contact android-partnerships@google.com for inquiries related to those apps.
The Google apps for Android, such as YouTube, Google Maps and Navigation, Gmail, and so on are Google properties that are not part of Android, and are licensed separately. Contact android-partnerships@google.com for inquiries related to those apps.
Is compatibility mandatory?
No. The Android Compatibility Program is optional. Since the Android source code is open, anyone can use it to build any kind of device. However, if a manufacturer wishes to use the Android name with their product, or wants access to Android Market, they must first demonstrate that the device is compatible.
No. The Android Compatibility Program is optional. Since the Android source code is open, anyone can use it to build any kind of device. However, if a manufacturer wishes to use the Android name with their product, or wants access to Android Market, they must first demonstrate that the device is compatible.
How much does compatibility certification cost?
There is no cost to obtain Android compatibility for a device. The Compatibility Test Suite is open-source and available to anyone to use to test a device.
There is no cost to obtain Android compatibility for a device. The Compatibility Test Suite is open-source and available to anyone to use to test a device.
How long does compatibility take?
The process is automated. The Compatibility Test Suite generates a report that can be provided to Google to verify compatibility. Eventually we intend to provide self-service tools to upload these reports to a public database.
The process is automated. The Compatibility Test Suite generates a report that can be provided to Google to verify compatibility. Eventually we intend to provide self-service tools to upload these reports to a public database.
Who determines what will be part of the compatibility definition?
Since Google is responsible for the overall direction of Android as a platform and product, Google maintains the Compatibility Definition Document for each release. We draft the CDD for a new Android version in consultation with a number of OEMs, who provide input on its contents.
Since Google is responsible for the overall direction of Android as a platform and product, Google maintains the Compatibility Definition Document for each release. We draft the CDD for a new Android version in consultation with a number of OEMs, who provide input on its contents.
How long will each Android version be supported for new devices?
Since Android’s code is open-source, we can’t prevent someone from using an old version to launch a device. Instead, Google chooses not to license the Android Market client software for use on versions that are considered obsolete. This allows anyone to continue to ship old versions of Android, but those devices won’t use the Android name and will exist outside the Android apps ecosystem, just as if they were non-compatible.
Since Android’s code is open-source, we can’t prevent someone from using an old version to launch a device. Instead, Google chooses not to license the Android Market client software for use on versions that are considered obsolete. This allows anyone to continue to ship old versions of Android, but those devices won’t use the Android name and will exist outside the Android apps ecosystem, just as if they were non-compatible.
Can a device have a different user interface and still be compatible?
The Android Compatibility Program focuses on whether a device can run third-party applications. The user interface components shipped with a device (such as home screen, dialer, color scheme, and so on) does not generally have much effect on third-party apps. As such, device builders are free to customize the user interface as much as they like. The Compatibility Definition Document does restrict the degree to which OEMs may alter the system user interface for areas that do impact third-party apps.
The Android Compatibility Program focuses on whether a device can run third-party applications. The user interface components shipped with a device (such as home screen, dialer, color scheme, and so on) does not generally have much effect on third-party apps. As such, device builders are free to customize the user interface as much as they like. The Compatibility Definition Document does restrict the degree to which OEMs may alter the system user interface for areas that do impact third-party apps.
When are compatibility definitions released for new Android versions?
Our goal is to release new versions of Android Compatibility Definition Documents (CDDs) once the corresponding Android platform version has converged enough to permit it. While we can’t release a final draft of a CDD for an Android software version before the first flagship device ships with that software, final CDDs will always be released after the first device. However, wherever practical we will make draft versions of CDDs available.
Our goal is to release new versions of Android Compatibility Definition Documents (CDDs) once the corresponding Android platform version has converged enough to permit it. While we can’t release a final draft of a CDD for an Android software version before the first flagship device ships with that software, final CDDs will always be released after the first device. However, wherever practical we will make draft versions of CDDs available.
How are device manufacturers’ compatibility claims validated?
There is no validation process for Android device compatibility. However, if the device is to include Android Market, Google will typically validate the device for compatibility before agreeing to license the Market client software.
There is no validation process for Android device compatibility. However, if the device is to include Android Market, Google will typically validate the device for compatibility before agreeing to license the Market client software.
What happens if a device that claims compatibility is later found to have compatibility problems?
Typically, Google’s relationships with Android Market licensees allow us to ask them to release updated system images that fix the problems.
Typically, Google’s relationships with Android Market licensees allow us to ask them to release updated system images that fix the problems.
Compatibility Test Suite
What is the purpose of the CTS?
The Compatibility Test Suite is a tool used by device manufacturers to help ensure their devices are compatible, and to report test results for validations. The CTS is intended to be run frequently by OEMs throughout the engineering process to catch compatibility issues early.
What is the purpose of the CTS?
The Compatibility Test Suite is a tool used by device manufacturers to help ensure their devices are compatible, and to report test results for validations. The CTS is intended to be run frequently by OEMs throughout the engineering process to catch compatibility issues early.
What kinds of things does the CTS test?
The CTS currently tests that all of the supported Android strong-typed APIs are present and behave correctly. It also tests other non-API system behaviors such as application lifecycle and performance. We plan to add support in future CTS versions to test “soft” APIs such as Intents as well.
The CTS currently tests that all of the supported Android strong-typed APIs are present and behave correctly. It also tests other non-API system behaviors such as application lifecycle and performance. We plan to add support in future CTS versions to test “soft” APIs such as Intents as well.
Will the CTS reports be made public?
Yes. While not currently implemented, Google intends to provide web-based self-service tools for OEMs to publish CTS reports so that they can be viewed by anyone. CTS reports can be shared as widely as manufacturers prefer.
Yes. While not currently implemented, Google intends to provide web-based self-service tools for OEMs to publish CTS reports so that they can be viewed by anyone. CTS reports can be shared as widely as manufacturers prefer.
How is the CTS licensed?
The CTS is licensed under the same Apache Software License 2.0 that the bulk of Android uses.
The CTS is licensed under the same Apache Software License 2.0 that the bulk of Android uses.
Does the CTS accept contributions?
Yes please! The Android Open-Source Project accepts contributions to improve the CTS in the same way as for any other component. In fact, improving the coverage and quality of the CTS test cases is one of the best ways to help out Android.
Yes please! The Android Open-Source Project accepts contributions to improve the CTS in the same way as for any other component. In fact, improving the coverage and quality of the CTS test cases is one of the best ways to help out Android.
Can anyone use the CTS on existing devices?
The Compatibility Definition Document requires that compatible devices implement the ‘adb’ debugging utility. This means that any compatible device — including ones available at retail — must be able to run the CTS tests.
The Compatibility Definition Document requires that compatible devices implement the ‘adb’ debugging utility. This means that any compatible device — including ones available at retail — must be able to run the CTS tests.
No comments:
Post a Comment