Sponsored Links
-->

Monday, July 23, 2018

Android Application Development Services | Android App Development
src: colaninfotech.com

Android software development is the process by which new applications are created for devices running the Android operating system. Google states that, "Android apps can be written using Kotlin, Java, and C++ languages" using the Android software development kit (SDK), while using other languages is also possible. All non-JVM languages, such as Go (JavaScript, C, C++ or assembly), need the help of JVM language code, that may be supplied by tools, likely with restricted API support. Some languages/programming tools allow cross-platform app support, i.e. for both Android and iOS. Third party tools, development environments and language support have also continued to evolve and expand since the initial SDK was released in 2008.


Video Android software development



Official development tools

Android SDK

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, and Windows 7 or later. As of March 2015, the SDK is not available on Android itself, but software development is possible by using specialized Android applications.

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 IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. As of 2015, Android Studio, made by Google and powered by IntelliJ, is the official IDE; however, developers are free to use others, but Google made it clear that ADT was officially deprecated since the end of 2015 to focus on Android Studio as the official Android IDE. 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).

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.

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 (compiled byte code files called Dalvik executables), resource files, etc.

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, 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.

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".

Fastboot

Fastboot is a diagnostic protocol included with the SDK package used primarily to modify the flash filesystem via a USB connection from host computer. It requires that the device be started in a boot loader or 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 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

Libraries written in C/C++ can be compiled to ARM, or x86 native code (or their 64-bit variants); or MIPS while both the 32-bit and 64-bit variants of are deprecated; and installed using the Android Native Development Kit (NDK). These native libraries can be called from Java code running under the Android Runtime using the System.loadLibrary call, which is part of the standard Android Java classes.

Complete applications can be compiled and installed using traditional development tools. 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.

TheADB Debugger gives a root shell under the Android Emulator which allows ARM, MIPS or x86 native code to be uploaded and executed. Native code can be compiled using Clang on a standard PC; GCC is no longer supported. 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. 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. Skia is not an NDK API, though, and NDK developers use OpenGL.

It is possible to use the Android Studio with Gradle to develop NDK projects. Other third-party tools allow integrating the NDK into Eclipse and Visual Studio.

UTF-8 is the default charset in Android (unlike what regular Java uses internally). The UTF-8 decoder is stricter as of Android P and follows the Unicode standards.

Android Open Accessory Development Kit

The Android 3.1 platform (also backported to Android 2.3.4) 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.

Native Go support

Since version 1.4 of the Go programming language, writing applications for Android is supported. With Go version 1.7, and with the help of the gomobile tool (i.e. gomobile build), compiling to Android APK and iOS apps is supported from the same Go codebase. For Go as with any other non-JVM language strictly speaking Java/JVM code is always needed to run on Android, but the gomobile tool provides the minimal JVM code needed Android (or Objective-C code needed in case of iOS). Go support is restricted to what Go types can be used and (currently) to a restricted set of Android APIs (e.g. OpenAL and OpenGL ES 2 bindings are provided that could be used to make 2D/3D games, such one of the provided examples for Android or iOS, or other graphics applications).


Maps Android software development



External hardware development

Development tools intended to help an Android device interact with external electronics include IOIO, Android Open Accessory Development Kit, Microbridge, Triggertrap, etc.


Android Application Development | HR Infocare PVT LTD
src: www.hrinfocare.com


Third-party development tools

AIDE

  • 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

Android::Build is a Perl 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 Apache 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

On July 12, 2010, 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. "We could only have done this because Android's architecture is so open," said the project director, MIT's Hal Abelson. Under development for over a year, 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.

In the second half of 2011, 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 and fellow MIT professors Eric Klopfer and Mitchel Resnick. 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 and upgraded to App Inventor 2 in December 2013. As of 2014, App inventor is now maintained by MIT.

Basic4android

Basic4android is a commercial product similar to Simple. It is inspired by Microsoft 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

Coreliu enables non technical users to write immersive educational apps which run natively on Android devices. 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

Corona SDK is a software development kit (SDK) created by Walter Luh, founder of Corona Labs Inc.. 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

Delphi can also be used for creating Android application in the Object Pascal language. The latest release is Delphi 10 Seattle, developed by Embarcadero. 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 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

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 JavaScript engine.

HyperNext Android Creator

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 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 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 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

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.

Lazarus

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

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

Qt for Android enables Qt 5 applications to run on devices with Android v2.3.3 (API level 10) or later. Qt is a cross-platform application framework which can target platforms such as Android, Linux, iOS, Sailfish OS and Windows. Qt application development is done in standard C++ and QML, requiring both the Android NDK and SDK. Qt Creator is the integrated development environment provided with the Qt Framework for multi-platform application development.

RubyMotion

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.

SDL

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, allowing Android ports like e.g. the Jagged Alliance 2 video game.

Stripe Android

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.

Visual Studio Emulator for Android

Microsoft shipped in 2015 a free stand-alone emulator for Android, dubbed Visual Studio Emulator for Android. The emulator supports installation of Google Play through a drag-and-drop interface. It can work in conjunction with Visual Studio, which supports cross-platform development, letting 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.

Xamarin

With a C# shared codebase, developers can use Xamarin to write native iOS, Android, and Windows apps with native user interfaces and share code across multiple platforms.


Mobility Support Services | Android Developer | iOS Developer
src: www.mobolutions.com


Android Developer Challenge

The Android Developer Challenge was a competition to find the most innovative application for Android. 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. It ended in early September with the announcement of ten teams that received $275,000 each, and ten teams that received $100,000 each.

ADC II was announced on May 27, 2009. The first round of the ADC II closed on October 6, 2009. 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 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.


Free Android Application Development Tutorial - Beginner Level ...
src: i.ytimg.com


Community-based 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 lossless audio support and the ability to store downloaded applications on the microSD card. 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. 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.

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 and OMFGB are examples of such firmware.

On September 24, 2009, Google issued a cease and desist letter to the modder Cyanogen, citing issues with the re-distribution of Google's closed-source applications within the custom firmware. Even though most of Android OS is open source, phones come packaged with closed-source Google applications for functionality such as the Google Play and GPS navigation. 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 applications during the mod's install process and restore them when the process is complete.


How to Choose the Right Android Application Development Company ...
src: igadgetbazaar.com


Java standards

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. However, there are multiple tools in the market from companies such as Myriad Group and UpOnTek that provide Java ME to Android conversion services.

Android provides its own GUI classes, and does not provide Java AWT, Swing or JavaFX. It does not support the full Java Beans API.


Micronum Solutions Pvt Ltd | IT & ITs Company
src: micronumsolutions.com


History and market share

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. Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issue-tracking system. (Google announced an issue tracker on January 18, 2008.) 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." Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the Snake game.

A preview release of the Android SDK was released on November 12, 2007. On July 15, 2008, the 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 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.

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. On September 23, 2008, the Android 1.0 SDK (Release 1) was released. 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 .

On December 5, 2008, 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, more than one million applications have been developed for Android, with over 25 billion downloads. A June 2011 research indicated that over 67% of mobile developers used the platform, at the time of publication. Android smartphone shipments are forecast to exceed 1.2 billion units in 2018 with a 85% market share.


Web development Android software development Mobile app ...
src: banner.kisspng.com


See also

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

Top & Best Android, iOS, and iPhone Mobile App Development Company ...
src: www.maxwellglobalsoftware.com


Bibliography


Android software development Mobile app development Logo - android ...
src: banner2.kisspng.com


External links

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

Source of article : Wikipedia