HOME
The Info List - Native Development Kit


--- Advertisement ---



Android software development
Android software development
is the process by which new applications are created for devices running the Android operating system. Officially[3], apps can be written using Java, C++
C++
or Kotlin using the Android software development
Android software development
kit (SDK). Third party tools, development environments and language support have also continued to evolve and expand since the initial SDK was released in 2008.

Contents

1 Official development tools

1.1 Android SDK

1.1.1 Android Debug Bridge 1.1.2 Fastboot

1.2 Android NDK 1.3 Android Open Accessory Development Kit 1.4 Native Go support

2 External hardware development 3 Third-party development tools

3.1 AIDE 3.2 Android::Build 3.3 App Inventor for Android 3.4 Basic4android 3.5 Coreliu 3.6 Corona SDK 3.7 Delphi 3.8 DroidScript 3.9 HyperNext
HyperNext
Android Creator 3.10 Kivy 3.11 Lazarus 3.12 Processing 3.13 Qt for Android 3.14 RubyMotion 3.15 SDL 3.16 Stripe Android 3.17 Visual Studio
Visual Studio
Emulator
Emulator
for Android 3.18 Xamarin

4 Android Developer Challenge 5 Community-based distributions 6 Java standards 7 History and market share 8 See also 9 References 10 Bibliography 11 External links

Official development tools[edit] Android SDK[edit]

Android SDK

Developer(s) Google

Initial release October 2009; 8 years ago (2009-10)

Stable release

26.0 / March 2017; 1 year ago (2017-03)[4]

Written in Java

Operating system Cross-platform

Available in English

Type IDE, SDK

Website developer.android.com/tools/sdk/eclipse-adt.html, developer.android.com/sdk/index.html

The Android software development
Android software development
kit (SDK) includes a comprehensive set of development tools.[5] These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux
Linux
(any modern desktop Linux
Linux
distribution), Mac OS X 10.5.8 or later, and Windows 7
Windows 7
or later. As of March 2015[update], the SDK is not available on Android itself, but software development is possible by using specialized Android applications.[6][7][8] Until around the end of 2014, the officially supported integrated development environment (IDE) was Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA
IntelliJ IDEA
IDE (all editions) fully supports Android development out of the box,[9] and NetBeans
NetBeans
IDE also supports Android development via a plugin.[10] As of 2015, Android Studio,[11] made by Google
Google
and powered by IntelliJ, is the official IDE; however, developers are free to use others, but Google
Google
made it clear that ADT was officially deprecated since the end of 2015 to focus on Android Studio as the official Android IDE.[12] Additionally, developers may use any text editor to edit Java and XML files, then use command line tools ( Java Development Kit and Apache Ant
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).[13][6] Enhancements to Android's SDK go hand in hand with the overall Android platform development. The SDK also supports older versions of the Android platform in case developers wish to target their applications at older devices. Development tools are downloadable components, so after one has downloaded the latest version and platform, older platforms and tools can also be downloaded for compatibility testing.[14] Android applications are packaged in .apk format and stored under /data/app folder on the Android OS (the folder is accessible only to the root user for security reasons). APK package contains .dex files[15] (compiled byte code files called Dalvik executables), resource files, etc. Android Debug Bridge[edit] The Android Debug Bridge
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,[16] although numerous graphical user interfaces exist to control ADB. The format for issuing commands through the ADB is typically:

adb [-d-e-s <serialNumber>] <command> where -d is the option for specifying the USB-attached device, -e for indicating a running Android emulator on the computer, -s for specifying either one by its adb-assigned serial number. If there is only one attached device or running emulator, these options are not necessary.

For example, Android applications can be saved by the command backup to a file, whose name is backup.ab by default.[17] 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".[18] Fastboot[edit] "Fastboot" redirects here. For the PC fast booting ability, see Instant-on. Fastboot
Fastboot
is a diagnostic protocol included with the SDK package used primarily to modify the flash filesystem via a USB
USB
connection from host computer. It requires that the device be started in a boot loader or Secondary Program Loader
Secondary Program Loader
mode, in which only the most basic hardware initialization is performed. After enabling the protocol on the device itself, it will accept a specific set of commands sent to it via USB
USB
using a command line. Some of the most commonly used fastboot commands include:

flash – rewrites a partition with a binary image stored on the host computer erase – erases a specific partition reboot – reboots the device into either the main operating system, the system recovery partition or back into its boot loader devices – displays a list of all devices (with the serial number) connected to the host computer format – formats a specific partition; the file system of the partition must be recognized by the device

Android NDK[edit]

Android NDK

Developer(s) Google

Initial release June 2009; 8 years ago (2009-06)[19]

Stable release

15 / June 2017; 10 months ago (2017-06)[19]

Written in C and C++

Operating system

Windows Vista
Windows Vista
and later OS X 10.10
OS X 10.10
and later Linux

Platform IA-32 ( Windows
Windows
only) or x86-64 (macOS and Linux)

Available in English

Type SDK

Website developer.android.com/tools/sdk/ndk/index.html

