MAD

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

MAD

2 MARKS
1. Define MAD

• Mobile application development refers to the process of creating software


applications specifically designed to run on mobile devices such as
smartphones, tablets, smartwatches, and other portable devices.
• Mobile app development involves designing, building, testing, and deploying
applications tailored to the unique characteristics and constraints of mobile
platforms.
• Mobile application development requires a deep understanding of mobile
platforms, programming languages, development frameworks, UI/UX design
principles, and best practices for performance, security, and usability.
• With the increasing popularity of mobile devices and the growing demand for
mobile apps, mobile application development has become a critical aspect of
software development for businesses and individuals alike.

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.

3. Define backend and front end with an example

Backend and Frontend:

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.

4. Write a note on device platform


Device Platform:
A device platform refers to the underlying software and hardware environment on
which applications run. It includes the operating system, hardware specifications, and
any additional software frameworks or libraries required for developing and running
applications. Examples of device platforms include:

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.

Here's a timeline highlighting key milestones in the history of Android:

1. Android Inc. Formation (2003) :


Android Inc. was founded by Andy Rubin, Rich Miner, Nick Sears, and Chris
White.

2. Google Acquisition (2005) :


In 2005, Google acquired Android Inc., signaling its intention to enter the mobile
market.

3. Early Development (2005 2007) :


Google continued developing the Android operating system, with a focus on
creating a platform that would be open, customizable, and capable of running on various
devices.

4. Open Handset Alliance (2007) :


In November 2007, Google announced the formation of the Open Handset Alliance,
a consortium of technology companies committed to advancing open standards for
mobile devices. The alliance included companies like HTC, Samsung, Motorola, and T
Mobile.

5. Android OS Announcement (2007) :


In the same month, Google unveiled the Android operating system along with the
Open Handset Alliance. The first commercially available Android device, the HTC
Dream (also known as T Mobile G1), was released in 2008.

6. Early Versions (2008 2010) :


Over the next few years, Google released several versions of Android, each
introducing new features and improvements. Key versions during this period included
Android 1.5 Cupcake, Android 2.0 Eclair, and Android 2.2 Froyo.

7. Rapid Expansion (2010 2013) :


Android experienced rapid growth in market share, fueled by the release of popular
devices like the Samsung Galaxy series and the expansion of the Android Market (later
renamed Google Play Store). Major Android versions released during this period
included Android 2.3 Gingerbread, Android 4.0 Ice Cream Sandwich, and Android 4.4
KitKat.

8. Maturation and Dominance (2014 present) :


Android solidified its position as the dominant mobile operating system globally,
powering a wide range of devices, including smartphones, tablets, smartwatches, TVs,
and automotive systems. Google continued to release new versions of Android, with
notable releases such as Android 5.0 Lollipop, Android 6.0 Marshmallow, Android 7.0
Nougat, Android 8.0 Oreo, Android 9 Pie, Android 10, and Android 11.
Android's ecosystem expanded with the introduction of Google services like Google
Assistant, Google Maps, and Google Photos, as well as initiatives like Android One and
Android Go, aimed at providing a consistent experience across devices and improving
accessibility in emerging markets.

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.

3. Android Runtime (ART) :


ART is the runtime environment responsible for executing and managing Android
applications.
In earlier versions of Android, the Dalvik virtual machine (VM) was used, but
starting from Android 5.0 Lollipop, ART became the default runtime.
ART compiles app bytecode into native machine code when an app is installed,
improving performance and reducing memory overhead compared to Dalvik.

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.

5. System Apps and User Apps :


Android includes a set of pre installed system apps that provide core functionality
to the device, such as the Phone app, Contacts app, Messaging app, and Settings app.
Users can also install additional apps from the Google Play Store or other sources,
which are referred to as user apps.

6. Hardware Abstraction Layer (HAL) :


The HAL provides a standardized interface for communicating with hardware
components on the device, such as the camera, sensors, Wi Fi, Bluetooth, and GPS.
It abstracts the hardware specific details, allowing the upper layers of the Android
stack to interact with hardware components in a uniform manner, regardless of the
underlying hardware implementation.

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. MAD life cycle


The mobile application development life cycle outlines the stages and processes
involved in creating a mobile app, from conceptualization to deployment and
maintenance. While specific methodologies may vary depending on the project
requirements and development approach, the following are common phases in the
mobile application development life cycle:

1. Conceptualization and Planning :


• This phase involves defining the purpose, goals, target audience, and scope of
the mobile app.
• Conducting market research, competitor analysis, and feasibility studies to
validate the app idea.
• Creating a project plan, including timelines, budgets, and resource allocation.

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.

7. Maintenance and Updates :


• Monitoring the app's performance, user feedback, and analytics data to identify
issues, address bugs, and make enhancements.
• Releasing updates and new versions of the app to add new features, improve
functionality, fix security vulnerabilities, and support changes in the mobile
operating systems or devices.
• Providing ongoing technical support, troubleshooting, and customer assistance
to ensure a positive user experience and maximize app adoption and retention.

• 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.

You might also like