The Android platform
- Android platform is software stack
- Supports mobile and tablet
- It has many layers to support application to run.
The
android architecture
- Application layer
- Application framework
- Libraries and DVM
- Linux kernel (provides generic OS services)
Linux
kernel proves following services
- Security
- Memory & process management,
- File & network IO
- Device drivers to communicate with varies hardware
- Common OS services.
Android Linux kernel provides extra service other than Linux
- Power management
- Android shared memory(ashm)
- Low memory killer
- Inter process communication (binder)
Libraries
- System C libraries System libraries written in C/C++ native Libraries
- Bionic Libc
- Surface manager
- Display management
- Media Framework
- Audio/Video
- Webkit
- Browser engine
- Open GL
- Graphics Engines
- SQLite
- Relation Database Engine
Android Runtime
- Support writing and running android applications
- Two components in android run time
Core Java Libraries
- Android application written in Java programming language
- Set of standard functionality are provided by library to write application.
- Basic Java classes – java.* javax.* (data structure, Ux, Concurrency, FILE IO)
- App Lifecycle – Android.*
- Internet/Web service – ORG.Unit Testing – Junit.*
Dalvik Virtual Machine
- Software executes android application.
- Android application written in JAVA which needs JAVA virtual machine to execute.
- But Java virtual machine is too heavy to run on mobile platform it is made for Desktop
- So Android provides the optimized version of Java Virtual machine which runs on Mobile
- Write application in java program (file.java)
- Java compiler compiles file.java to Java byte code files (file.class)
- Dx converts the Byte code files (file.class) to single dex byte code file (classes.dex)
- Dalvix executes the DEX byte code file to machine language
Resource Constrained Environments
- Slower CPU
- Less RAM
- Limited Battery Life
Application Framework
Package manager
-
Maintain the data base of all the installed
applications
Window Manager
-
Manages many windows
-
System Notification
-
Main application window
-
Application Sub window
View System
-
Provides command user interface
-
Icons buttons, text box, label
Resource manager
-
Non compiled resources
-
Strings, graphics, layout files
Activity manager
-
Manages app life cycle and navigation support
Content Provider
-
Inter application data sharing.
Location Manager
-
Provides location and movement information
Notification Manager
-
Place information in notification bar (e.g. SMS,
Missed Call, batter charging info)
Application Layer
- Application like phone , contacts, launcher, SMS
Check out the next blog for setting up your android development environment...