[Android General] AmanMehta007:
related thing in android

Accelerometer

Accelerometers are increasingly being incorporated into personal electronic devices to detect the orientation of the device, for example, a display screen.

A free-fall sensor is an accelerometer used to detect if a system has been dropped and is falling. It can then apply safety measures such as parking the head of a hard disk to prevent a head crash and resulting data loss upon impact. This device is included in the many common computer and consumer electronic products that are produced by a variety of manufacturers. It is also used in some data loggers to monitor handling operations for shipping containers. The length of time in free fall is used to calculate the height of drop and to estimate the shock to the package.

Motion input

Some smartphones, digital audio players and personal digital assistants contain accelerometers for user interface control; often the accelerometer is used to present landscape or portrait views of the device's screen, based on the way the device is being held

Android Debug Bridge

The Android Debug Bridge (ADB) is a toolkit included in the Android SDK package. It consists of both client and server-side programs that communicate with one another. The ADB is typically accessed through the command-line interface.

The format for issuing commands through the ADB is typically:

adb [-d|-e|-s <serialNumber>] <command>

In a security issue reported in March 2011, ADB was targeted as a vector to attempt to install a rootkit on connected phones using a "resource exhaustion attack".

Android Developer Lab

Android Developer Lab is a series of mobile software development-focused events around the world held annually by Google. They include bootcamp and technical sessions focused on Android and give participants an excellent chance to learn about the state of the Android platform, get hands-on with the latest version of the SDK, test applications on the latest sample Android devices, get questions answered by Google engineers from the Android team as well as meet other like-minded members of the local Android developer community.

Bootcamp is a hands-on training experience where Google engineers show attendees how to get started with Android development, from Android SDK installation to the creation of Android applications. Technical Sessions are presentations where Google engineers speak about key Android features and show developers how to use them effectively to create high quality applications.

Android Open Accessory Development Kit

The Android platform introduces Android Open Accessory support, which allows external USB hardware (an Android USB accessory) to interact with an Android-powered device in a special "accessory" mode. When an Android-powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB device. Android USB accessories are specifically designed to attach to Android-powered devices and adhere to a simple protocol (Android accessory protocol) that allows them to detect Android-powered devices that support accessory mode

Android Dev Phone

The Android Dev Phone (ADP) is a SIM-unlocked and bootloader unlocked Android device that is designed for advanced developers. While developers can use regular consumer devices purchased at retail to test and use their apps, some developers may choose not to use a retail device, preferring an unlocked or no-contract device

Android Developer kit

The Android software development kit (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 computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely)

APK (file format)

Android application package file (APK) is the file format used to distribute and install application software and middleware onto Google's Android operating system. To make an APK file, a program for Android is first compiled, and then all of its parts are packaged into one file. This holds all of that program's code (such as .dex files), resources, assets, certificates, and manifest file. As is the case with many file formats, APK files can have any name needed, provided that the file name ends in ".apk"

APK files are ZIP file formatted packages based on the JAR file format, with .apk file extensions. The MIME type associated with APK files is application/vnd.android.package-archive.

Apache harmony

Apache Harmony was an open source, free Java implementation, developed by the Apache Software Foundation.[2] It was announced in early May 2005 and on October 25, 2006, the Board of Directors voted to make Apache Harmony a top-level project. The Harmony project achieved (as of February 2011) 99% completeness for JDK 5.0, and 97% for Java SE 6.[3]

On October 29, 2011 a vote was started by the project lead Tim Ellison whether to retire the project. The outcome was 20 to 2 in favor,[4] and the project was retired on November 16, 2011.[5]

Bionic (software)

The Bionic libc is a derivation of the BSD standard C library code that was originally developed by Google for the Android embedded operating system. Bionic has several major Linux-specific features and development continues independent of other code bases. The publicly stated goals for Bionic are:

BSD license: Android uses a Linux kernel which is under the GNU General Public License (GPL), but Google wished to isolate Android applications from the effects of the GPL.

Small size: Bionic is much smaller than the GNU C Library (glibc) and somewhat smaller than uClibc.

Speed: Bionic is designed for CPUs at relatively low clock frequencies.

Bionic lacks many features found in full libc implementations, such as wide character and C++ exception handling support. Also some functions defined in the Bionic header are still unimplemented, which may trigger unexpected behavior in some cases.

As of Android Jelly Bean MR1 (4.2), bionic includes support for Glibc's FORTIFY_SOURCE. FORTIFY_SOURCE is a feature where unsafe string and memory functions (such as strcpy, strcat, and memcpy) include checks for buffer overruns when buffer sizes can be determined at compile time. This feature is only available for applications compiled with gcc for ARM processors.

The recommended way of using Bionic is with the Android Native Development Kit.

Bluetooth profile

