What is Android?

- Android is an open-source framework and is based on Linux.
- Android is a mobile operating system.
- Android applications can be built using Java, Kotlin and Flutter.
- Android framework helps to develop advanced and user-friendly applications.
History of Android
- Android OS was developed by Android Inc. in Palo Alto, California in October 2003 by Andy Rubin.
- In 2005, Google acquired Android Inc.
- In 2007, first version was released by Google and commercial version was released in 2008 known as Android 1.0.
- Google later formed OHA (Open Handset Alliance) - established on 5 November 2007, led by Google, including mobile handset makers, app developers, carriers and chip makers.
- OHA's main product is Android platform - world's most popular smartphone platform.

Why Learn Android Technology?
- It is leading the global market - 70%+ market share worldwide.
- Open-source - anyone can learn and build Android applications.
- Not constrained to only cell phones - also used in TV, Watch, Auto, IoT etc.
- Compatible with variety of devices and screen sizes.
Android Features
🎤 Voice Search📸 Screen Capture🌐 Multi Language Support👆 Gestures
📶 Tethering🎬 Media Support💾 Storage⌨️ Auto-correct
📡 Sensors👋 Multi Touch🛠️ Android Framework🔧 Middleware Apps
🗺️ Google Services (YouTube API, Maps, Cloud)
Android Architecture
Android Architecture is a software stack of components required to build Android Application. Main components:
- System Applications
- Middleware Application (Framework + Libraries + Runtime)
- Hardware Abstraction Layer (HAL)
- Linux Kernel

System Application
- Android comes with set of core or predefined apps for Email, SMS, Calendar, Browser, Contacts etc.
- Top layer of architecture is Applications.
- Whatever apps we build will be installed on this layer only.
- System apps function both as apps for users and provide key capabilities that developers can access.
Middleware Application
Middleware contains three layers:
1. Application Framework
2. Native Libraries
3. Android Runtime
1. Application Framework
- Provides classes used to create Android applications in Java.
- Provides lot of classes and interfaces for development.
- APIs written in Java language.
- Includes Android APIs like WifiManager, SensorManager, WallpaperManager, BluetoothAdapter, TelephonyManager, NotificationManager, PackageManager etc.
2. Native Libraries
- Android provides Java framework APIs to expose functionality of native libraries to apps.
- System components like ART and HAL are built from native code that require C and C++ libraries.
- Example: OpenGL ES API for 2D and 3D graphics.
3. Android Runtime
- Android 5.0 (API 21) or higher: Each app runs in its own process with its own instance of Android Runtime (ART).
- Prior to Android 5.0: Dalvik was the Android runtime.
- Java sources compiled into DEX (Dalvik Executable File) bytecode which runs on Android.
- ART includes:
- Ahead-of-time (AOT) and Just-in-time (JIT) compilation
- Better debugging support, sampling profiler, crash reporting
- Optimized Garbage Collection (GC)
Hardware Abstraction Layer (HAL)
- Provides standard interfaces that expose device hardware capabilities to higher-level Java API framework.
- When framework API makes call to access hardware, Android loads library module for that hardware like WiFi, Camera, Bluetooth etc.
Linux Kernel
- Bottom layer and heart of Android architecture.
- Manages all drivers: display, camera, Bluetooth, audio, memory etc. required during runtime.
- Responsible for memory management, power management, device management, resource access etc.
Conclusion
Android architecture's layered stack makes it powerful, secure and customizable. Learning Android opens opportunities in mobile, TV, Wear and IoT development.
No comments:
Post a Comment