This document provides an overview of Android including:
- Android's history beginning in 2005 when Google acquired Android Inc. and the Open Handset Alliance was announced in 2007.
- Android's key features including an integrated browser, SQLite database, media support, and hardware features like cellular networking and cameras that vary by device.
- Android is based on the Java programming language and uses the Dalvik virtual machine optimized for mobile devices.
- The Android software stack includes core libraries providing functionality like the webkit engine, SQLite, OpenGL, and more.
- Prior experience with Java and XML is recommended to develop for the Android platform.
3. WHY DEVELOP FOR ANDROID
Android is open
Android is free
Java Based Platform (HTML for Cross
Platform Apps)
Developer Community
Powered by Google, Easy to Access
Google Services
Google Search Rank
4. Vision for Android
Our goal is not just a single device. Our vision is a
mobile platform
That runs on many different devices.
- Eric Schmidt
5. WHAT IS ANDROID
A software platform and operating system for mobile
devices
Based on the linux kernel.
Developed by Google and later the Open handset
Alliance (OHA)
Possibility to write applications in other languages
(i.e. C#, HTML) and compiling it to ARM native code.
An open platform for developers, users & industry
11. ANDROID HISTORY
2005 Google buys Android Inc. Work on
Dalvik starts
2007 Open Handset Alliance announced
Early Software Development Kit
2011 Games, Tablets, TVs
Future Beyond phones
12. ANDROID FEATURES
Software Features
Integrated browser based on the open source WebKit engine
SQLite for relational data storage
Media support for common audio, video, and still image formats(MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Dalvik Virtual Machine optimized for mobile devices
Hardware Features
Cellular networking : GSM, EDGE, 3G (hardware dependent)
LAN : Bluetooth, and Wi-Fi (hardware dependent)
Graphics Hardware Acceleration
Camera, GPS and Compass (hardware dependent)
Touch screen and accelerometer for motion sensing
13. ANDROID AND JAVA
Based on Apache Harmony Java and Dalvik VM
Android’s Java is open as it gets. Although Oracle disagrees
Android Java = Java SE – AWT/Swing + Android API’s
Java Source Code
Java
Compiler
Java Byte Code
Java VM
Java Byte Code
Java Source Code
Java
Compiler
Java Byte Code
Dalvic VM
Dalvic Byte Code
Dex
Compiler
Dalvic Byte Code
14.
15. Core Libraries
Provides the functionality of the JAVA Programming Language
Android Application runs in its own process, with its own instance of the
Dalvik virtual machine
Dalvik VM: Java based license free VM
Register based VM, optimization for low memory requirements
Executes files in the Dalvik Executable (.dex) format
DX tool converts classes to .dex format
Dalvik VM is Android implementation of
Java VM
Dalvik is optimized for mobile devices:
• Battery consumption
• CPU capabilities
Key Dalvik differences:
• Register-based versus stack-based VM
• Dalvik runs .dex files
• More efficient and compact implementation
• Different set of Java libraries than JDK
16. MORE ABOUT DALVIK
Dalvik VM is Android implementation of Java VM
Dalvik is optimized for mobile devices:
• Battery consumption
• CPU capabilities
Key Dalvik differences:
• Register-based versus stack-based VM
• Dalvik runs .dex files
• More efficient and compact implementation
• Different set of Java libraries than JDK
17. • LIBC: C STANDARD LIB.
• SSL: SECURE SOCKET LAYER
• SGL: 2D IMAGE ENGINE
• OPENGL|ES: 3D IMAGE ENGINE
• MEDIA FRAMEWORK: CORE PART OF ANDROID MULTI-MEDIA
• SQLITE: EMBEDDED DATABASE
• WEBKIT: KERNEL OF WEB BROWSER
• FREETYPE: BITMAP AND VECTOR
• SUFRACE MANAGER: MANAGE DIFFERENCE WINDOWS FOR
DIFFERENT APPLICATIONS
18. PREREQUISITES FOR LEARNING
ANDROID
Java Experience: Android development is mostly done in
Java. It’s not a difficult language to learn, per se, but
knowing how it applies to Android development can be
confusing without a firm foundation in the language.
Android Java is not exactly standard Java, but learning
standard Java will make it much easier for you to pick up
Android development.
XML Experience: Knowing XML can be useful in a number
of tech-related fields and Android is no exception. In
particular, XML files make it easier to declare UI elements
in the apps you create. Past experience is a big plus.