Wednesday, February 19, 2014

Fundamental blocks of an Android Application

This article will provide an overview of the android application components from a developer's point of view.

In order to develop an Android application, we need to first know what components make up an android app. There are four fundamental components which form an Android App. These building blocks, which are implemented as JAVA classes, are:

  • Activity Class - Activities provide the GUI to the user of the application, enabling the user to enter and receive data. Therefore, we can say this component works in the foreground, i.e, is visible to the user.
  • Service Class -  Services allow the different processes to request operations and share data.
  • Broadcast receiver - This block can be considered like a dormant component, waiting for an event to occur, like a message to be received, or battery level going below 5% etc. and take actions like show notifications.

    broadcast receiver notification

    Consider, the watchman of your Apartment. He sits at the main gate of the complex, dormant. While you are inside your flat unaware of any activity occurring outside. Now say, some friend decides to visit you. This friend reaches the complex gates. The watchman sitting there, stops the visitor, finds out which flat this visitor wants to go to, and then notifies you through intercom that - You have a visitor! In this case the watchman acts like the Broadcast receiver of an Android application.
  • Content Provider - We have discussed the Content Provider before (read here). Content Provider enables data sharing between Android applications. It allows data to be centralised at one place like a database, however, it has many more other functions than being just a database.
Now that we have some idea of the organisation of our application, next we will delve into details in the next post.

Hope this Android Application Development tutorial is helping. If not, please lets us know.

Do you have Questions? Arguments? doubts?... we'll try our best to resolve

Please leave us a comment 

Friday, February 7, 2014


Learning Android Easy

Want to have your own android app some day?

A lot of us want to learn writing Android Apps. But where does one start?

It looks like a daunting and never ending task. There are a million resources to learn from, but when you look at the never-ending list of documentation they have, it seems like you are drowning in a sea of information and yet starving for a drop of practical knowledge. Following this, many have given up there quest for Learning Android.

Android learning easy and free
Add caption
However, the truth is you don't have to read tons and tons of documentation of Android Manual and resources to learn Android. You can learn Android for free and within a short time.

Don't get confused. Start learning for free.

If you are looking for a guide to learning Android the practical way, you have found the right place. My posts have the gist of all the documentation. And you need nothing except a laptop/PC and this blog will set you rolling.

How to use this blog to learn Android App Development free

Book mark this page . Start here and follow this list in order. I will keep updating as and when needed.

Hope this Android Application Development tutorial is helping. If not, please lets us know.

Do you have Questions? Arguments? doubts?... we'll try our best to resolve

Tuesday, February 4, 2014

How to develop a mobile application using Android

So, You want to develop your own mobile application that would run on Android. You are at the right page. This and a lot more posts will teach beginners how to develop an android app for free.

To start off here is what you will need:

1. Basic knowledge of the Android System. Read this post.
2. Android SDK which can be downloaded here

3. JAVA programming language. If you don't know that, don't worry. This blog will help you cope with that.

Once you are done with the above requisites, you are all set to learn how to develop your own android application. Keep following this blog.

Tuesday, January 28, 2014


Welcome back, to the Basics of Android guide. Here you are going to learn Android free.

In my previous post I had given an overview of the android system. Now, that we are familiar with the stack, let's take a closer look at the application framework. 

In software systems, we often across situations where more than one module needs to perform the same task. For such tasks we generally have a library of reusable code which can be invoked from any module. This helps us eliminate repetitive code and also minimize binary size.  The Android Application Framework helps us do exactly that.

Application Framework as we saw earlier, is above the native libraries and the Android runtime system. It consists of pre-installed blocks of software which various applications can use. 

Application framework layer of Android Stack

Let us take a look at some of its blocks,and try to understand how this framework facilitates re-usability
Package Managercontains data about all the applications installed on the device 

Activity Manager : Manages the life cycle of an Application. 
Window Managermanages the many windows of the applications. An application may need more than one window. Say ta main window, a menu window, another sub-menu window and so on. 
View System: contains common UI related elements such as pop-ups, buttons and icons. 
Content Providerdatabase for an application to store and retrieve data and let other app access its data. This facilitates inter application data sharing.
Similarly the other blocks Location, Notification, Telephony and Resource Managers provide services, as suggested by their names, to the top application layer. We will learn about them gradually.

Hope this Android Application Development tutorial is helping. If not, please lets us know.

