0% found this document useful (0 votes)
31 views2 pages

Overview of Android Software Stack

The Android software stack consists of 4 layers - the application layer, application framework, libraries and Dalvik virtual machine, and kernel. The application layer contains basic apps like email and browser. The application framework provides common services and UI elements. Libraries and the Dalvik VM provide media codecs, SQLite database, and runs each app in its own process. The kernel acts as an abstraction layer between hardware and software and provides functionality like process management.

Uploaded by

sakthi siva
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views2 pages

Overview of Android Software Stack

The Android software stack consists of 4 layers - the application layer, application framework, libraries and Dalvik virtual machine, and kernel. The application layer contains basic apps like email and browser. The application framework provides common services and UI elements. Libraries and the Dalvik VM provide media codecs, SQLite database, and runs each app in its own process. The kernel acts as an abstraction layer between hardware and software and provides functionality like process management.

Uploaded by

sakthi siva
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Android Software Stack Structure

 To a user of a mobile handset, various functionalities are provided by a


cooperative working of a number of application programs and system
programs.
 These collection of programs can be decomposed into a hierarchy of four
layers as shown in Fig. 10.5.
 The functionalities of these layers are briefly discussed as follows:

Application layer
 Android comes with a set of basic applications such as an email
client
a browser and those responsible for managing contacts, maps,
calendar, clock etc.
 These applications have been developed using Java and can run
concurrently.
 For example, hearing music and reading an email can be performed
simultaneously.
 Generally cell phone users directly interact with the functionalities
provided by the application layer

Application framework
 An application framework is a set of services that not only turn out to be
handy to use by an application programmer, reduce development effort,
but give a standard structure to applications written by various developers.
 The application framework includes a set of user interface primitive s to
build the interface for an application such as lists, grids, text boxes, buttons,
and even an embeddable web browser.
 It also includes content providers that let applications to access data from
other applications.

Libraries and Dalvik virtual machine


 Android comes with a large number of libraries that can be called through a
Java interface.
 These include Media Codecs like MPEG-4 and MP3, the web browser engine
WebKit, 2D and 3D graphics and the SQL database SQLite.
 The Dalvik virtual machine is something similar to the JVM, but designed for
the Android platform.
 The Dalvik vitual machine makes use of Linux core features like memory
management and multithreading, which is intrinsic in the Java language.
 The Dalvik VM enables every Android application to run in its own process,
with its own instance of the Dalvik virtual machine.

Kernel
 The kernel essentially acts as an abstraction layer between the hardware
and the rest of the software stack.
 Android kernel is built from a basic Linux kernel for the basic
functionalities of the operating system such as process management,
memory management, networking and device driver.

Advantages of Android

Application development in the Android platform is becoming popular due to


the many advantages that it offers.

 The mobile platform Android is an open platform and can be ported on almost
every type of cell phone.
 The Android SDK to develop applications is possible on every operating
system.
 Android requires a low footprint of 250 KB.
 The emulator of the Android platform has a modern design and is easy to use.
 Application installation on the emulator/device is possi ble via Android
Debug Bridge (adb) or via Eclipse (with ADT plug-in)
 Android maintains an excellent good documentation as well as many examples
which cover the most basic and important techniques that help to effortlessly
develop an application.
 Android supports robust libraries for media access, communication and data
transfer.
 Android offers a real database SQLite using which meaningful data manipulation
and data sharing across applications is possible.
 Android has an integrated web browser which gives an experience similar to
web browsing using a desktop PC.


 Android-based application development is carried out using the extremely
popular, powerful, and yet open programming language Java.

Common questions

Powered by AI

The open software nature of the Android platform significantly contributes to its versatility and widespread adoption. Being open-source, it allows manufacturers to freely modify and adapt the operating system to their specific hardware configurations, facilitating a wide range of device types from various manufacturers. This flexibility encourages innovation and competition among hardware producers, resulting in a diverse ecosystem of devices tailored to different market needs and consumer preferences. This adaptability is a key driver behind Android's dominant presence in the global mobile market .

The application layer of the Android software stack includes basic applications such as an email client, a browser, and applications for managing contacts, maps, calendar, and clock. These applications, developed using Java, allow users to perform tasks concurrently, such as listening to music while reading an email. This layer enhances user interaction by providing direct access to essential tools and features that users commonly engage with on their mobile devices, facilitating multitasking and efficient user experiences .

Android's integrated web browser significantly enhances user experience by providing a browsing experience comparable to that of a desktop PC. This integration ensures that users can browse the web seamlessly with familiar features and performance, offering a consistent browsing experience across devices. This capability is crucial for maintaining user satisfaction, as it meets users' expectations for mobile web interactions by providing flexibility and convenience in accessing web content on the go .

Android's performance and functionality are significantly enhanced by its libraries and the Dalvik virtual machine. The libraries provide essential functionalities such as multimedia codecs like MPEG-4 and MP3, 2D and 3D graphics, and database support via SQLite. The Dalvik virtual machine, designed specifically for Android, manages application isolation and memory by allowing each application to run in its own process with its own instance of the VM. This setup utilizes Linux core features like memory management and multithreading, thus optimizing application performance and stability .

Using Java as the primary programming language for Android application development profoundly impacts the platform's accessibility and popularity. Java's widespread use and mature ecosystem provide developers with an extensive range of tools, libraries, and community support. Its strong object-oriented features align well with Android's framework architecture, promoting reusable, maintainable, and scalable code. Furthermore, Java's platform-independence aligns with Android's goal of universality across device types, enabling broad compatibility and ease of app porting .

The Android kernel serves as an abstraction layer that manages interactions between the hardware and the upper layers of the software stack. Built on a basic Linux kernel, it provides fundamental operating system functionalities such as process management, memory management, networking, and device drivers. This abstraction allows higher-level components to function without directly interacting with the hardware, thus ensuring a stable and standardized environment for applications and system processes to execute efficiently .

The Android application framework supports developers by providing a set of services that simplify development and ensure a standard application structure. It includes user interface primitives like lists, grids, text boxes, buttons, and an embeddable web browser, which help developers construct intuitive user interfaces. Additionally, it offers content providers that enable data access from other applications, thereby facilitating data sharing and integration across different applications .

Developing applications on the Android platform offers several advantages, including its open nature, which enables it to be ported to almost every type of cell phone. The Android SDK is versatile, allowing development on various operating systems. Android's low footprint of 250 KB makes it efficient, and its emulator is modern and user-friendly. The platform also provides excellent documentation, examples, and robust libraries for media access, which together facilitate effortless development and enhance developer productivity .

The Android Debug Bridge (adb) and Eclipse with the ADT plug-in are powerful tools that facilitate the development and testing of Android applications. ADB provides a versatile command-line interface that allows developers to perform various device actions, install and debug apps, and access Unix shell commands on the connected emulator or device. Eclipse with the ADT plug-in offers a comprehensive environment for Android development, extending Eclipse capabilities with additional Android-specific features, thus streamlining the coding, debugging, and deployment workflows, increasing developer efficiency and effectiveness .

Android's media access is supported by robust libraries that enable seamless integration and manipulation of multimedia elements within applications. Additionally, the platform offers a real database, SQLite, for meaningful data manipulation and data sharing across applications. These capabilities allow developers to create rich, data-driven applications that handle multimedia content efficiently, enhancing the user experience and expanding the functionality of Android applications .

You might also like