page loader

A Brief History of Android Development

December 3, 2018
| |
A Brief History of Android Development

The Android platform is the product of the Open Handset Alliance, a group of organizations that collaborate to develop a better mobile phone. The group, led by Google, includes mobile operators, handset device manufacturers, component manufacturers, platform providers, software solutions, and marketing companies. From a software development perspective, Android is perfectly at the centre of the open source world.

The first headset with Android capability on the market was the G1 device manufactured by HTC and supplied by T-Mobile. The device was available after almost a year of speculation, where the only software development tools available were some SDK releases improved incrementally. As the launch date of the G1 was approaching, the Android Development team launched SDK V1.0 and applications for the new platform began to appear.

To stimulate innovation, Google sponsored two series of “Challenges for Android Developers”, where millions of dollars were delivered to the best presentations of the contest. A couple of months after the G1, the Android market was launched, which allowed users to explore and download applications directly to their phones. After approximately 18 months, a new mobile platform entered the public area.

Android has an abundant variety of connectivity options, including Wi-Fi, Bluetooth and wireless data over a cellular connection (for example, GPRS, EDGE and 3G). A popular technique in Android applications is to join Google Maps to display an address directly within an application. Support for location-based services (such as GPS) and accelerometers is also available in the Android software stack. There is also camera support.

Historically, the two areas in which mobile applications have struggled to keep up with their desktop counterparts are graphics hardware and data storage methods. Android addresses the challenge of graphics with built-in support for 2D and 3D graphics, including the OpenGL library. The data storage load is facilitated because the Android Development platform includes the well-known open source SQLite database.

Activities

An application that has a visible user interface (UI) is implemented with an activity. When a user selects an application from the home screen or the application launcher, an activity is started.

Services

A service should be used for any application that needs to persist for a long time, such as a network supervisor or an update checking application.

Content Providers

It is possible to consider content providers as a database server. The job of a content provider is to manage access to persistent data, such as SQLite database. If your application is very simple, you should not necessarily create a content provider. If you are developing a larger application or one that makes data available for multiple activities or applications, a content provider is the means to access your data.

Broadcast Receivers

You can launch an Android application to process a data item or to respond to an event, such as receiving a text message.

An Android application, along with a file called AndroidManifest.xml, is deployed for a device. AndroidManifest.xml contains the configuration information needed to properly install it on the device. It includes the names of required classes and the types of events that the application can process and the required permissions that the application needs to execute. By way of illustration, if an application requires access to the network – to download a file, for example – this permission must be explicitly mentioned in the manifest file. Many applications may have this specific permission enabled. Such declarative security helps reduce the chances of a malicious application causing damage to your device.

Tools Needed

You can launch an Android application to process a data item or to respond to an event, such as receiving a text message.

The easiest way to start developing Android applications is by downloading the Android SDK and the Eclipse IDE (see Resources). Android development can be done in Microsoft® Windows®, Mac OS X or Linux.

It is possible to develop Android applications without Eclipse and the Android Developer Tools plug-in but you will need to know the Android SDK environment.

The Android SDK is distributed as a compressed file that is unpacked into a directory on your hard drive. Because there have been several SDK updates, it is recommended that you keep your development environment well organized so that it is possible to easily switch between SDK installations. The SDK includes:

android.jar

The file of Java files that contains all the Android SDK classes necessary to develop your application.

Documention.html and docs directory

The SDK documentation is provided locally and on the web, mainly in the form of JavaDocs, which makes it easy to navigate in many packages in the SDK. The documentation also includes a high-level development guide and links for the broader Android community.

Directory of Samples

The sample subdirectory contains a complete source code for a variety of applications, including Apidemo, which exercises many APIs. The sample application is an excellent place to explore when the development of Android applications begins.

Directory of Tools

This contains all the command line tools to develop Android applications. The most commonly used and useful tool is the adb utility (Android Debug Bridge).

usb_driver