Do you have Questions? Arguments? doubts?... we'll try our best to resolve

Please leave us a comment 

Thursday, January 23, 2014


To learn how to develop a Mobile Application using Android, We need to first understand the basics of Android. This and the following few posts will provide a guide or tutorial for Android mobile app development.

Overview of The  Android Stack 

The Android is a platform which support mobile devices such as phones and tablets. It has several layers that manage everything from sensors to the applications you see on the screen (and the android app that you are going to develop).

Shown below is a representation of Android stack

android stack diagram
The Android System Stack

Android has:
  • LINUX KERNEL as the bottom layer
    • which provides the operating system services.
    • C/C++ libraries that make many operations easier for the programmer and also help improve performance
    • ANDROID RUNTIME : JAVA libararies and the Dalvik Virtual Machine (Explained below)
  • next up is a rich APPLICATION FRAMEWORK
  • and  at the top of all these the APPLICATIONS that we use. This is the interface of the USER and the rest of the android system
Android programs are generally written in JAVA. However they are not executed bythe JAVA virtual machine. They actually run on the Dalvik Virtual Machine. 
Applications programmed in JAVA are compiled using a JAVA compiler to generate the JAVA byte code. In order to make it executable in the DVM, the JAVA bytecode is converted to a DEX format using appropriate tools. This DEX code, with other packages of the application, is installed on the target device and when run, it is executed by the Dalvik Virtual Machine. 
JVM is not designed to run on mobile devices where resources like CPU, memory and power are limited. DVM is particularly designed for this purpose. Hence while developing an Android app, the developer has to worry less about the constrained resources.
Next,  Let us have a closer look at the android application framework.

Hope this Android Application Development tutorial is helping. If not, please lets us know.

Do you have Questions? Arguments? doubts?... we'll try our best to resolve
Provide us with valuable Suggestions / Ideas / or clues... 
Please leave us a comment 

Thursday, January 2, 2014

COMPILER Basics for Dummies- 1

Starting from this article, we are going to present a free guide and introduction to the principles of Compiling a program. Beginners can read it as a brief guide to get started on Compilers.Going forward we will be looking into GNU's GCC. I am avoiding too much details and providing information enough for Freshers/ Engineers and Undergrads to understand compilers.

A compiler is a program that reads another program, called the source code ( written in a particular high level programming language) and converts it into, a low level language.

By low level I mean either Assembly or machine code.

Saturday, November 30, 2013

Frequency Reuse with Cellular Topology

Start this tutorial from : Introduction

Primitively mobile networks  (that should probably be called the 0g mobile network such as IMTS),were designed like TV networks... one very powerful base station catered to a large area. 

The IMTS by AT&T for instance in New York, had 12 channels only. This means that at a given time only 12 calls could be active. Because of limited channels, AT&T had to limit subscribers to 2000. On an average users had to wait around 20 minutes before there calls could be placed.

This user capacity limitation was overcome by using a Cellular Topology

A land area to be covered is divided into regular shaped cells(as big as 10-15 miles), which can be hexagonal, square, circular or some other regular shapes.Hexagonal cells are conventional because hexagons best resemble a circle. (as a BTS would radiate around itself in more or less a circular radius)
Cluster of Cells
A cluster of cells
Each cell is served by one or more fixed-location transceiver, known as a cell site or base station. A mobile device would communicate with a cell-site most closest to it. Every radio base stations transmits/receives information in its cell at a particular frequency range from f1 - f6 . The group of frequencies can be reused in other cells, provided that the same frequencies are not reused in adjacent neighboring cells as that would cause co-channel interference.

How capacity is improved by cellular topology?

In IMTS : 
we can think the entire area A as one big cell with one BTS. 
Let total number of channels = 14Number of Active calls that can be supported in area A = 14
In Cellular: 
Let A be divided in 10 clusters
No. Of cells in one cluster = 7 Number of channels per cluster = 14/7 = 2
Number of channels in area A = (14*10)/7=20Number of Active calls that can be supported in area A = 20
This was a short description of channel multiplication using frequency reuse. Now, that we know basic concepts behind cellular topology, we shall for now, stop here. There's a lot more to frequency re-use and cell planning which is a major field research and application. Cell planning is a science in itself.

Do you have Questions? Arguments? doubts?... we'll try our best to resolve

Provide us with valuable Suggestions / Ideas / or clues... 
Please leave us a comment