22
Jaypar Android Introduction

Android understanding

Embed Size (px)

DESCRIPTION

This presentation basically helps budding enthusiasts to understand the base architecture of Android and board-level features of the platform

Citation preview

Page 1: Android understanding

Jaypar Android Introduction

Page 2: Android understanding

Android Introduction

• Background• What is Android

– Features– Android Architecture

• Linux kernel• Native Libraries• Android Runtime• Application Framework• Applications

• Software Development Kit (SDK)

Outline

Page 3: Android understanding

Android Introduction

• Wikipedia :• An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts.

• Embedded systems are controlled by a main processing core that is typically either a microcontroller or a digital signal processor (DSP).

Embeded System

Page 4: Android understanding

Android Introduction

Internet and Mobile Phone Users

Page 5: Android understanding

Open Handset Alliance• The OHA is a group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel, and HTC …

• Goal –Accelerate innovation in mobile –Offer consumers a richer, less expensive, and better mobile experience

• OHA have developed Android™, the first complete, open, and free mobile platform

Android Introduction

Page 6: Android understanding

Google Phone• HTC Dream , T mobile G1, announced at 2008.09• HTC Hero, HTC Magic, HTC Tatoo• SAMSUNG Galaxy i7500

Android Introduction

Page 7: Android understanding

What is Android ?• Android is a software stack for mobile devices that includes an

operating system, middleware and key applications.• Android is a Java-based operating system that runs on the

Linux 2.6 kernel.• The Android SDK provides the tools and APIs necessary to

begin developing applications on the Android platform using the Java programming language.

Android Introduction

Page 8: Android understanding

Features• Application framework enabling reuse and replacement of

components• Dalvik virtual machine optimized for mobile devices• Integrated browser based on the open source WebKit engine • Optimized graphics powered by a custom 2D graphics library;

3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)

• SQLite for structured data storage

Android Introduction

Page 9: Android understanding

Features(con’t)• Media support for common audio, video, and still image

formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)• GSM Telephony (hardware dependent)• Bluetooth, EDGE, 3G, and WiFi (hardware dependent)• Camera, GPS, compass, and accelerometer (hardware

dependent)• Rich development environment including a device emulator,

tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Android Introduction

Page 10: Android understanding

Android ArchitectureAndroid Introduction

Page 11: Android understanding

Linux Kernel• Android is built on the Linux kernel, but Android is not Linux• Provide core system services such as process, memory, power

management, network stack, driver model and security• Does not include the full set of standard Linux utilities• The Android kernel source is available today

• http://git.android.com

Android Introduction

Page 12: Android understanding

Native Libraries• Bionic Libc• Function Libraries• Native Servers• Hardware Abstraction Libraries

Android Introduction

Page 13: Android understanding

Bionic Libc• C/C++ library• Custom libc implementation, optimized for embedded use.• Pros (compare with glibc)

– BSD License– Small size and fast code paths– Very fast and small custom pthread implementation

• Not compatible with Gnu Libc (glibc)

Android Introduction

Page 14: Android understanding

Function Libraries• WebKit

–Based on open source WebKit browser–Full CSS, Javascript, DOM, AJAX support

• Media Framework–Based on PacketVideo OpenCORE platform–Supports standard video, audio, still-frame formats

• SOLite–Light-weight transactional data store–Back end for most platform data storage

Android Introduction

Page 15: Android understanding

Android Runtime• Application Developed language : Java• Dalvik Virtual Machine

• Instruction set : Dalvik Excutable • Java Standard Library

• Compile java code to Dalvik Executable (dex format)

Android Introduction

Page 16: Android understanding

Dalvik Virtual Machine• Android custom implementation virtual machine

– Provides application portability and runtime consistency– Runs optimized file format (.dex) and Dalvik bytecode– Java .class / .jar files converted to .dex at build time

• Designed for embedded environment– Supports multiple virtual machine processes per device– Highly CPU-optimized bytecode interpreter– Efficiently Using runtime memory

• Core Libraries– Core APIs for Java language provide a powerful, yet simple and

familiar development platform

Android Introduction

Page 17: Android understanding

Application Framework• Activity manager

– Manage the life cycle of applications• Content Provider

– Share data between applications• Resource Manager

– Manager non-code resource• Notification Manager

– Display custom alerts in the status bar• Views System

– A rich and extensible set, which can construct UI

Android Introduction

Page 18: Android understanding

Applications• Use the powerful and flexible application framework to

develop your application• Written by JAVA programming language

Android Introduction

Page 19: Android understanding

Application Development Environment• IDE – Eclipse • Eclipse plug-in - ADT• Software Development Kit (SDK)• Android Emulator• Debbuger

Android Introduction

Page 20: Android understanding

Software Development Kit

• The Android SDK includes a variety of custom tools that help you develop mobile applications on the Android platform.– Android Emulator– Android Development Tools Plugin (for the Eclipse IDE)– Android Virtual Devices (AVDs)– Hierarchy Viewer– Android Debug Bridge (adb)

Android Introduction

Page 21: Android understanding

Android Emulator

• Virtual mobile device• QEMU-based ARM emulator• Design application in an actual

Android runtime environment• Use the same toolchain• Run the same binary

Android Introduction

Page 22: Android understanding

THANK

YOU

Android Introduction

- Y. Ramesh Rao