The directory contains the necessary drivers to connect the development environment to an Android-enabled device, such as the G1 or the unlocked Android Dev 1 development phone. These files are only necessary for developers who use the Windows platform.

Android applications can be run on a real device or on the Android Emulator, which sends the Android SDK.

Android Emulator

Android Debug Bridge

The adb utility supports several optional command line arguments that provide efficient functions, for example, copying files to and from the device. The command line shell argument allows you to connect to the phone itself and issue rudimentary shell commands.

It shows the shell adb command against a real device connected to a Windows laptop with a USB cable.

Using the adb shell command

Within this environment, it is possible to:

Show the network configuration that shows multiple network connections. Consider the multiple network connections:

it is the local or loopback connection.

tiwlan0 is the Wi-Fi connection with an address provided by a local DHCP server.

Show the contents of the PATH environment variable.

Execute the su command to become the superuser.

Change the directory to /data/app, where user applications are stored.

Make a directory listing where you see a single application. The Android application files are actually compressed bundles of files that can be viewed with WinZip or an equivalent. The extension is apk.

Issue an Internet packet probe command to see if Google is available.

From this same command prompt environment, it is also possible to interact with SQLite databases, startup programs and many other tasks at the system level. This is a pretty amazing feature, which considers that you are connected to a phone.

In the next section, you will create a simple Android application.

Encode a basic application

This section provides a whirlwind tour on the development of an Android application. The example application is almost as simple as it is possible to imagine: a modified application “Hello Android”. You will add a minor modification to convert the background color of the blank screen so that it is possible to use the phone with a flashlight. It is not very original but it will be useful as an example.

To create an application in Eclipse, select File> New> Android project, which starts the wizard for the new Android project.

New Android project assistant

A Brief History of Android Development

Next, you create a simple application with a single activity, along with a UI design stored in main.xml. The design contains a text element that will be modified to read Android FlashLight.

Create a pair of color resources in strings.xml.

Flashlight.java

The code is a standard text directly from the new project assistant:

It is part of a Java package called com.msi.flashlight.

It has two imports:

One for the activity class

One for the package class

When this activity is started, the onCreate method is invoked, passed as a savedInstanceState. Do not worry about this package for four purposes, it is used when an activity is suspended and then resumed.

The onCreate method is a temporary alteration of the activity class method of the same name. Call the superClass onCreate method.

A call to setContentView () associates the UI design defined in the main.xml file. Anything in main.xml and strings.xml is automatically correlated in constants defined in the source file R.java. Never edit this file directly since it changes over each development.

When running the application a white screen with black text is presented.

White lantern screen

The AndroidManifest.xml file configured for the FlashLight application is shown below.

AndroidManifest.xml for FlashLight

This file was created automatically by the Android Developer Tools plug-in for Eclipse. We did not have to do anything.

Why program on Android?

Android is the undisputed king of mobile applications (although we should not belittle iOS). Create Android applications, if done well, can be profitable. Games can be intuitively developed for Android, too.

Today, there are more than 700,000 applications uploaded to the Google Play store. This number will only increase exponentially as more and more apps are being developed for Android every day.

Another clue to why there is a lot of market ahead for this 2019 and proof that developing for Android is a good idea is the rapid adoption of the new versions of the Android operating system.

Other data about Android:

Next to iOS, both dominate the mobile market worldwide

The Java programming language is the one chosen by Google to create Android apps

Every day there are more mobile devices that work with the Android operating system: from smartphones, tablets, to wearable type smartwatches and SmartTV’s

In addition to Java, the XML metalanguage is also used for the design of interfaces through parsing.

To create Android applications we will need the Android SDK, which includes libraries and own tools.

AIDE- IDE for Android Java C ++
This is an integrated development environment, available for Android devices where you can directly start developing and writing code. It facilitates the writing with a special keyboard, with access to the most common characters in programming.

Leave a Reply

Your email address will not be published. Required fields are marked *