Upload
ahsanul-karim
View
1.169
Download
5
Tags:
Embed Size (px)
DESCRIPTION
Android Internals: The Quickest Overview
Citation preview
Android Application Development
Workshop: Day 1 Part 2Ahsanul Karim
Sentinel Solutions Ltd.http://www.sentinelbd.com
http://androidstream.wordpress.com
Android Internals: A Quick Overview
Android is a software stack for wide range of devices including mobiles, tablets and televisions that includes an
Operating SystemMiddlewareKey Applications.
What is Android?
Google’s Andy Rubin describes Android as:
The first truly open and comprehensive platform for mobile devices,
all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation
An Open Platform for Mobile Development
The Stack
The Stack: Linux Kernel
Android runs of LinuxLinux provides:1. Hardware Abstraction
Layer2. Memory Management3. Process Management4. Networking
Users never see Linux sub-system
(adb shell commands opens Linux shell we’ll see later)
The Stack: Linux Kernel
Android runs of LinuxLinux provides:1. Hardware Abstraction
Layer2. Memory Management3. Process Management4. Networking
Users never see Linux sub-system
(adb shell commands opens Linux shell we’ll see later)
The Stack: Native LibrariesBionic, a super fast and small GPL-based libc library optimized for embedded use. Surface Manager for composing window manager with off-screen buffering. 2D and 3D graphics hardware support or software simulation. Media codecs offer support for major audio/video codecs SQLite database WebKit library for fast HTML rendering
The Stack: Android RuntimeDalvik VM
Every Android app runs in its own process, with its own instance of the Dalvik VM.
Why Dalvik VM?
1. Optimized2. Small memory footprints3. Register based architecture4. Security5. Or may be Google’s trick to
avoid SUN’s lawsuit
The Stack: Application FrameworkActivity Manager controls the life cycle of the app
Resource Manager manages everything that is not the code
Location Manager figures out the location of the phone (GPS, GSM, WiFi)
Notification Manager for events such as arriving messages, appointments, etc
The Stack: Applications
Shipped Apps:an email client, SMS program, calendar, maps, browser, contacts etc.
Third Party Apps
This is where we are
What is Android SDK
Provides all necessary tools to develop Android applications. This includes 1. a compiler, 2. debugger 3. a device emulator, 4. Own virtual machine to run Android programs.
background processing rich user interface library OpenGL libraries access to the file system
embedded SQLite database
Android SDK FeaturesFeatures/APIs
Connectivity+Telephony GSM, EDGE, 3G, 4G, and LTE data transfer+calls+SMS
Location API APIs for GPS and Network based location detection
MAP Controls Full support for map integration+controls
Multimedia Full Multimedia hardware control (camera+recorder+audio+video+still images)
Sensors APIs for using sensor hardware including accelerometer, compasses, barometers etc.
Bluetooth & NFC Peer to peer communication
C2DM Cloud to Device Messaging (Push Notification)
Android SDK FeaturesFeatures/APIs
Shared Data Stores Shared Data Stores, APIs for contacts, social networks, calendar and multimedia
Background Services Background Services and processes
Home Screen Widgets+ Live WallpaperHTML5 Web-kit browser
Localization Framework
Reuse of Application componentSQLite Data storage
Android Features (Cont.)
Light Sensor
Thermal Sensor
Gyroscope
Accelerometer
Magnetic Sensor
GPS
Your AppWith logic to
Actuate+ =
TTSVoice Search