Android Development

Android Development

How To Learn Mobile App Development Using Android Studio ?

Android development professionals are in great demand primarily due to their ever increasing demand . Android app development is also one of hottest and one of the highest paid skill set in the job market .

Android is a Linux based open source operating system ( OS ) specially designed for mobile devices  such as smart phones , tablets and other touch screen devices.

We can also say that android is basically a platform which provides a run-time environment for mobile application development. The android platform consist of an operating system , middleware and some key applications.

This tutorial has been specially designed for absolute beginners as well as for experienced programmers. In this android development tutorial , you will learn android mobile app development step by step.

This tutorial is also a comprehensive resource and guide to teach yourself complete android development using android studio.

Android Development

Table Of Contents

What Is Android Development ?

Android development is simply creating or developing  the software applications ( Mobile Apps ) for android based mobile devises .

The mobile app development depends upon the  type of the operating system installed on that mobile device. For example iOS , which is a proprietary operating system used on all apple devices .

Whereas , the Android is open source operating system installed on all android mobile devices . Android being a open source is available for free for mobile handset companies like Samsung and Sony which do not have their own operating system .

Mobile App Development

These companies can freely use and modify the android OS source code for its usage on their devises . However , these companies must be member of the consortium  Open Handset Alliance ( OHA ) that manages Android .

The Open Handset Alliance ( OHA ) is a consortium of 84 mobile handset producing firms to develop open standards for mobile devices.

The android application development was initially done using many Integrated Development Environment ( IDE ) . The Eclipse used to be the most popular IDE  used  for developing android applications.

However , the  Android Studio IDE built on JetBrains’ IntelliJ IDEA software  is now the official IDE for developing android applications. 

 Android Studio soon became a default choice due to its simplicity and provides a complete development environment.

Android Studio

Android SDK

The android application use Android Software Development Kit ( SDK )  which consist of following components :

  • Required Libraries
  • Debugger For Debugging Program Code.
  • Mobile Handset Emulator To Test The App.
  • Android Development Documentation For the Android API .
  • Example Android Program Source Code
  • Tutorials for the Android Development.

What Is Android ?

Android is a modified Linux kernel based open source operating system specially optimized for mobiles phones , embedded devices and other touch screen devises .

Android is also commonly referred as platform because as per android architecture , the android consist three layers . The  Linux kernel , middleware and some key application framework which together offers a runtime environment for android apps .

As on today , android  is the undisputed world leader in the mobile operating system market with 86.2 % market share .  The Apple owned proprietary iOS designed for all apple products is at 12.9 % and remaining players share is insignificant .

Android Market Share
Android Market Share

Android Operating system supports user touch inputs , virtual keyboard for user interaction and  to manipulate the on-screen objects.

Android provides number of options for user interactions which includes touch screen , swiping , tapping , Bluetooth , USB controllers and other peripherals.

Android OS also supports other features such as launcher icons for apps , self updating widgets for live content , multiple pages , folders to organize apps and files.

History Of Android

Android was developed by Andy Rubin a founder of Android company formed in year 2003. His other colleagues who worked  on android development  include Rich Minor , Nick Sears and Charis White.

The android was initially developed for camera but later no used in mobile devices due to limited market of the camera.

Andy Rubin was passionate about robots and hence he was nicknamed as Android by his colleagues .

Google acquired Android corporation in year 2005 for $ 50 Million. Google also kept the android as open source and formed consortium to develop and manage android .

History Of Android

Advantages Of Android Operating System

Android operating system offers major advantages as a mobile operating system . Some of these advantages as under :  

  • Android operating system Is Open Source.
  • Android Apps Can be created using many programming languages.
  • Android OS Supports Touch Screen Devices .
  • Android OS Supports touch Inputs and Virtual Keyboard.
  • Android OS Use Dalvic Virtual Machine instead JVM.
  • Dalvik Executable Format ( . dex ) Optimized For Mobile Devices.

Android Development

Android Architecture

Android operating system architecture consist of three major components which includes Linux Kernel , middleware and some key software applications .

Android architecture implements a layered architecture . Android is basically a stack of  system software and some application software components.

The layered structure of the android operating system components can be grouped into four layers . These four architectural layers include :

Android Architecture

Android Architecture Layers

Android software stack is a big software system. Android has been developed in a modular way by using a layered architecture .

Each layer provides a specific functionality on top of the Linux kernel . This approach helps  to speed up the app development by using all open source components.

The Linux kernel is the bottom layer of the Android platform which provides the basic functionalities of the operating systems such as device drivers, power management and file system.

The Linux kernel layer is also referred as hardware abstraction layer in android software stack .

The Linux kernel is the core of the android operating system . The Linux kernel handles the core functions assigned to any operating system .

These functions include memory management , resources management  , power management , security model , networking and other core operating system functions. .

The android OS is built upon the Linux kernel. This layer also provides the set  device  drivers ( a type of system software ) for various hardware components. These device driver include ,  display driver , camera driver , keypad  driver and other hardware drivers .

Linux Kernel

The kernel layer also includes native library which include surface manager , SQLite  , media framework , weblit , and SSL . The native library  is written in C and C++ , which provide the core power to the android platform.

The surface manager is responsible for composing different drawing surfaces on to the screen . It is the surface manager that manages the different windows running different processes presented to the user at different times.