Libraries written in C/ C++
C++
can be compiled to ARM, MIPS or x86 native code (or their 64-bit variants) and installed using the Android Native Development Kit (NDK). These native libraries can be called from Java code running under the Dalvik VM
Dalvik VM
using the System.loadLibrary call, which is part of the standard Android Java classes.[20][21] Complete applications can be compiled and installed using traditional development tools.[22] However, according to the Android documentation, NDK should not be used solely because the developer prefers to program in C/C++, as using NDK increases complexity while most applications would not benefit from using it.[23] The[24]ADB Debugger
Debugger
gives a root shell under the Android Emulator which allows ARM, MIPS or x86 native code to be uploaded and executed. Native code
Native code
can be compiled using Clang
Clang
or GCC on a standard PC. Running native code is complicated by Android's use of a non-standard C library (libc, known as Bionic). The graphics library that Android uses to arbitrate and control access to this device is called the Skia Graphics Library (SGL), and it has been released under an open source licence.[25] Skia has backends for both Win32 and Unix, allowing the development of cross-platform applications, and it is the graphics engine underlying the Google Chrome web browser.[26] Skia is not an NDK API, though, and NDK developers use OpenGL. It is possible to use the Android Studio with Gradle
Gradle
to develop NDK projects.[27] Other third-party tools allow integrating the NDK into Eclipse[28] and Visual Studio.[29] Android Open Accessory Development Kit[edit] The Android 3.1 platform (also backported to Android 2.3.4) introduces Android Open Accessory support, which allows external USB
USB
hardware (an Android USB
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
USB
host (powers the bus and enumerates devices) and the Android-powered device acts as the USB
USB
device. Android USB
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.[30] Native Go support[edit] Since version 1.4 of the Go programming language, writing applications for Android is supported without requiring any Java code, although with a restricted set of Android APIs.[31] External hardware development[edit] Development tools intended to help an Android device interact with external electronics include IOIO, Android Open Accessory Development Kit, Microbridge, Triggertrap, etc. Third-party development tools[edit] AIDE[edit]

AIDE (Android application), An Android app that allows Android apps development directly using the device. It compiles and installs the created app in the device.

Android::Build[edit] Android::Build is a Perl
Perl
CPAN
CPAN
module which enables callers to build an Android APK file using only the basic command line tools: aapt, dx, javac, jarsigner, zipalign without having to rely on either Ant
Ant
or Gradle. This reduced dependency set simplifies continuous release systems which rely on fully automated remote app generation and testing. App Inventor for Android[edit] Main article: Google
Google
App Inventor On July 12, 2010, Google
Google
announced the availability of App Inventor for Android, a Web-based visual development environment for novice programmers, based on MIT's Open Blocks Java library and providing access to Android devices' GPS, accelerometer and orientation data, phone functions, text messaging, speech-to-text conversion, contact data, persistent storage, and Web services, initially including Amazon and Twitter.[32] "We could only have done this because Android’s architecture is so open," said the project director, MIT's Hal Abelson.[33] Under development for over a year,[34] the block-editing tool has been taught to non-majors in computer science at Harvard, MIT, Wellesley, Trinity College (Hartford,) and the University of San Francisco, where Professor David Wolber developed an introductory computer science course and tutorial book for non-computer science students based on App Inventor for Android.[35][36] In the second half of 2011, Google
Google
released the source code, terminated its Web service, and provided funding for the creation of The MIT Center for Mobile Learning, led by the App Inventor creator Hal Abelson
Hal Abelson
and fellow MIT professors Eric Klopfer and Mitchel Resnick.[37] Latest version created as the result of Google–MIT collaboration was released in February 2012, while the first version created solely by MIT was launched in March 2012[38] and upgraded to App Inventor 2 in December 2013.[39] As of 2014, App inventor is now maintained by MIT. Basic4android[edit] Basic4android is a commercial product similar to Simple.[40] It is inspired by Microsoft Visual Basic 6
Visual Basic 6
and Microsoft Visual Studio. It makes android programming much simpler for regular Visual Basic programmers who find coding in Java difficult. Basic4android is very active, Coreliu[edit] Coreliu enables non technical users to write immersive educational apps which run natively on Android devices.[41] App authors use a file held in a GitHub repository to describe the images and text to be used in the app. Speech is generated from the text via Amazon Web Services Polly. Coreliu packages the photos and generated speech into an Android APK file that the author can distribute freely using a Creative Commons License. Corona SDK[edit] Corona SDK
Corona SDK
is a software development kit (SDK) created by Walter Luh, founder of Corona Labs Inc.. Corona SDK
Corona SDK
allows software programmers to build mobile applications for iPhone, iPad and Android devices. Corona lets developers build graphic applications by using its integrated Lua language, which is layered on top of C++/OpenGL. The SDK uses a subscription-based purchase model, without requiring any per-application royalties and imposes no branding requirements. Delphi[edit] Delphi can also be used for creating Android application in the Object Pascal language. The latest release is Delphi 10 Seattle, developed by Embarcadero.[42] User interfaces are developed using the cross-platform GUI framework Firemonkey. Additionally, non-visual components for interaction with the various sensors (like Camera, Gyroscope, GPS and Bluetooth etc.) are available. Other services, such as access to certain keyboard events, are available in a platform-independent manner as well; this is done using interfaces. The compiler is based on the LLVM
LLVM
architecture, and debugging from IDE is possible. The generated apps are based on the NDK, but in contrast to Xamarin, the runtime is compiled into the application itself. DroidScript[edit] A rapid application development tool for developing native Android applications using JavaScript. This tool can be used directly on the mobile device or via a browser based IDE connected to the device via WiFi. It makes use of Google’s Chrome V8
Chrome V8
JavaScript
JavaScript
engine. HyperNext
HyperNext
Android Creator[edit] HyperNext
HyperNext
Android Creator (HAC) is a software development system aimed at beginner programmers that can help them create their own Android apps without knowing Java and the Android SDK. It is based on HyperCard
HyperCard
that treated software as a stack of cards with only one card being visible at any one time and so is well suited to mobile phone applications that have only one window visible at a time. HyperNext Android Creator's main programming language is simply called HyperNext and is loosely based on Hypercard's HyperTalk language. HyperNext
HyperNext
is an interpreted English-like language and has many features that allow creation of Android applications. It supports a growing subset of the Android SDK
Android SDK
including its own versions of the GUI control types and automatically runs its own background service so apps can continue to run and process information while in the background. Kivy[edit] Kivy is an open source Python library for developing multitouch application software with a natural user interface (NUI) for a wide selection of devices. Kivy provides the possibility of maintaining a single application for numerous operating systems ("code once, run everywhere"). Kivy has a custom-built deployment tool for deploying mobile applications called Buildozer, which is available only for Linux. Buildozer is currently alpha software, but is far less cumbersome than older Kivy deployment methods. Applications programmed with Kivy can be submitted to any Android mobile application distribution platform.[citation needed] Lazarus[edit] The Lazarus IDE may be used to develop Android applications using Object Pascal (and other Pascal dialects), based on the Free Pascal compiler starting from version 2.7.1. Processing[edit] The Processing environment, which also uses the Java language, has supported an Android mode since version 1.5; integration with device camera and sensors is possible using the Ketai library. Qt for Android[edit] Qt for Android enables Qt 5 applications to run on devices with Android v2.3.3 (API level 10) or later.[43] Qt is a cross-platform application framework which can target platforms such as Android, Linux, iOS, Sailfish OS
Sailfish OS
and Windows. Qt application development is done in standard C++
C++
and QML, requiring both the Android NDK
Android NDK
and SDK.[44] Qt Creator
Qt Creator
is the integrated development environment provided with the Qt Framework for multi-platform application development. RubyMotion[edit] RubyMotion is a toolchain to write native mobile apps in Ruby. As of version 3.0, RubyMotion supports Android. RubyMotion Android apps can call into the entire set of Java Android APIs from Ruby, can use 3rd-party Java libraries, and are statically compiled into machine code.[45] SDL[edit] The SDL library offers also a development possibility beside Java, allowing the development with C and the simple porting of existing SDL and native C applications. By injection of a small Java shim and JNI the usage of native SDL code is possible,[46] allowing Android ports like e.g. the Jagged Alliance 2
Jagged Alliance 2
video game.[47] Stripe Android[edit] As for this payment framework, it substantially simplifies the development process as developers don't need to send card data outright to their server. Framework sends data to Stripe servers where they can be converted to tokens afterward. Android app receives its token and sends it to its server to process the payment.[48] Visual Studio
Visual Studio
Emulator
Emulator
for Android[edit] Microsoft shipped in 2015 a free stand-alone emulator for Android, dubbed Visual Studio
Visual Studio
Emulator
Emulator
for Android.[49] The emulator supports installation of Google
Google
Play through a drag-and-drop interface.[50] It can work in conjunction with Visual Studio, which supports cross-platform development, letting C++
C++
developers create projects from templates for Android native-activity applications, or create high-performance shared libraries to include in other solutions. Its features include platform-specific IntelliSense, breakpoints, device deployment and emulation.[51] Xamarin[edit] With a C# shared codebase, developers can use Xamarin
Xamarin
to write native iOS, Android, and Windows
Windows
apps with native user interfaces and share code across multiple platforms. Android Developer Challenge[edit] Main article: Android Developer Challenge The Android Developer Challenge
Android Developer Challenge
was a competition to find the most innovative application for Android. Google
Google
offered prizes totaling 10 million US dollars, distributed between ADC I and ADC II. ADC I accepted submissions from January 2 to April 14, 2008. The 50 most promising entries, announced on May 12, 2008, each received a $25,000 award to further development.[52][53] It ended in early September with the announcement of ten teams that received $275,000 each, and ten teams that received $100,000 each.[54] ADC II was announced on May 27, 2009.[55] The first round of the ADC II closed on October 6, 2009.[56] The first-round winners of ADC II comprising the top 200 applications were announced on November 5, 2009. Voting for the second round also opened on the same day and ended on November 25. Google
Google
announced the top winners of ADC II on November 30, with SweetDreams, What the Doodle!? and WaveSecure being nominated the overall winners of the challenge.[57][58] Community-based distributions[edit] See also: List of custom Android distributions There is a community of open-source enthusiasts that build and share Android-based distributions (i.e. firmware) with a number of customizations and additional features, such as FLAC
FLAC
lossless audio support and the ability to store downloaded applications on the microSD card.[59] This usually involves rooting the device. Rooting allows users root access to the operating system, enabling full control of the phone. Rooting has several disadvantages as well, including increased risk of hacking, high chances of bricking, losing warranty, increased virus attack risks, etc.[60] It is also possible to install custom firmware, although the device's boot loader must also be unlocked. Custom firmware allows users of older phones to use applications available only on newer releases.[61] Those firmware packages are updated frequently, incorporate elements of Android functionality that haven't yet been officially released within a carrier-sanctioned firmware, and tend to have fewer limitations. CyanogenMod
CyanogenMod
and OMFGB are examples of such firmware. On September 24, 2009, Google
Google
issued a cease and desist letter[62] to the modder Cyanogen, citing issues with the re-distribution of Google's closed-source applications[63] within the custom firmware. Even though most of Android OS is open source, phones come packaged with closed-source Google
Google
applications for functionality such as the Google
Google
Play and GPS navigation. Google
Google
has asserted that these applications can only be provided through approved distribution channels by licensed distributors. Cyanogen has complied with Google's wishes and is continuing to distribute this mod without the proprietary software. It has provided a method to back up licensed Google
Google
applications during the mod's install process and restore them when the process is complete.[64] Java standards[edit] Obstacles to development include the fact that Android does not use established Java standards, that is, Java SE and ME. This prevents compatibility between Java applications written for those platforms and those written for the Android platform. Android only reuses the Java language syntax and semantics, but it does not provide the full class libraries and APIs bundled with Java SE or ME.[65] However, there are multiple tools in the market from companies such as Myriad Group and UpOnTek that provide Java ME to Android conversion services.[66][67][68] History and market share[edit]

The "Sooner" prototype phone,[69] prior to "Dream"

Android was created by the Open Handset Alliance, which is led by Google. The early feedback on developing applications for the Android platform was mixed.[70] Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issue-tracking system. ( Google
Google
announced an issue tracker on January 18, 2008.)[71] In December 2007, MergeLab mobile startup founder Adam MacBeth stated, "Functionality is not there, is poorly documented or just doesn't work... It's clearly not ready for prime time."[72] Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the Snake game.[73][74] A preview release of the Android SDK
Android SDK
was released on November 12, 2007. On July 15, 2008, the Android Developer Challenge
Android Developer Challenge
Team accidentally sent an email to all entrants in the Android Developer Challenge announcing that a new release of the SDK was available in a "private" download area. The email was intended for winners of the first round of the Android Developer Challenge. The revelation that Google
Google
was supplying new SDK releases to some developers and not others (and keeping this arrangement private) led to widely reported frustration within the Android developer community at the time.[75] On August 18, 2008, the Android 0.9 SDK beta was released. This release provided an updated and extended API, improved development tools and an updated design for the home screen. Detailed instructions for upgrading are available to those already working with an earlier release.[76] On September 23, 2008, the Android 1.0 SDK (Release 1) was released.[77] According to the release notes, it included "mainly bug fixes, although some smaller features were added." It also included several API changes from the 0.9 version. Multiple versions have been released since it was developed .[78] On December 5, 2008, Google
Google
announced the first Android Dev Phone, a SIM-unlocked and hardware-unlocked device that is designed for advanced developers. It was a modified version of HTC's Dream phone. While developers can use regular consumer devices to test and use their applications, some developers may choose a dedicated unlocked or no-contract device. As of July 2013[update], more than one million applications have been developed for Android,[79] with over 25 billion downloads.[80][81] A June 2011 research indicated that over 67% of mobile developers used the platform, at the time of publication.[82] In Q2 2012, around 105 million units of Android smartphones were shipped which acquires a total share of 68% in overall smartphones sale till Q2 2012.[83] See also[edit]

Android Studio List of free and open source Android applications Rooting (Android OS)

References[edit]

^ "The Android Source Code". source.android.com. Retrieved February 2, 2017.  ^ Syed H (September 24, 2012). "Editorial: Why You Should Go Nexus". Droid Lessons. Retrieved April 17, 2013.  ^ Android Developers Application Fundamentals ^ "SDK Tools Android Developers". Developer.android.com. Retrieved March 13, 2017.  ^ "Tools Overview". Android Developers. July 21, 2009.  ^ a b appfour. "AIDE- IDE for Android Java C++
C++
- Android Apps on Google
Google
Play". google.com.  ^ gesturedevelop. "Java Editor - Android Apps on Google
Google
Play". google.com.  ^ Tanapro GmbH, Tom Arn. "JavaIDEdroid - Android Apps on Google
Google
Play". google.com.  ^ "IntelliJ Android Development". Retrieved September 19, 2012.  ^ "NBAndroid Plugin". Retrieved September 19, 2012.  ^ "Android Studio".  ^ Eason, Jamal (June 26, 2015). "An update on Eclipse Android Developer Tools". Android Developers Blog. Google. Retrieved March 25, 2017.  ^ Westfall, Jon (August 25, 2009). " Backup
Backup
& Restore Android Apps Using ADB". JonWestfall.com. Retrieved December 7, 2009.  ^ "SDK Tools".  ^ " Android SDK
Android SDK
Glossary".  ^ " Android Debug Bridge
Android Debug Bridge
Android Developers" Accessed December 27, 2012 ^ Jack Wallen (2015-03-06). "How to create a full backup of your Android device without root". Retrieved 2016-01-29.  ^ Lemos, Robert "Open source vulnerabilities paint a target on Android"[permanent dead link] March 25, 2011, accessed December 27, 2012 ^ a b " Android NDK
Android NDK
Android Developers". Developer.android.com. November 13, 2012. Retrieved March 13, 2014.  ^ Srinivas, Davanum (December 9, 2007). "Android — Invoke JNI based methods (Bridging C/ C++
C++
and Java)". Archived from the original on December 16, 2008. Retrieved December 13, 2008.  ^ "java.lang.System". Android Developers. Retrieved September 3, 2009.  ^ Leslie, Ben (November 13, 2007). "Native C application for Android". Benno's blog. Archived from the original on September 13, 2009. Retrieved September 4, 2009.  ^ " Android NDK
Android NDK
Android Developers". Developer.android.com. November 13, 2012. Retrieved June 17, 2014.  ^ https://developer.android.com/studio/command-line/adb.html ^ "Skia source".  ^ Toker, Alp (September 6, 2008). "Skia graphics library in Chrome: First impressions". Archived from the original on December 16, 2008. Retrieved December 13, 2008.  ^ "Tutorial Android: Como configurar o NDK no Android Studio com Gradle
Gradle
e um exemplo".  ^ "Using Eclipse for Android C/ C++
C++
Development".  ^ "Tutorial: Android Native Development with Visual Studio".  ^ "Accessory Development Kit Android Developers". Developer.android.com. Retrieved October 2, 2012.  ^ "Package app, which lets you write Apps for Android (and eventually, iOS)". Retrieved 2015-06-09. There are two ways to use Go in an Android App. The first is as a library called from Java, the second is to use a restricted set of features but work entirely in Go.[..] An app can be written entirely in Go. This results in a significantly simpler programming environment (and eventually, portability to iOS), however only a very restricted set of Android APIs are available. The provided interfaces are focused on games. It is expected that the app will draw to the entire screen (via OpenGL, see the go.mobile/gl package), and that none of the platform's screen management infrastructure is exposed. On Android, this means a native app is equivalent to a single Activity (in particular a NativeActivity) and on iOS, a single UIWindow. Touch events will be accessible via this package. When Android support is out of preview, all APIs supported by the Android NDK
Android NDK
will be exposed via a Go package.  ^ Claburn, Thomas (July 12, 2010). " Google
Google
App Inventor Simplifies Android Programming". Information Week. Archived from the original on July 15, 2010. Retrieved July 12, 2010.  ^ Lohr, Steve (July 11, 2010). "Google's Do-It-Yourself App Creation Software". New York Times. Archived from the original on July 15, 2010. Retrieved July 12, 2010.  ^ Abelson, Hal (July 31, 2009). "App Inventor for Android". Google Research Blog. Archived from the original on August 7, 2010. Retrieved July 12, 2010.  ^ Kim, Ryan (December 11, 2009). " Google
Google
brings app-making to the masses". San Francisco Chronicle. Archived from the original on July 17, 2010. Retrieved July 12, 2010.  ^ Wolber, David. "AppInventor.org". Archived from the original on July 15, 2010. Retrieved July 12, 2010.  ^ Hardesty, Larry (August 19, 2010). "The MIT roots of Google's new software". MIT News Office. Retrieved October 1, 2015.  ^ Clark, Andrew (December 30, 2013). "App Inventor launches second iteration".  ^ "App Inventor Classic Explore MIT App Inventor". Appinventor.mit.edu. December 3, 2013. Retrieved March 13, 2014.  ^ "Basic4android".  ^ "Coreliu".  ^ "Delphi Xe7".  ^ "Qt for Android".  ^ "Qt Wiki : Android".  ^ "Announcing RubyMotion 3.0: Android Platform and More".  ^ " Simple DirectMedia Layer
Simple DirectMedia Layer
for Android". sdl.org. August 12, 2012. Archived from the original on June 4, 2012. Retrieved September 9, 2012. How the port works, - Android applications are Java-based, optionally with parts written in C, - As SDL apps are C-based, we use a small Java shim that uses JNI to talk to the SDL library, - This means that your application C code must be placed inside an android Java project, along with some C support code that communicates with Java, - This eventually produces a standard Android .apk package  ^ JA2 Stracciatella Feedback " Jagged Alliance 2
Jagged Alliance 2
Android Stracciatella Port RC2 Release - please test Archived October 23, 2012, at the Wayback Machine. on the Bear's Pit Forum, October 3, 2011 ^ "Stripe Android SDK".  ^ Mike Williams (July 21, 2015), "Microsoft ships stand-alone Android Emulator", Betanews, retrieved March 14, 2018  ^ Rob Prouse (February 2, 2017), Installing Google
Google
Play (GApps) on Visual Studio
Visual Studio
Android Emulators (2017 version), retrieved March 14, 2018  ^ "Visual C++
C++
Cross-Platform Mobile". Retrieved May 27, 2015.  ^ Chen, Jason (May 12, 2008). "The Top 50 Applications". Android Developers Blog. Archived from the original on September 25, 2009. Retrieved September 4, 2009.  ^ Brown, Eric (May 13, 2008). " Android Developer Challenge
Android Developer Challenge
announces first-round winners". Linux
Linux
for Devices. Archived from the original on May 14, 2008.  ^ "ADC I Top 50 Gallery". Android Developer Challenge. Retrieved May 19, 2009.  ^ "Android Developer Challenge". Google
Google
Code. Retrieved January 11, 2008.  ^ Chu, Eric (October 6, 2009). "ADC 2 Round 1 Scoring Complete". Android Developers Blog. Archived from the original on November 1, 2009. Retrieved November 3, 2009.  ^ "ADC 2 Overall Winners". Android Developer Challenge. Google. Archived from the original on January 4, 2011. Retrieved December 5, 2010.  ^ Kharif, Olga (November 30, 2009). " Android Developer Challenge
Android Developer Challenge
2 Winners Announced". BusinessWeek. Retrieved December 5, 2010.  ^ "Dream android development". xda-developers forum. Retrieved September 11, 2009.  ^ "Rooting: Advantages and Disadvantages". ITCSE forum. Retrieved September 21, 2013.  ^ "Android 2.1 from Motorola Droid Ported to G1". Volt Mobile. March 10, 2010.  ^ Wimberly, Taylor (September 24, 2009). " CyanogenMod
CyanogenMod
in trouble?". Android and me. Archived from the original on October 3, 2009. Retrieved September 26, 2009.  ^ Morrill, Dan (September 25, 2009). "A Note on Google
Google
Apps for Android". Android Developers Blog. Archived from the original on October 25, 2009. Retrieved September 26, 2009.  ^ "The current state..." CyanogenMod
CyanogenMod
Android Rom. September 27, 2009. Archived from the original on November 3, 2009. Retrieved September 27, 2009.  ^ van Gurp, Jilles (November 13, 2007). " Google
Google
Android: Initial Impressions and Criticism". Javalobby. Retrieved March 7, 2009. Frankly, I don't understand why Google
Google
intends to ignore the vast amount of existing implementation out there. It seems like a bad case of "not invented here" to me. Ultimately, this will slow adoption. There are already too many Java platforms for the mobile world and this is yet another one  ^ "Myriad's New J2Android Converter Fuels Android Applications Gold Rush". March 19, 2010.  ^ "J2Android hopes you don't know that Android is Java-based". March 23, 2010. On the other hand, you might think this is kind of a scam aimed at developers who don't really understand the nature of the platform they're targeting. My biggest complaint is that you'd think that Mikael Ricknäs, the IDG News Service reporter who wrote the first story linked to above (who toils for the same company that publishes JavaWorld), would have at least mentioned the relationship between Java and Android to make the oddness of this announcement clear.  ^ "Myriad CTO: J2Android moves MIDlets to "beautiful" Android framework". March 31, 2010. We will have to wait and see exactly how much pickup J2Android actually sees. The tool isn't actually available on the open market just yet; while Schillings spoke optimistically about "converting 1,000 MIDlets in an afternoon," at the moment they're working with a few providers to transform their back catalogs. So those of you out there hoping to avoid learning how to write Android code may have to wait a while.  ^ Richard Devine (May 6, 2012). " Google
Google
Sooner prototype appears, shows off one Google's first prototype builds of Android". androidcentral.com. Retrieved March 1, 2015.  ^ Paul, Ryan (December 19, 2007). "Developing apps for Google
Google
Android: it's a mixed bag". Ars Technica. Archived from the original on December 20, 2007. Retrieved December 19, 2007.  ^ Morrill, Dan (January 18, 2008). "You can't rush perfection, but now you can file bugs against it". Android Developers Blog. Retrieved September 3, 2009.  ^ Morrison, Scott (December 19, 2007). "Glitches Bug Google's Android Software". The Wall Street Journal. Retrieved December 19, 2007.  ^ "Snake". Android Freeware Directory. Retrieved January 26, 2008.  ^ "First Android Application — Snake". Mobiles2day. November 14, 2007. Retrieved January 7, 2008.  ^ Metz, Cade (July 14, 2008). " Google
Google
plays Hide and Seek with Android SDK". The Register. Archived from the original on October 6, 2008. Retrieved October 23, 2008.  ^ "Android — An Open Handset Alliance
Open Handset Alliance
Project: Upgrading the SDK". Archived from the original on September 13, 2008. Retrieved October 24, 2008.  ^ "Other SDK Releases". Android Developers. Retrieved September 2, 2009.  ^ "SDK Archives".  ^ " Google
Google
Play Hits 1 Million Apps". Mashable. July 24, 2013.  ^ "Android App Stats". Archived from the original on January 2, 2011. Retrieved December 31, 2010.  ^ Leena Rao (April 14, 2011). "Google: 3 Billion Android Apps Installed; Downloads Up 50 Percent From Last Quarter". Techcrunch. Archived from the original on April 25, 2011. Retrieved May 13, 2011.  ^ "Developer Economics 2011".  ^ "IDC- Article Not Found". idc.com. Archived from the original on June 3, 2013. 

Bibliography[edit]

Ed, Burnette (July 13, 2010). Hello, Android: Introducing Google's Mobile Development Platform (3rd ed.). Pragmatic Bookshelf. ISBN 978-1-934356-56-2.  Ableson, Frank; Sen, Robi; King, Chris (January 2011). Android in Action, Second Edition (2nd ed.). Manning. ISBN 978-1-935182-72-6.  Conder, Shane; Darcey, Lauren (July 24, 2012). Android Wireless Application Development Volume II: Advanced Topics (3rd ed.). Addison-Wesley Professional. ISBN 0-321-81384-7.  Murphy, Mark (June 26, 2009). Beginning Android (1st ed.). Apress. ISBN 1-4302-2419-3.  Meier, Reto (March 2010). Professional Android 2 Application Development (1st ed.). Wrox Press. ISBN 978-0-470-56552-0.  Haseman, Chris (July 21, 2008). Android Essentials (1st ed.). Apress. ISBN 1-4302-1064-8.  Clifton, Ian (August 3, 2012). The Essentials of Android Application Development LiveLessons (Video Training) (1st ed.). Addison-Wesley Professional. ISBN 0-13-299658-8. 

External links[edit]

Wikibooks has a book on the topic of: Android

Android Developers Building for devices at source.android.com Android Debug Bridge
Android Debug Bridge
- developer.android.com Official Android issue tracker

v t e

Android

Software development Category

Official development tools

Software Development Kit (SDK)

Android Debug Bridge
Android Debug Bridge
(ADB) Fastboot Android application package
Android application package
(APK)

Native Development Kit (NDK) Android Open Accessory Development Kit Bionic RenderScript Skia Dalvik Android Runtime
Android Runtime
(ART) Firebase

Google
Google
Cloud Messaging (GCM) Firebase Cloud Messaging (FCM)

AdMob Material Design Fonts

Droid Roboto Noto

Google
Google
Developers

Other development tools

OpenBinder Apache Harmony OpenJDK Gradle

Integrated development environments (IDE)

Android Studio

IntelliJ IDEA

Eclipse

Android Development Tools (ADT)

App Inventor

Languages & Databases

Java Kotlin XML C C++ SQLite

Virtual reality

Cardboard Daydream

Events & Communities

Google
Google
I/O Developer Challenge Developer Lab Android Open Source Project
Android Open Source Project
(AOSP)

Releases

1.0 1.1 Cupcake (1.5) Donut (1.6) Eclair (2.0–2.1) Froyo (2.2) Gingerbread (2.3) Honeycomb (3.x) Ice Cream Sandwich (4.0) Jelly Bean (4.1–4.3) KitKat (4.4) Lollipop (5.x) Marshmallow (6.0) Nougat (7.x) Oreo (8.x) P

Derivatives

Android Auto Android Things Android TV Wear OS

Smartphones & Tablets

Google
Google
Pixel

Pixel & Pixel XL Pixel 2
Pixel 2
& Pixel 2
Pixel 2
XL Pixel C

Nexus devices

Nexus One Nexus S Galaxy Nexus Nexus 4 Nexus 5 Nexus 5X Nexus 6 Nexus 6P Nexus 7

2012 version 2013 version

Nexus 10 Nexus 9 Nexus Q Nexus Player

Google
Google
Play edition

HTC One (M7) HTC One (M8) LG G Pad 8.3 Moto G Samsung Galaxy S4 Sony Xperia Z Ultra

Android One

Customized variants

Android-x86

Remix OS

AOKP Baidu Yi Barnes & Noble Nook ColorOS CopperheadOS CyanogenMod Fire OS Funtouch OS Flyme OS LeWa OS LineageOS MIUI Nokia X software platform OPhone OmniROM OxygenOS Replicant Ubuntu for Android XobotOS Yun OS

Applications

Assistant

Google
Google
Now

Earth Gmail Google
Google
Chrome for Android Goggles Hangouts Maps

Navigation

Pay

Send

Play

Books Games Movies & TV Music Newsstand

Sky Talk Voice

APIs

Google
Google
Maps Google
Google
Play Services Google
Google
Search

Alternative user interfaces

Asus Zen UI Hive UI HTC Sense Google
Google
Pixel UI LG UX
LG UX
(Optimus UI) Samsung Experience
Samsung Experience
(Samsung TouchWiz) Huawei EMUI

Lists

Custom firmware Features Free and open-source applications Games Google
Google
apps Launchers

Related topics

Index of articles Google Androidland Lawn statues Chromecast Java vs. Android API Legal issues

Oracle America, Inc. v. Google, Inc. Smartphone patent wars

XDA Developers Rooting

v t e

Mobile operating systems

Linux kernel

Android

Pixel UI Samsung Experience LineageOS

Bada EZX Linux Firefox OS

KaiOS

Maemo

Maemo
Maemo
Leste

MeeGo

Mer

Sailfish OS

Moblin MotoMagx OpenEmbedded

Openmoko Linux Ångström KaeilOS QtMoko SHR

postmarketOS Tizen Ubuntu Touch

UBports

WebOS

LuneOS

XNU

iOS

QNX

BlackBerry 10 BlackBerry Tablet OS

Windows

Windows
Windows
Mobile Windows
Windows
Phone Windows
Windows
XP Tablet PC Edition Windows
Windows
RT Windows
Windows
10 Mobile

Zircon

Fuchsia

Other

BlackBerry OS EPOC GEOS Nintendo DSi Nintendo 3DS S30 S30+ S40 Nokia Asha platform PalmDOS Palm OS PSP PS Vita Symbian

Comparison of mobile operating systems List of mobile app distribution platforms Open Handset Alliance Open Mobile Alliance Mobile app development

v t e

Google

Overview

Alphabet Inc. History List of mergers and acquisitions by Alphabet Products Criticism

Privacy concerns

Censorship Easter eggs Don't be evil

Advertising

AdMob Adscape AdSense AdWords Analytics Contributor Partners DoubleClick DoubleClick
DoubleClick
for Publishers Wallet

Communication

Allo Alerts Apps Script Duo Calendar Contacts Gmail

history interface

Google+ Groups Hangouts Inbox Sync Text-to-Speech Translate Transliteration Voice

Software

Assistant

Lens

Chrome

for Android for iOS Chrome Web Store Apps Extensions

Cloud Print Earth

Sky Moon Mars

Gadgets Gboard Goggles IME

Japanese Pinyin

Photos Keep News & Weather Now OpenRefine Search

Operating systems

Android

version history software development Android Auto Android TV

Chrome OS

Chromebit Chromebook Chromebox Chrome Zone

Fuchsia Wear OS

Programming languages

Dart Go Sawzall

Platforms

Account Authenticator Body Books

Library Project

Caja Virtual reality

Cardboard Daydream

Cast Chromecast Cloud Platform

App Engine BigQuery Bigtable Compute Engine Storage

Contact Lens Custom Search Daydream Earth Engine Fit GFS Firebase G Suite

Classroom

Home Jamboard Marketplace Native Client Nexus OnHub OpenSocial Pay

Send

Primer Pixel Play

Books Games Movies & TV Music Newsstand

Public DNS Safe Browsing URL Shortener Wifi YouTube
YouTube
TV

Development tools

AJAX APIs App Inventor Closure Tools Developers Dialogflow Flutter GData Googlebot Guava Guice GWS KML Kythe MapReduce Mediabot Sitemaps Summer of Code Web Toolkit Search Console Website Optimizer Swiffy

Publishing

Blogger Bookmarks Drive Docs, Sheets, Slides, Forms Drawings My Maps Sites Fusion Tables Domains FeedBurner Map Maker YouTube YouTube
YouTube
Instant YouTube
YouTube
Red Vevo Zagat

Search (timeline)

Appliance Blog Search Books

Ngram Viewer

Custom Search Finance Flights Images Maps

Mars Moon Sky Street View

Coverage Competition Privacy concerns

News

Archive

Patents Public Data Scholar Shopping Tenor Usenet Videos

Algorithms

PageRank Panda Penguin Hummingbird

Features

Personalized Real-Time Instant Search SafeSearch Voice Search

Analysis

Insights for Search Trends Knowledge Graph Knowledge Vault

Discontinued

Aardvark Answers Ara Browser Sync Base Buzz Checkout Chrome Frame Click-to-Call Cloud Connect Code Search Currents Desktop Dictionary Directory Dodgeball Fast Flip Friend Connect Gears Glass Glass OS GOOG-411 Google
Google
TV Jaiku Knol Health iGoogle Image Labeler Labs Latitude Lively Mashup Editor Notebook Offers Orkut Pack Page Creator Panoramio Picasa Picasa
Picasa
Web Albums Picnik PowerMeter Questions and Answers Reader Script Converter SearchWiki Sidewiki Slide Squared Talk Toolbar Updater Urchin Videos Wallet Wave Web Accelerator

Other

Arts & Culture Calico Current Chrome Experiments Code-in Code Jam Developer Day Google
Google
Business Groups Made with Code Data Liberation

Takeout

Google
Google
Developer Expert Google
Google
for Work Self-driving car Earth Outreach Fiber GV "Google" Google
Google
China Google
Google
Express Googlization Grants Google.org Lunar X Prize Project Fi Material Design Motorola Mobility reCAPTCHA WiFi X

Events

Science Fair Searchology I/O Developer Day Code Jam Highly Open Participation Contest Code-in

Projects

Loon Tango Sunroof

Real estate

111 Eighth Avenue Chelsea Market Googleplex

Logo

Doodle4Google Google
Google
Doodles

People

Al Gore Alan Eustace Alan Mulally Amit Singhal Ann Mather David Drummond Eric Schmidt Jeff Dean John Doerr John L. Hennessy Krishna Bharat Matt Cutts Patrick Pichette Paul Otellini Omid Kordestani Rachel Whetstone Rajen Sheth Ram Shriram Ray Kurzweil Ruth Porat Salar Kamangar Sanjay Ghemawat Shirley M. Tilghman Sundar Pichai Susan Wojcicki Urs Hölzle Vint Cerf Hal Varian Gayglers

Founders

Larry Page Sergey Brin

Related

AI Challenge Bomb GmailFS "Google: Behind the Screen" (2006 documentary) Google: The Thinking Factory (2008 documentary) Google
Google
and the World Brain (2013 documentary) Goojje Monopoly City Streets Unity

Category Portal

v t e

Linux

Linux
Linux
kernel

History Kernel Linus's Law Linux-libre Linux
Linux
startup process Linux kernel
Linux kernel
oops Tux more…

Controversies

Criticism of Linux Criticism of desktop Linux GNU/ Linux
Linux
naming controversy Tanenbaum–Torvalds debate SCO and Linux

Distributions

General comparison Distributions list Netbook-specific comparison Distributions that run from RAM Lightweight Security-focused operating system Proprietary software for Linux Package manager

Package format List of software package managers

Organizations

Linux
Linux
Foundation Linux
Linux
Mark Institute Linux
Linux
User Group (LUG) Linux
Linux
Documentation Project LinuxChix Linux
Linux
Counter

Adoption

Desktop Embedded Mobile Gaming Linux
Linux
range of use List of Linux
Linux
adopters

Media

DistroWatch Free Software Magazine Full Circle Linux.com Linux
Linux
Format Linux
Linux
Gazette Linux
Linux
Journal Linux
Linux
Magazine LinuxUser

Ubuntu User

Linux
Linux
Outlaws Linux
Linux
Voice LugRadio LWN.net OMG! Ubuntu! Open Source For You Phoronix Revolution OS The Code

Linux Linux kernel
Linux kernel
features Portal:Linux WikiP

.