A Bluetooth profile is a specification regarding an aspect of Bluetooth-based wireless communication between devices. In order to use Bluetooth technology, a device must be compatible with the subset of Bluetooth profiles necessary to use the desired services. A Bluetooth profile resides on top of the Bluetooth Core Specification and (optionally) additional protocols. While the profile may use certain features of the core specification, specific versions of profiles are rarely tied to specific versions of the core specification. For example, there are Hands-Free Profile (HFP) 1.5 implementations using both Bluetooth 2.0 and Bluetooth 1.2 core specifications.

The way a device uses Bluetooth technology depends on its profile capabilities. The profiles provide standards which manufacturers follow to allow devices to use Bluetooth in the intended manner. For the Bluetooth low energy stack according to Bluetooth V4.0 a special set of profiles applies.

At a maximum, each profile specification contains information on the following topics:

Dependencies on other formats

Suggested user interface formats

Specific parts of the Bluetooth protocol stack used by the profile. To perform its task, each profile uses particular options and parameters at each layer of the stack. This may include an outline of the required service record, if appropriate.

CyanogenMod

CyanogenMod is an open source replacement firmware for smart phones and tablet computers based on the Android mobile operating system. It offers features and options not found in the official firmware distributed by vendors of these devices.

Features supported by CyanogenMod include native theming support, FLAC audio codec support, a large Access Point Name list, an OpenVPN client, an enhanced reboot menu, support for Wi-Fi, Bluetooth, and USB tethering, CPU overclocking and other performance enhancements, soft buttons and other "tablet tweaks", toggles in the notification pull-down (such as Wi-Fi, Bluetooth and GPS), app permissions management, as well as other interface enhancements. According to its developers, CyanogenMod does not contain spyware or bloatware. CyanogenMod is also stated to increase performance and reliability compared with official firmware releases.

CyanogenMod is developed as free and open source software based on the official releases of Android by Google, with added original and third-party code.

Although only a subset of total CyanogenMod users elect to report their use of the firmware, as of 30 March 2013, CyanogenMod has recorded over four million active installs on a multitude of devices.

Dalvik

Dalvik is the process virtual machine (VM) in Google's Android operating system. It is the software that runs the apps on Android devices. Dalvik is thus an integral part of Android, which is typically used on mobile devices such as mobile phones and tablet computers as well as more recently on embedded devices such as smart TVs and media streamers. Programs are commonly written in Java and compiled to bytecode. They are then converted from Java Virtual Machine-compatible .class files to Dalvik-compatible .dex (Dalvik Executable) files before installation on a device. The compact Dalvik Executable format is designed to be suitable for systems that are constrained in terms of memory and processor speed.

db4o (database for objects)

db4o (database for objects) is an embeddable open source object database for Java and .NET developers. It is developed, commercially licensed and supported by Versant.

db4o is written in Java and .NET and provides the respective APIs. db4o can run on any operating system that supports Java or .NET. db4o is offered under multiple licenses, including the GNU General Public License (GPL), the db4o Opensource Compatibility License (dOCL), and a commercial license for use in proprietary software.

Eclipse

In computer programming, Eclipse is a multi-language software development environment comprising a base workspace and an extensible plug-in system for customizing the environment. It is written mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Fortran, Haskell, JavaScript, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy, Scheme, and Erlang. It can also be used to develop packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others.

Embedded Java

In discussions of Java ME specifications, such as the CDC/CLDC device capability sets and the MIDP profile definition, attention needs to be given to Embedded Java, which additionally requires very specialized, optimized JVMs, and the means to update the installed software and services such as OSGi.

Recent developments in the field are

In January 2013, STMicroelectronics announced full Java support for STM32 F3/F4-series microcontrollers STM32 and stm32java

In March 2013, MicroEJ product line from IS2T for ARM Cortex-M (all RTOS), ARM Cortex-A (Linux, Integrity, VxWorks), ARM7-TDMI (all RTOS), ARM9 (Linux, Integrity), AVR32 UC3 (all RTOS), V850 (all RTOS).

Before 2012, the Squawk Virtual Machine, a JVM developed by Sun Microsystems and deployed as part of Project Sun SPOT.

The principal difference between Embedded Java and the several Java ME configurations is that the former is envisioned for use only in closed systems. That is, Embedded Java is for use in products that cannot be upgraded in the field. All of the Java code in these embedded systems is contained in flash memory. Thus the only class libraries that need to be present are the very methods and fields actually used by the Java application code; all the rest can be prestripped from the statically linked executable.

Embedded Linux

Embedded Linux is the use of Linux in embedded computer systems such as mobile phones, personal digital assistants (PDA), media players, set-top boxes, and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments.

Android has embedded linux

Java (programming language)

Java is a general-purpose, concurrent, class-based, object-oriented computer programming language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2012, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 10 million users.[10][11] Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1991 and first released in 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Classpath.

Mobile application development

Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications can be pre-installed on phones during manufacturing, downloaded by customers from various mobile software distribution platforms, or delivered as web applications using server-side or client-side processing (e.g. JavaScript) to provide an "application-like" experience within a Web browser. Application software developers also have to consider a lengthy array of screen sizes, hardware specifications and configurations because of intense competition in mobile software and changes within each of the platforms.