Android Development

Android Runtime Environment

Although , android applications are developed using Java language which needs JVM to run . However , the android apps use instead a modified version of JVM called Dalvik Virtual Machine ( DVM ) .

The  DVM is relatively a lightweight version of JVM optimized for mobile devices . The DVM is an interpreter which executes the android app executable dex bytecode.

The android platform provides a complete runtime environment for the software applications .This is the second layer of the architecture  from the bottom layer.

The runtime environment mainly consist of two components which includes the core libraries and the Dalvik Virtual Machine ( DVM ) .

The android app program code is first compiled into an intermediate Dex bytecode. The first few versions of android ,  the DVM used to execute the Dex bytecode .

Java Virtual Machine ( JVM ) Vs Dalvik Virtual Machine ( DVM )

JVM VS DVM , Dalvik Virtual Machine

The DVM is now replaced with Android Runtime ( ART ) .   The ART essentially functions as an interpreter and executes the the Dalvik Executable format and Dex byte code specification.

A  DEX file, a type of bytecode format designed especially for the android powered devices and optimized for minimal memory constrained devices.

The Java compiler creates a intermediate bytecode  that is optimized for desktop applications, Whereas the android program is further compiled to  dex bytecode that is optimized for low memory devices .

The Android Runtime ( ART ) brought about many performance improvements as compared to earlier versions of DVM.

The Android runtime also provides a set of core libraries which enable the Android application developers to write Android applications using standard Java programming language.

Application Framework

The Application Framework  is placed on the top of android runtime layer as a part of android software stack .The Application Framework is a set of services that collectively form the runtime environment for  Android applications to run and are managed.

The Application Framework layer in the software stack provides many higher-level services to applications in the form of Java classes. The application developers can use  these services in their applications .

Android software development kit ( SDK  ) provides the API libraries and tools for  application developers for developing android  applications using the java programming language.

Application Framework

Android Development

Application Framework Services

The Android framework provides the following important services for application development :

Activity Manager

The activity is simply a screen presented to the user to interact with the application .  The activity manager controls all the aspects of the application life-cycle and the activity stack.

Resources Manager

The resource manager provides access to non-code embedded resources used in the application such as images , strings, color settings and user interface layouts.

Notification Manager

The notification manager allows the applications to display alerts and notifications to the user .For example charger , headphone connected.

Content Provider

The content developer enables the  applications to publish and share the data with other applications. For example , the contacts application data is shared and used by many applications such as phone , Whatsapp.

View System

Android app contains activities which are screens through user intersects with the app. Each activity contains various controls such as text boxes , buttons and other controls . These controls are referred as views .

Different types of views ( controls ) are used on activities which forms a user interface . The commonly used views are  lists, grids, text boxes, buttons, and even an embedded  web browser .

Views In Android , View System

Different View Used In Android App Interface

Android Development

Applications

Android comes with a set of core apps such as phone , camera , media player , internet browser , watch ,  email, SMS messaging, calendars, contacts, and some other important apps .

The user can add more services and functionality to the device by installing additional apps from Google app store. These apps can be either free or paid app which depends upon the developer .

These applications can either help the device user with some important functionality or the app developer can call the these services in his own application .

For example the app developer might use existing system apps such as camera or messaging services.  

Android Development

How To Become Android Developer ?

If you are planning to become a android developer then you need to gain the necessary programming knowledge and learn the professional skills required to become a professional android developer .

Learning the android development is relatively easier if you follow the logical learning sequence .  In order to become a android  developer , you need to gain both theoretical knowledge as well as master its practical implementation.

This tutorial will guide you step by step in a logical sequence for learning the android mobile app development using Android Studio and Java programming language .

For learning the android development , I would recommend the following learning process . This learning process will help you logically understand all the important topics necessary to become a professional android developer .

The topics covered in this android tutorial and its contents are specially designed  keeping in mind the needs of both absolute beginners and also for experienced programmers .  

How To Learn Android Development ?

The Android Development learning process can be grouped into six simple steps . These  six steps include :

  •   Step 1 : Learn The Fundamentals Of Android Development.
  •   Step 2 : Learn Java Programming Essential Skills For Android Developers.
  •   Step 3 : Installation Of The Java Development Kit ( JDK ).
  •   Step 4 : Installation Of The Android Studio.
  •   Step 5 : Android Mobile App Development With Android Studio.
  •   Step 6 : Android App Deployment.

Step - 1

Learn Fundamentals Of Android Development

Step - 2

Learn Java Programming Essential Skills For Android Developers.

The Android Studio which is most popular and extensively used Integrated Development Environment ( IDE ) for android development has seamless  integration with Java .

And for this reason,  knowledge of  java programming basics is prerequisite for learning android development.

Step - 3

Installation Of The Java Development Kit ( JDK )

Step - 4

Installation Of The Android Studio

Step - 5

Android Mobile App Development With Android Studio

Step - 6

Android Mobile App Deployment.

Learn Computer Science And Programming Fundamentals

Computer Science Online Course - Udemy

This is the most comprehensive  and unique  Computer Science  And Programming Fundamentals course Online which will give you in depth understanding of most important fundamental concepts in computer science And Programming .

Don`t copy text!