Android - I

In this blog, I will look into the overview of Android and how we can use .NET to build applications for Android. I will continue to explore more until I am ready to create an android app and publish it in the android market. 
Android is an open source, linux based, mobile operating system. The application layer for Android is written in Java. 
Android Architecture
  • Linux kernel - This forms the core. This core has lots of drivers that interact with the actual hardware of the device.
  • Libraries - On top of the core are the libraries mostly written in c and c++. One of the libraries is SQLLite which is the underlying DB used by Android. There is also an Android runtime that consists of its own libraries. Each app runs in its own VM.
  • Application Framework - On top of libraries lies the application framework. Most of our coding is done against this framework.
  • Applications - On top of the application framework lies the actual applications. 
Application Life Cycle
  • Anything that we do in an android app can be termed as a task. For ex. sending an email.
  • A task is a set of activities.
  • These activities get arranged in a stack (LIFO)
  • All apps run in their own process. They also have their own Linux user id.
  • Android does the job of managing memory and killing least important ones. There is a chance that one of the applications that was in a stack, got killed because Android memory management kicked in. So we need to take care of this on our end to restore the killed task.
Coding for Android - To start coding for android, you need the following. 
  • JDK - Java Development Kit. JDK is a development environment for building applications.
  • Eclipse - is an open source JAVA IDE backed by Google.
  • Android SDK starter package - contains core SDK tools
  • ADT - Android Development Tools
This was a very basic introduction to working with Android. In the next blog, I will go a bit deeper to creating and understanding the nuances of building Android applications.