page.title=Glossary
excludeFromSuggestions=true
@jd:body

<p>The list below defines some of the basic terminology of the Android platform. </p>
    <dl>
    <dt id="apk">.apk file</dt> <dd>Android application package file. Each
    Android application is compiled and packaged in a single file that
    includes all of the application's code (.dex files), resources, assets,
    and manifest file. The application package file can have any name but
    <em>must</em> use the <code>.apk</code> extension. For example:
    <code>myExampleAppname.apk</code>. For convenience, an application package
    file is often referred to as an ".apk".
    <p>Related: <a href="#application">Application</a>.</p>
</dd>

    <dt id="dex">.dex file </dt>
    <dd>Compiled Android application code file. 
       <p>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.</dd>

    <dt id="action">Action</dt>
    <dd>A description of something that an Intent sender wants done. An action is
        a string value assigned to an Intent. Action strings can be defined by Android
        or by a third-party developer. For example, android.intent.action.VIEW
        for a Web URL, or com.example.rumbler.SHAKE_PHONE for a custom application
        to vibrate the phone. 
    <p>Related: <a href="#intent">Intent</a>.</p>
    </dd>

    <dt id="activity">Activity</dt>
    <dd>A single screen in an application, with supporting Java code, derived
    from the {@link android.app.Activity} class. Most commonly, an activity is
    visibly represented by a full screen window that can receive and handle UI
    events and perform complex tasks, because of the Window it uses to render
    its window. Though an Activity is typically full screen, it can also be
    floating or transparent.</dd>

    <dt id="adb">adb</dt>
    <dd>Android Debug Bridge, a command-line debugging application included with the
        SDK. It provides tools to browse the device, copy tools on the device, and
        forward ports for debugging. If you are developing in Eclipse using the
		ADT Plugin, adb is integrated into your development environment. See 
		<a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a>
		for more information. </dd>

    <dt id="application">Application</dt>
    <dd>From a component perspective, an Android application consists of one
    or more activities, services, listeners, and intent receivers. From a
    source file perspective, an Android application consists of code,
    resources, assets, and a single manifest. During compilation, these files
    are packaged in a single file called an application package file (.apk).
    <p>Related: <a href="#apk">.apk</a>, <a href="#activity">Activity</a></p></dd>

    <dt id="canvas">Canvas</dt>
    <dd>A drawing surface that handles compositing of the actual bits against
    a Bitmap or Surface object. It has methods for standard computer drawing
    of bitmaps, lines, circles, rectangles, text, and so on, and is bound to a
    Bitmap or Surface. Canvas is the simplest, easiest way to draw 2D objects
    on the screen. However, it does not support hardware acceleration, as
    OpenGL ES does. The base class is {@link android.graphics.Canvas}.
    <p>Related: <a href="#drawable">Drawable</a>, <a href="#opengles">OpenGL
    ES</a>.</p></dd>

    <dt id="contentprovider">Content Provider</dt>
    <dd>A data-abstraction layer that you can use to safely expose your
    application's data to other applications. A content provider is built on
    the {@link android.content.ContentProvider} class, which handles content
    query strings of a specific format to return data in a specific format.
    See <a href="{@docRoot}guide/topics/providers/content-providers.html">
	Content Providers</a> topic for more information.
    <p>Related: <a href="#uri">URI Usage in Android</a></p></dd>

    <dt id="dalvik">Dalvik</dt>
    <dd>The Android platform'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 &quot;dx&quot; 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.</dd>

    <dt id="ddms">DDMS</dt>
    <dd>Dalvik Debug Monitor Service, a GUI debugging application included
    with the SDK. It provides screen capture, log dump, and process
    examination capabilities. If you are developing in Eclipse using the ADT
    Plugin, DDMS is integrated into your development environment. See <a
    href="{@docRoot}tools/debugging/ddms.html">Using DDMS</a> to learn more about the program.</dd>

    <dt id="dialog">Dialog</dt> <dd> A floating window that acts as a lightweight
    form. A dialog can have button controls only and is intended to perform a
    simple action (such as button choice) and perhaps return a value. A dialog
    is not intended to persist in the history stack, contain complex layout,
    or perform complex actions. Android provides a default simple dialog for
    you with optional buttons, though you can define your own dialog layout.
    The base class for dialogs is {@link android.app.Dialog Dialog}. 
    <p>Related: <a href="#activity">Activity</a>.</p></dd>

    <dt id="drawable">Drawable</dt>
    <dd>A compiled visual resource that can be used as a background, title, or
    other part of the screen. A drawable is typically loaded into another UI
    element, for example as a background image. A drawable is not able to
    receive events, but does assign various other properties such as "state"
    and scheduling, to enable subclasses such as animation objects or image
    libraries. Many drawable objects are loaded from drawable resource files
    &mdash; xml or bitmap files that describe the image. Drawable resources
    are compiled into subclasses of {@link android.graphics.drawable}. For
    more information about drawables and other resources, see <a
    href="{@docRoot}guide/topics/resources/resources-i18n.html">Resources</a>. 
    <p>Related: <a href="#resources">Resources</a>, <a href="#canvas">Canvas
    </a></p></dd>

    <dt id="intent">Intent</dt>
    <dd>An message object that you can use to launch or communicate with other
    applications/activities asynchronously. An Intent object is an instance of
    {@link android.content.Intent}. It includes several criteria fields that you can
    supply, to determine what application/activity receives the Intent and
    what the receiver does when handling the Intent. Available criteria include
    include the desired action, a category, a data string, the MIME type of
    the data, a handling class, and others. An application sends
    an Intent to the Android system, rather than sending it directly to
    another application/activity. The application can send the Intent to a
    single target application or it can send it as a broadcast, which can in
    turn be handled by multiple applications sequentially. The Android system
    is responsible for resolving the best-available receiver for each Intent,
    based on the criteria supplied in the Intent and the Intent Filters
    defined by other applications. For more information, see <a
    href="{@docRoot}guide/components/intents-filters.html">Intents and
    Intent Filters</a>. 
    <p>Related: <a href="#intentfilter">Intent Filter</a>, <a
    href="#broadcastreceiver">Broadcast Receiver</a>.</p></dd>

    <dt id="intentfilter">Intent Filter</dt>
    <dd>A filter object that an application declares in its manifest file, to
    tell the system what types of Intents each of its components is willing to
    accept and with what criteria. Through an intent filter, an application
    can express interest in specific data types, Intent actions, URI formats,
    and so on. When resolving an Intent, the system evaluates all of the
    available intent filters in all applications and passes the Intent to the
    application/activity that best matches the Intent and criteria. For more
    information, see <a
    href="{@docRoot}guide/components/intents-filters.html">Intents and
    Intent Filters</a>. 
    <p>Related: <a href="#intent">Intent</a>, <a
    href="#broadcastreceiver">Broadcast Receiver</a>.</p></dd>

    <dt id="broadcastreceiver">Broadcast Receiver </dt>
    <dd>An application class that listens for Intents that are broadcast,
    rather than being sent to a single target application/activity. The system
    delivers a broadcast Intent to all interested broadcast receivers, which
    handle the Intent sequentially. 
    <p>Related: <a href="#intent">Intent</a>, <a href="#intentfilter">Intent 
    Filter</a>.</p> </dd>
	
    <dt id="layoutresource">Layout Resource</dt>
    <dd>An XML file that describes the layout of an Activity screen. 
    <p>Related: <a href="#resources">Resources</a></p></dd>

    <dt id="manifest">Manifest File</dt>
    <dd>An XML file that each application must define, to describe the
    application's package name, version, components (activities, intent
    filters, services), imported libraries, and describes the various
    activities, and so on. See <a
    href="{@docRoot}guide/topics/manifest/manifest-intro.html">The
    AndroidManifest.xml File</a> for complete information.</dd>

    <dt id="ninepatch">Nine-patch / 9-patch / Ninepatch image</dt>
    <dd>A resizeable bitmap resource that can be used for backgrounds or other
    images on the device. See <a
    href="{@docRoot}guide/topics/resources/available-resources.html#ninepatch">
    Nine-Patch Stretchable Image</a> for more information. 
    <p>Related: <a href="#resources">Resources</a>.</p></dd>

    <dt id="opengles">OpenGL ES</dt>
    <dd> Android provides OpenGL ES libraries that you can use for fast,
    complex 3D images. It is harder to use than a Canvas object, but
    better for 3D objects. The {@link android.opengl} and 
    {@link javax.microedition.khronos.opengles} packages expose 
    OpenGL ES functionality. 
    <p>Related: <a href="#canvas">Canvas</a>, <a href="#surface">Surface</a></p></dd>

    <dt id="resources">Resources</dt>
    <dd>Nonprogrammatic application components that are external to the
    compiled application code, but which can be loaded from application code
    using a well-known reference format. Android supports a variety of
    resource types, but a typical application's resources would consist of UI
    strings, UI layout components, graphics or other media files, and so on.
    An application uses resources to efficiently support localization and
    varied device profiles and states. For example, an application would
    include a separate set of resources for each supported local or device
    type, and it could include layout resources that are specific to the
    current screen orientation (landscape or portrait). For more information
    about resources, see <a
    href="{@docRoot}guide/topics/resources/index.html"> Resources and
    Assets</a>. The resources of an application are always stored in the
    <code>res/*</code> subfolders of the project. </dd>

    <dt id="service">Service</dt>
    <dd>An object of class {@link android.app.Service} that runs in the
    background (without any UI presence) to perform various persistent
    actions, such as playing music or monitoring network activity. 
    <p>Related: <a href="#activity">Activity</a></p></dd>

    <dt id="surface">Surface</dt>
    <dd>An object of type {@link android.view.Surface} representing a block of
    memory that gets composited to the screen. A Surface holds a Canvas object
    for drawing, and provides various helper methods to draw layers and resize
    the surface. You should not use this class directly; use 
    {@link android.view.SurfaceView} instead. 
    <p>Related: <a href="#canvas">Canvas</a></p></dd>

    <dt id="surfaceview">SurfaceView</dt>
    <dd>A View object that wraps a Surface for drawing, and exposes methods to
    specify its size and format dynamically. A SurfaceView provides a way to
    draw independently of the UI thread for resource-intensive operations
    (such as games or camera previews), but it uses extra memory as a result.
    SurfaceView supports both Canvas and OpenGL ES graphics. The base class is
    {@link android.view.SurfaceView}.
    <p>Related: <a href="#canvas">Surface</a></p></dd>

    <dt id="theme">Theme</dt>
    <dd>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 {@link android.R.style} (starting with
    &quot;Theme_&quot;). </dd>

    <dt id="uri">URIs in Android</dt>
    <dd>Android uses URI strings as the basis for requesting data in a content
    provider (such as to retrieve a list of contacts) and for requesting
    actions in an Intent (such as opening a Web page in a browser). The URI
    scheme and format is specialized according to the type of use, and an
    application can handle specific URI schemes and strings in any way it
    wants. Some URI schemes are reserved by system components. For example,
    requests for data from a content provider must use the
    <code>content://</code>. In an Intent, a URI using an <code>http://</code>
    scheme will be handled by the browser. </dd>

    <dt id="view">View</dt>
	<dd>An object that draws to a rectangular area on the screen and handles
    click, keystroke, and other interaction events. A View is a base class for
    most layout components of an Activity or Dialog screen (text boxes,
    windows, and so on). It receives calls from its parent object (see
    viewgroup, below)to draw itself, and informs its parent object about where
    and how big it would like to be (which may or may not be respected by the
    parent). For more information, see {@link android.view.View}. 
    <p>Related: <a href="#viewgroup">Viewgroup</a>, <a href="#widget">Widget
    </a></p></dd>

    <dt id="viewgroup">Viewgroup</dt>
    <dd> A container object that groups a set of child Views. The viewgroup is
    responsible for deciding where child views are positioned and how large
    they can be, as well as for calling each to draw itself when appropriate.
    Some viewgroups are invisible and are for layout only, while others have
    an intrinsic UI (for instance, a scrolling list box). Viewgroups are all
    in the {@link android.widget widget} package, but extend 
    {@link android.view.ViewGroup ViewGroup}. 
    <p>Related: <a href="#view">View</a></p></dd>

    <dt id="widget">Widget</dt>
    <dd>One of a set of fully implemented View subclasses that render form
    elements and other UI components, such as a text box or popup menu.
    Because a widget is fully implemented, it handles measuring and drawing
    itself and responding to screen events. Widgets are all in the 
    {@link android.widget} package. </dd>

 <!-- 
    <dt id="panel">Panel</dt>
    <dd> A panel is a concept not backed by a specific class. It is a View of
    some sort that is tied in closely to a parent window, but can handle
    clicks and perform simple functions related to its parent. A panel floats
    in front of its parent, and is positioned relative to it. A common example
    of a panel (implemented by Android) is the options menu available to every
    screen. At present, there are no specific classes or methods for creating
    a panel &mdash; it's more of a general idea. </dd>
-->

    <dt id="panel">Window</dt>
    <dd>In an Android application, an object derived from the abstract class
    {@link android.view.Window} that specifies the elements of a generic
    window, such as the look and feel (title bar text, location and content of
    menus, and so on). Dialog and Activity use an implementation of this class
    to render a window. You do not need to implement this class or use windows
    in your application. </dd>


</dl>