It’s official: Android is now the most used mobile operating system in the world with over 900m Android activations. Android now has more users, more phones, and more tablets worldwide than any other mobile operating system. The Google Play app store has been growing at breakneck speed and with almost as many apps as the Apple app store. Which, for entrepreneurs and developers, is the chance of a lifetime to make even more money and reach an even broader audience base.
But first, you’ll have to learn how to make Android apps. In this Android development tutorial, we’ll learn the basic requirements of making an app on the Android platform.
Master Android development with the Learn Android Development From Scratch course.
Getting Started: Understanding Android
Before you can dive headfirst into Android development, you must understand how Android works.
Android, as you might already know, is an open source mobile operating system released under the Apache license. It was originally developed in 2003 by Andy Rubin, Nick Sears, Chris White and Rich Miner as an alternative to for-profit Symbian (Nokia) and Windows Mobile (Microsoft). Two years later, Google acquired the company with an aim to target the burgeoning mobile market. The OS was powered by the Linux Kernel and was officially unveiled on November 5, 2007 – nearly an year after Apple’s blockbuster iPhone announcement in early 2007. Android has grown from strength to strength since then, trouncing Apple’s iOS in terms of popularity and becoming the most popular mobile OS in the world.
Current versions of Android are powered by Linux Kernel version 3.x. Most of the code – libraries, APIs, etc. – are written in C and application software running on Java-compatible frameworks based on Apache Harmony, a free, open-source Java implementation. On the hardware side, Android utilizes ARM architecture with support for x86 as well.
Architecturally, Android follows the following structure:
Applications -> Application Framework -> Libraries (OpenGL, SSL) + Runtime (Dalvik VM) -> Linux Kernel (IPC, audio, wifi, flash).
Essentially, this means that Android is like a multi-layered cake where Linux Kernel is the base, the OpenGL, SSL and SQLite libraries and Dalvik VM the first development layer, the application framework running Java the second layer with the actual applications sitting on top – little wonder that the Google team is fond of naming its Android releases after desserts!
Developing for Android: What You’ll Need
Before you can proceed with Android development, you’ll need the following tools:
- Android SDK: The Android Software Development Kit contains everything you need – tools, libraries and compilers – to create your own Android applications. You can download a copy of the Android SDK here.
- Android Developer Tools (ADT): ADT is a set of plugins and tools that expand the capabilities of the Eclipse IDE to handle Android development. It’s a must download for any serious Android developer. You can download ADT here. You can also try your hand at developing through Android Studio, a set of plugins based on the Intellij IDE.
- Java: Android applications are written in Java. Which means you’ll have to brush up your Java skills. Consider taking the Learn Java for Android course to tighten up your command over Java.
- Command Line Familiarity: Get familiar with the command line – you’ll use it often to compile, test and run your Android applications.
Depending on the project, you might also need other tools such as the Dalvik Virtual Machine.
Coding for Android
Coding for Android is patently different from coding for iOS. For one, there isn’t really a ‘standard’ version of Android. Millions of devices run different versions of the operating system – from Ice Cream Sandwich to Jellybean to Gingerbread. There also isn’t any standard screen size; you will have to optimize the app for screens ranging from 3.8” to full 9.7” tablets. Furthermore, while iOS development follows the Model-View-Controller paradigm, Android starts you off with a complete clean state, which can be intimidating for beginners (but flexible for experienced users).
Developing for Android, thus, presents a lot of coding and design challenges. You can ease the transition to Android development with the Android Development for Beginners course. Alternatively, you can try iOS and Android HTML5 Apps for Beginners.
On the plus side, you don’t need a new computer to start coding Android apps – any trusty old computer capable of running Ubuntu (free) will do. There is also a huge Android community online that will be invaluable throughout the development process. With the Android SDK and some Java knowledge, you can get started in no time.