Professional Documents
Culture Documents
MAD
MAD
MAD
2 MARKS
1. Define MAD
2. Features of android
• Open Source: Android is an open source platform, allowing developers to
customize and modify the operating system according to their needs.
• Multitasking: Android supports multitasking, enabling users to run multiple
applications simultaneously.
• Customizability: Android offers extensive customization options for users to
personalize their devices with various widgets, themes, and launchers.
• Wide Range of Devices: Android runs on a diverse range of devices, including
smartphones, tablets, smartwatches, TVs, and more.
• Google Integration: Android seamlessly integrates with Google services such as
Gmail, Google Maps, Google Drive, and others.
• App Ecosystem: Android has a vast ecosystem of applications available through
the Google Play Store, offering a wide variety of apps for different purposes.
Backend: The backend refers to the server side of an application, where data
processing, storage, and management occur. It is responsible for handling requests from
the frontend, processing data, and sending the results back to the client. For example,
in a web application, the backend manages databases, performs authentication, and
executes business logic. Technologies commonly used for backend development
include Node.js, Python (with frameworks like Django or Flask), Ruby on Rails, and
Java (with frameworks like Spring Boot).
Frontend: The frontend, also known as the client side, is the part of an application that
users interact with directly. It consists of the user interface and presentation layer of the
application. Frontend technologies include HTML, CSS, and JavaScript frameworks
like React.js, Angular, or Vue.js. For example, in a web application, the frontend is
responsible for displaying content to users, handling user interactions, and sending
requests to the backend for data retrieval or processing.
Mobile: iOS for Apple devices and Android for a wide range of smartphones and
tablets.
Desktop: Windows, macOS, and Linux are common desktop device platforms.
IoT (Internet of Things): Various embedded operating systems and platforms tailored
for IoT devices, such as Arduino, Raspberry Pi, or platforms provided by specific IoT
vendors.
5. What is IDE
• IDE stands for Integrated Development Environment.
• It is a software application that provides comprehensive facilities to
programmers for software development.
• An IDE typically includes a source code editor, build automation tools,
debugging tools, and other features to streamline the development process.
• Examples of popular IDEs include Visual Studio (for Windows), Xcode (for
macOS), and IntelliJ IDEA (for Java development).
5 MARKS
1. Diff native & hybrid
2. History of an android
The history of Android is a fascinating journey that began in 2003 when Andy
Rubin, Rich Miner, Nick Sears, and Chris White founded Android Inc. Their goal was
to develop an advanced operating system for digital cameras. However, recognizing the
potential of their project, they shifted their focus to creating a mobile operating system
to compete with existing platforms.
Throughout its history, Android has evolved into a powerful and versatile platform,
shaping the mobile industry and revolutionizing the way people communicate, work,
and access information.
3. Major components of android
Android is a comprehensive operating system that consists of several major
components, each playing a crucial role in the functioning of the platform. Here are the
major components of Android:
1. Linux Kernel :
At the core of Android is the Linux kernel, which provides essential hardware
abstraction, memory management, process management, and device driver support.
The Linux kernel acts as the bridge between the hardware and the rest of the
Android software stack, enabling communication with device peripherals and
managing system resources.
2. Libraries :
Android includes a set of libraries written in C/C++ that provide core functionality
to the operating system.
These libraries include the libc library for standard C functions, the SQLite database
library for managing structured data, the SSL/TLS library for secure communication,
and other essential libraries for graphics rendering, audio processing, and more.
4. Application Framework :
The Application Framework provides developers with a set of APIs and services for
building Android applications.
It includes components such as Activities, Services, Content Providers, and
Broadcast Receivers, which allow developers to create interactive user interfaces,
background tasks, data sharing, and inter process communication.
Other framework components include the Android Manifest file, which specifies
the configuration and permissions required by an app, and various managers for
handling resources, notifications, location services, and more.
7. System Services :
Android includes a set of system services that run in the background and provide
various functionalities to the operating system and applications.
These services include the Activity Manager, which manages the lifecycle of
applications and their components, the Package Manager, which handles app
installation and management, the WindowManager, which manages the display and
user interface, and many others.
These components work together to create a robust and flexible platform that powers a
wide range of devices and applications in the Android ecosystem.
4. Explain DVM
Dalvik Virtual Machine is a Register Based virtual machine. It was designed and
written by Dan Bornstein with contributions of other Google engineers as part of the
Android mobile phone platform. The Dalvik virtual machine was named after Bornstein
after the fishing village “Dalvík” in Eyjafjörður, Iceland, where some of his ancestors
used to live.
What is DVM
Working of DVM
The Java Compiler(javac) converts the Java Source Code into Java Byte Code(.class).
Then DEX Compiler converts this (.class) file into in Dalvik Byte Code i.e. “.dex” file.
• For Android, a new Virtual machine was developed by Google as stated above.
It uses registers of the CPU to store the operands.
• So no requirement of any pushing and popping of instructions. Hence making
execution faster.
• The instructions operate on virtual registers, being those virtual registers
memory positions in the host device.
• Register based models are good at optimizing and running on low memory.
• They can store common sub expression results which can be used again in the
future. This is not possible in a Stack based model at all. Dalvik Virtual Machine
uses its own byte code and runs “.dex”(Dalvik Executable File) file.
Advantages
• DVM supports the Android operating system only.
• In DVM executable is APK.
• Execution is faster.
• From Android 2.2 SDK Dalvik has it’s own JIT (Just In Time) compiler.
• DVM has been designed so that a device can run multiple instances of the
Virtual Machine effectively.
• Applications are given their own instances.
Disadvantages
• DVM supports only Android Operating System.
• For DVM very few Re Tools are available.
• Requires more instructions than register machines to implement the same high
level code.
• App Installation takes more time due to dex.
• More internal storage is required.
10 MARKS
1. Android architecture
Android architecture contains different number of components to support any android device
needs. Android software contains an open source Linux Kernel having collection of number
of C/C++ libraries which are exposed through an application framework services.
Among all the components Linux Kernel provides main functionality of operating system
functions to smartphones and Dalvik Virtual Machine (DVM) provide platform for running an
android application.
The main components of android architecture are following:
• Applications
• Application Framework
• Android Runtime
• Platform Libraries
• Linux Kernel
Pictorial representation of android architecture with several main components and their sub
components –
Applications –
Applications is the top layer of android architecture. The pre installed applications like home,
contacts, camera, gallery etc and third party applications downloaded from the play store like
chat applications, games etc. will be installed on this layer only.
It runs within the Android run time with the help of the classes and services provided by the
application framework.
Application framework –
Application Framework provides several important classes which are used to create an Android
application. It provides a generic abstraction for hardware access and also helps in managing
the user interface with application resources. Generally, it provides the services with the help
of which we can create a particular class and make that class helpful for the Applications
creation.
It includes different types of services activity manager, notification manager, view system,
package manager etc. which are helpful for the development of our application according to
the prerequisite.
Application runtime –
Android Runtime environment is one of the most important part of Android. It contains
components like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the
base for the application framework and powers our application with the help of the core
libraries.
Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register based virtual
machine and specially designed and optimized for android to ensure that a device can run
multiple instances efficiently. It depends on the layer Linux kernel for threading and low level
memory management. The core libraries enable us to implement android applications using the
standard JAVA or Kotlin programming languages.
Platform libraries –
The Platform Libraries includes various C/C++ core libraries and Java based libraries such as
Media, Graphics, Surface Manager, OpenGL etc. to provide a support for android development.
Media library provides support to play and record an audio and video formats.
Surface manager responsible for managing access to the display subsystem.
SGL and OpenGL both cross language, cross platform application program interface (API)
are used for 2D and 3D computer graphics.
SQLite provides database support and FreeType provides font support.
Web Kit This open source web browser engine provides all the functionality to display web
content and to simplify page loading.
SSL (Secure Sockets Layer) is security technology to establish an encrypted link between a
web server and a web browser.
Linux Kernel –
Linux Kernel is heart of the android architecture. It manages all the available drivers such as
display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which
are required during the runtime.
The Linux Kernel will provide an abstraction layer between the device hardware and the other
components of android architecture. It is responsible for management of memory, power,
devices etc.
The features of Linux kernel are:
✓ Security: The Linux kernel handles the security between the application and the system.
✓ Memory Management: It efficiently handles the memory management thereby
providing the freedom to develop our apps.
✓ Process Management: It manages the process well, allocates resources to processes
whenever they need them.
✓ Network Stack: It effectively handles the network communication.
✓ Driver Model: It ensures that the application works properly on the device and hardware
manufacturers responsible for building their drivers into the Linux build.
2. Requirement Analysis :
• Gathering and documenting functional and non functional requirements based
on user needs, business objectives, and technical considerations.
• Defining user stories, use cases, and system requirements to guide the
development process.
• Prioritizing features and functionalities based on their importance and
complexity.
3. Design :
• Designing the user interface (UI) and user experience (UX) of the mobile app to
ensure it is intuitive, visually appealing, and user friendly.
• Creating wireframes, mockups, and prototypes to visualize the app's layout,
navigation flow, and interactions.
• Incorporating branding elements, color schemes, typography, and visual assets
to maintain consistency and reflect the app's identity.
4. Development :
• Writing code to implement the features and functionality of the mobile app based
on the defined requirements and design specifications.
• Choosing the appropriate programming languages, frameworks, and
development tools for the target platform (e.g., Android, iOS, cross platform).
• Following coding standards, best practices, and security guidelines to ensure the
code is efficient, maintainable, and secure.
5. Testing :
• Conducting various types of testing to identify and fix bugs, ensure functionality,
usability, performance, and compatibility across different devices and platforms.
• Testing methodologies may include unit testing, integration testing, functional
testing, usability testing, performance testing, and security testing.
• Collecting feedback from users, stakeholders, and beta testers to make
improvements and refinements to the app.
6. Deployment :
• Publishing the app to the respective app stores (e.g., Apple App Store, Google
Play Store) or enterprise distribution channels.
• Creating app listings, including descriptions, screenshots, and promotional
materials to attract users.
• Managing the submission process, app review, and approval process by the app
store administrators.
• The mobile application development life cycle is iterative and may involve
multiple iterations of development, testing, and refinement to deliver a high
quality app that meets the needs and expectations of users and stakeholders.
Continuous collaboration, communication, and feedback are essential
throughout the entire process to ensure project success.