Android development explained: A guide to the basics

By IBM Cloud Education

  • Tap into extensive APIs to overcome mobile device limitations
  • Incorporate services that enhance the user experience and increase runtime efficiency
  • Access free resources to accelerate development and improve results

Thinking about developing a new Android app? You’re in good company. Since launching in 2003 as an open source project based on the Linux kernel, Android has become the world’s most popular mobile operating system. More popular than iOS, Android currently runs on over two billion devices worldwide, and developers have published nearly four million apps for it. Many of the major manufacturers use Android on their phones, including HTC, Huawei, Lenovo, LG, Samsung and Sony. 

Whether or not you have prior experience developing for Android, you know that preparation can make a big difference in the success of your project. Having the right information and resources helps ensure a smooth start and an efficient, productive process. 

Are you ready to explore the Android development process? IBM offers an easy-to-follow, hands-on tutorial for building a voice-enabled Android chatbot. To explore Android development further, read the article, “How to make an Android app.“

 

Why develop for Android?

Android has several advantages for development: 

  • APIs and cloud services: The Android platform offers a wide variety of APIs that can help you tap into the cloud and overcome the limitations of mobile devices, which generally have less memory and processing power than other platforms. Developing your mobile application to take advantage of a cloud back end can help you get around those limitations.  By keeping your app small and making the most of API calls to services running in the cloud, you can lighten the memory and compute load on the mobile device. Google regularly announces the addition of new APIs that can help access cloud services.
  • Variants for different devices: Android offers extensive creative freedom for developing apps that capitalize on new technologies. Android is designed primarily for touchscreen mobile devices such as smartphones and tablets. In addition, Google has developed variants of Android for a growing range of devices from wrist watches and other wearables to in-car entertainment and the Internet of Things (IoT).  If your business is in the automotive industry, you could develop a car dashboard app that lets the user play music from Android devices, navigate using Google Maps and ask questions in Google Search. Writing the app in Android enables you to create an app that works across car makes and models.
  • Distribution at scale: Whether you are distributing your Android app to employees, partners or customers, Google Play makes it simple to distribute the app widely. There are few restrictions for publishing your app through Google Play, and the market reached by this online venue is huge. Simply pay $25 to open an account and push your app to Google Play — the app will be live on the store within a day or two. The widespread use of Android means there are plenty of devices capable of running your app.
  • Programming in Java™: The native programming language for Android is Java, one of the most popular languages. Using Java to write apps for Android devices is simple and straightforward. You can use native programming concepts and easily take advantage of native features on the mobile device.   Java is a general-purpose language intended to let you “write once, run anywhere” — that is, compiled Java code can run on all platforms that support Java without the need for recompilation. It can run on any Java virtual machine regardless of computer architecture.

 

Android app development architecture

Android app development architecture

 

Accessing resources — from sample code to tests

Once you’ve chosen Android as your target platform, you’ll need some resources to get started with your project. New developers often start at Google.com, which leads them to the Android website. Or you can go directly to the Android developer site.

There you can access a variety of resources, including:

  • Sample code to jump-start your development 
  • Tests to verify your app for behavior and usability before you release it
  • Design and behavior guidelines you can follow to build your app

Before you start, you should install Java and set up the Java development kit (JDK) on your computer. Then download and install the Android software development kit (SDK), which is required for developing Android apps. It contains APIs you can use or reference to develop your application. The default browser that comes with the operating system when you install it is Google Chrome, but you can use other browsers such as Firefox if you prefer.

Install Android Studio, which comes with the SDK. Android Studio is the official integrated development environment (IDE) for native Android. The IDE is essential to help you with coding, spell checking, error warnings, UI development and more. Built on JetBrains IntelliJ IDEA software, Android Studio replaced the Eclipse tools formerly used as the Android IDE.

C++ is often used to write apps geared for high performance and quick reactivity (which is why many game developers choose it). If you want to reuse C++ code for your Android app, download the Android native development kit (NDK). This tool set can help you implement parts of your app using C or C++ code and libraries.

In addition, software is available to emulate Android on other operating systems including Windows, Mac and Linux. The Android emulator works by converting Android files into a format that is recognizable by the other operating systems. 

Android follows a material design principle, which is used in many of today’s enterprise apps. Android material design provides a guide for visual, motion and interaction design so you can create a strong user experience across platforms and devices.

 

Adding value to an app

As a mobile developer planning projects today, you want to make your apps as competitive as possible. Consider incorporating services that can enhance the user experience and improve the efficiency of app operation. 

  • Push notifications: Push notifications are an easy way to engage users by sending them information about updates, offers, events, how-to tips for using key features and other material that encourages them to use your app. 
  • Mobile analytics: You can add value to your app with AI-based analytics designed to respond to user questions, personalize user interactions, detect fraud or deal with natural language content.
  • Functions-as-a-service (FaaS): You can adopt an FaaS approach to development to gain the cost efficiencies associated with running back-end compute only when your app makes an API call into the cloud for a particular function. For example, if you are scheduling push notifications once a month, an FaaS platform enables you to pay only for the seconds or minutes of compute time required to send your notifications.

It is easy to quickly create a native Android application with mobile services like push notifications and mobile analytics on IBM Cloud™. You can also set up FaaS, such as making API calls into IBM Watson for speech-to-text conversion, and build them into your app. The IBM Cloud Functions platform supports Java, so you can remain in Java from client to server for your development work.

Are you ready to explore the Android development process? IBM offers an easy-to-follow, hands-on tutorial for building a voice-enabled Android. To explore Android development further, read the article, “How to make an Android app.“