Android relies on Linux version 2.6 for core system
services, acts as a layer between hardware and
Manages the following;
Not a Java VM
Design constraints: slow CPU, little RAM
Will run on OS without swap space
On compiling .class files will be changed to .dex format
The .dex format runs on the Dalvik platform.
A set of C/C++ libraries used by various components of the
Some of the core libraries are listed below:
• System C library - an implementation of the standard C system
library (libc), tuned for embedded Linux-based devices
• Media Libraries - the libraries support playback and recording of
many popular audio, video and image formats .
• Surface Manager - manages access to the display subsystem
and seamlessly composites 2D and 3D graphic
• LibWebCore - a modern web browser engine which powers both
the Android browser and an embeddable web view
• SGL - the underlying 2D graphics engine
• FreeType - bitmap and vector font rendering
• SQLite - a powerful and lightweight relational database
engine available to all applications
• Activity Manager : Maintains the activities/screens of the applications
that are displayed
• Window Manager: Co-ordinates the orientation of phone, sensors etc.
• Content : Manages the data to be transferred between
Manager Activities / screens
• View System : Controls the various layouts, button
and UI level objects
• Notification : Deals with the display of AlertBox, Toast msgs.
• Telephony : Handles the process like call, sms, mms etc.
• Location : Uses Google Maps to access location related info
It supports wireless communications using
GSM mobile-phone technology
802.11 Wi-Fi networks
Local database android.database.*
• API Level is an integer value that uniquely identifies the
framework API revision offered by a version of the
Essential for the development of applications on android environment.
Consists of the emulator, documentation, debugging tools and command line
Also requires ADT plugin for merging with eclipse.
Steps you must follow to set up the Android SDK:
• Prepare your development computer and ensure it meets the
• Install the SDK starter package from the table above. (If you're on
Windows, download the installer for help with the initial setup.)
• Install the ADT plugin for Eclipse (if you'll be developing in Eclipse).
• Add Android platforms and other components to your SDK.
Installers available at :
NDK is a companion tool to the Android SDK that lets you
build performance-critical portions of your apps in native
The NDK provides:
• A set of tools and build files used to generate native
code libraries from C and C++ sources
• A way to embed the corresponding native libraries into
application packages files (.apks) that can be deployed on
• A set of native system headers and libraries that will be
supported in all future releases of the Android platform.
Some of the needed Android source code packages
available in http://android.git.kernel.org/ are:
• Designed for platform developers and manufacturers building
• Manages the porting of android operating system into a device
that matches requirements
• Allows the developer to alter based on their device
Following are the main steps for porting Android:
Download the patches for Android
Update RIL (Radio Interface Library) for target platform
Update Board specific components such as Codec, Camera,
Audio, Wifi, Power Management, Bluetooth etc.
Compile Android source code
Burn system image on Target platform
adb push <packagename.apk> /system/app/ ----------put in system folder
adb devices – ----lists which devices are currently attached to your computer
adb install <packagename.apk> – lets you install an Android application on your phone
adb remount – Remounts your system in write mode – this lets you alter system files on
your phone using ADB
adb push <localfile> <location on your phone> – lets you upload files to your phones
adb pull <location on your phone> <localfile> – lets you download files off your phones
adb logcat – starts dumping log from the console to a local file – useful for debugging apps
adb shell <command> – drops you into a basic linux command shell on
your phone with no parameters, or lets you run commands directly
adb devices – lists which devices are currently attached to your computer
• No support for placing or receiving actual phone calls
• No support for camera/video capture (input)
• No support for determining battery charge level
• Emulator limitations
• No support for Bluetooth
• An .apk file extension denotes
an Android Package (APK) file.
• A variant of the JAR format, is used for the
distribution and installation of bundled
components onto the Android mobile device
• An APK file is an archive that usually
contains the following folders:
Dynamic creation of UI
AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
ImageButton imgBtn = new ImageButton(this);
LinearLayout holder = new LinearLayout(this);
UI creation before the creation of apk