-
Notifications
You must be signed in to change notification settings - Fork 0
android

Android is an open source and Linux-based operating system for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. For detail information on the concept of Android please follow this link: Basic concepts of Android
Android operating system is a stack of software components which is roughly divided into several main layers as shown below in the architecture diagram.

Starting from the bottom we have Linux Kernel , Android is built up on the Linux Kernel. Linux Kernel provides basic system functionality like preemptive multitasking, low-level core system services such as memory, process and power management in addition to providing a network stack and all of the necessary device drivers for hardware such as the device display, Wi-Fi, Bluetooth, audio, etc. It acts as an abstraction layer between the hardware and other software layers.
if you want to get more information about linux kernel, you can follow: http://www.tldp.org/LDP/tlk/tlk.html
Following this link, you can get access to the source code of linux kernel: https://github.com/torvalds/linux
- Libraries carry a set of instructions to guide the device in handling different types of data. For instance, the playback and recording of various audio and video formats is guided by the Media Framework Library.
- Android runtime provides most important part of android called Dalvik Virtual Machine. Dalvik Virtual Machine is similar to JVM but only difference is that it is designed and optimized for Android (like low processing power and low memory environments).Dalvik Virtual machine uses core functions of Linux such as memory management and multithreading and enables each android app to run its own process. https://www.youtube.com/watch?v=xXZakK94hWs
The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.

-
Activity Manager: Manages the activity life cycle of applications.
-
Content Providers: Manage the data sharing between applications.
-
Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
-
Location Manager: Location management, using GPS or cell tower
-
Resource Manager: Manage the various types of resources we use in our Application
ActivityManager am = (ActivityManager) aContext .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> alltasks = am .getRunningTasks(1); `
The applications are at the topmost layer of the Android stack. An average user of the Android device would mostly interact with this layer (for basic functions, such as making phone calls, accessing the Web browser etc.). The layers further down are accessed mostly by developers, programmers and the likes.
