Mobiledevlopment
Mobiledevlopment
Ans Android is a software package and linux based operating system for
mobile devices such as tablet computers and smartphones.
It is developed by Google and later the OHA (Open Handset Alliance). Java
language is mainly used to write the android code even though other languages
can be used.
2 What is SDK?
Ans SDK stands for software development kit, which is a
collection of tools for developers to build software for specific
platforms. SDKs include components like libraries, debuggers,
and compilers, as well as documentation, tutorials, and
guides. They also contain APIs and frameworks to help
developers build applications faster.
1
applications wrapped with a native wrapper or shell, like
Instagram and Amazon
3
6. Runtime: Android originally used the Dalvik virtual machine
for running applications, but later versions transitioned to
ART (Android Runtime). ART improves performance and
efficiency by compiling bytecode into native machine code
during installation.
7. Dalvik vs. ART: Dalvik relied on just-in-time (JIT)
compilation, whereas ART uses ahead-of-time (AOT)
compilation. This change enhances app performance and
reduces battery consumption.
8. Hardware abstraction layer (HAL): Android's HAL provides a
standardized interface for hardware components, enabling
device manufacturers to easily integrate new hardware with
the OS.
9. User interface: Android features a customizable user
interface, with components such as the status bar, home
screen, notifications, and navigation buttons. Manufacturers
and users can personalize the interface according to their
preferences.
10. Google Play Services: Google Play Services is a crucial
component of Android, providing APIs for various Google
services such as Maps, Firebase, authentication, and more.
It enables developers to integrate these services seamlessly
into their applications.
11. Security features: Android incorporates multiple layers
of security to protect user data and devices. This includes
sandboxing applications, encryption, secure boot, app
permissions, and regular security updates.
12. Fragmentation: One challenge in Android OS design is
fragmentation, where different devices run different
versions of the OS with varying levels of customization.
Google addresses this by providing guidelines for
manufacturers and developers, as well as initiatives like
Project Treble to streamline updates.
13. Customization: Android allows for extensive
customization by both manufacturers and users.
Manufacturers often apply their own skins or overlays on
top of stock Android, while users can further customize their
devices through third-party apps, launchers, and rooting.
4
14. Compatibility: Android prioritizes compatibility across a
wide range of devices, including smartphones, tablets,
wearables, automotive systems, and IoT devices. This
enables developers to target a diverse audience with their
applications.
15. Developer tools: Android provides a comprehensive set
of developer tools, including Android Studio, SDK tools, and
the Android Debug Bridge (ADB). These tools facilitate app
development, testing, debugging, and deployment on
various devices.
5
[or]
7
5. Build and Sync Gradle: Once your project is open,
Android Studio will automatically start building and syncing
Gradle, which is the build system used for Android projects.
Wait for the process to complete, as it may take some time
depending on your project's complexity and your
computer's performance.
6. Run Your Application: After Gradle finishes syncing, you
can run your application by clicking on the green play
button (Run) in the toolbar or selecting Run > Run 'app'. If
you're using a virtual device, Android Studio will prompt you
to select the AVD you want to use, and if you're using a
physical device, Android Studio will automatically detect
and deploy the application to your device.
7. Monitor the Application Execution: Android Studio will
launch the selected device or emulator, install your
application, and start running it. You can monitor the
application's execution, view logs, and debug the code
using the built-in Android Studio tools.
9
They track your head and give you 3D stuff and cool
sounds.
People love VR for games, fun, learning, and training.
7. IoT (Internet of Things) Applications:
IoT apps talk to smart stuff like your thermostat or watch.
You can check and control these things from your phone,
even far away.
They use special codes and rules just for smart gadgets.
[or]
Android is an open-source operating system, based on the
Linux kernel and used in mobile devices like smartphones,
tablets, etc. Further, it was developed for smartwatches and
Android TV. Each of them has a specialized interface. Android
has been one of the best-selling OS for smartphones. Android
OS was developed by Android Inc. which Google bought in
2005. In this article, we will discuss android application types
and categories as well as their advantages and disadvantages.
Firstly let’s see the types of applications, there are mainly 3
types of Android Applications.
Types of Android Applications
1. Native Apps
Native apps are built for particular operating systems, which
are mostly Android and IOS. Also, there are more OS for mobile
applications: Blackberry and Windows. This is available for
download on Google Play Store and for IOS Apple App Store.
Native apps are generally built to make the most of all the
features and tools of the phones such as contacts, cameras,
sensors, etc. Native apps ensure high performance and stylish
user experience as the developers use the native device UI to
build apps. WhatsApp, Spotify, Pokemon GO, etc. are examples
of Natives apps. Android apps are built
using Java, Kotlin, and Flutter, for the frontend, it uses
10
the XML scripting language. And IOS apps built
using Swift, Flutter/ Dart, and C#.
Advantages:
Native apps are designed for the particular operating
system and it gives the best user experience.
Native apps are built with separate gestures it gives a
good experience to users and it is very useful for all
users.
Disadvantages:
Native apps are costly in comparison to others because
they want separate maintenance.
Requires a separate codebase to add new features.
2. Web Apps
Web applications are built only the run on browsers. They are
mainly the integrations of HTML, CSS, and Javascript. It runs
on Chrome, Firefox, and other browsers. The responsiveness
and functionality of the web apps could easily be confused with
a native app since both the Native and web apps have almost
the same features and responsive nature. And one of the major
differences between the two is that native mobile apps can
function both in the offline mode without an active internet
connection and the online mode, whereas the web apps require
an active internet connection for them to work. Gmail, Canva,
and Google Docs are the best examples of web apps.
Advantages:
Easy to build
Web apps are used less storage than other applications.
Web Apps are preinstalled on all devices.
Web applications are easily accessible in any type of
application.
Disadvantages:
Local resources are not available in web apps.
Depends on internet networks/ connections.
3. Hybrid Apps
Hybrid applications are also called Cross Platform Applications.
Hybrid applications are runs on multiple platforms like Android
and IOS. Also, these are made from the integration of web and
native applications. Because hybrid apps use a single codebase,
they can be deployed across devices. For example, when we
11
build the android application, we can also launch it on IOS. As a
cross-platform development option, developers have more
freedom when designing their applications as they do not need
to stick to specific design guidelines from either apple or
google. Instagram, Uber, and Crypto change are examples of
Hybrid apps. For Hybrid application development, we
use Flutter/Dart, React Native, etc.
Advantages:
Users can use it on more than one platform.
It is integrated with browsers.
Maintained by many versions.
Shareable code makes it cheaper than a native app.
Disadvantages:
Slower compared to native apps.
There might be some user interface issues.
In hybrid apps have limitations in using all the Hardware
and Operating Systems features.
12
5. Typography and Typography Hierarchy: Typography plays a significant
role in the readability and visual appeal of an Android application. Using
appropriate font sizes, styles, and hierarchy helps prioritize content and
guide users' attention to important information.
6. Visual Feedback: Providing visual feedback to user interactions (e.g.,
button presses, form submissions) helps users understand that their actions
have been registered. This can include animations, changes in button states,
or progress indicators to indicate loading or processing.
7. Accessibility: Designing for accessibility ensures that all users, including
those with disabilities, can access and interact with the application. This
includes providing alternative text for images, ensuring proper contrast for
text and backgrounds, and implementing features like screen readers and
keyboard navigation.
8. Performance Optimization: Optimizing the app's performance, including
smooth animations, fast loading times, and efficient use of system
resources, contributes to a better user experience. This involves minimizing
unnecessary animations, optimizing image assets, and using background
tasks appropriately.
9. User Feedback and Testing: Soliciting user feedback and conducting
usability testing are essential parts of the design process. Iteratively refining
the design based on user input helps identify and address usability issues,
resulting in a more user-friendly application.
10. Adaptive Icons and Themes: Android applications can utilize
adaptive icons and themes to provide a consistent look and feel across
different devices and versions of Android. Adaptive icons support different
shapes and sizes, while themes allow for customization of colors, styles,
and other visual elements.
1. Android Studio:
Android Studio is the official Integrated Development
Environment (IDE) for Android app development.
It provides a comprehensive set of tools for designing,
building, testing, and debugging Android applications.
13
Android Studio includes features such as code editing,
layout design, performance profiling, and device
emulation through Android Virtual Device (AVD)
manager.
2. Android Debug Bridge (ADB):
ADB is a command-line tool that facilitates
communication between a development computer and
an Android device or emulator.
It enables developers to install and debug applications,
access device shell, transfer files, and monitor system
logs.
3. Android Emulator:
The Android Emulator allows developers to simulate
Android devices on their development computer.
It is integrated into Android Studio and provides various
device configurations, screen sizes, and Android
versions for testing applications.
4. Android Asset Packaging Tool (AAPT):
AAPT is a command-line tool used to package and
manage resources (such as images, XML files, and
layouts) in Android applications.
It compiles resources into binary format, generates
resource indices, and creates the APK (Android
Package) file for distribution.
5. Android SDK Manager:
The Android SDK Manager is a tool within Android
Studio for managing Android SDK components and
system images.
It allows developers to download, install, and update
SDK platforms, tools, and additional components
required for Android app development.
6. Android Device Monitor:
Android Device Monitor is a standalone tool integrated
into Android Studio for monitoring and profiling Android
devices and emulators.
It provides features such as logcat viewer, file explorer,
process monitoring, and heap analysis for debugging
and performance optimization.
7. Lint:
14
Lint is a static code analysis tool provided by Android
Studio for identifying potential issues and
improvements in Android code.
It flags issues related to performance, usability,
security, and correctness, helping developers maintain
high-quality code.
8. ProGuard:
ProGuard is a tool used for code shrinking, obfuscation,
and optimization in Android applications.
It helps reduce the size of the APK file, protect against
reverse engineering, and improve runtime performance
by removing unused code and renaming classes,
methods, and variables.
9. Firebase:
Firebase is a comprehensive platform provided by
Google for building and managing mobile and web
applications.
It offers a variety of services such as authentication,
real-time database, cloud messaging, analytics, and
crash reporting, which can be integrated into Android
apps using Firebase SDKs and libraries.
1. Activities
15
Activities are said to be the presentation layer of our
applications. The UI of our application is built around one or
more extensions of the Activity class. By using Fragments and
Views, activities set the layout and display the output and also
respond to the user’s actions. An activity is implemented as a
subclass of class Activity.
Java
Kotlin
2. Services
3. Content Providers
4. Broadcast Receivers
5. Intents
6. Widgets
These are the small visual application components that you can
find on the home screen of the devices. They are a special
variation of Broadcast Receivers that allow us to create
17
dynamic, interactive application components for users to
embed on their Home Screen.
7. Notifications
Notifications are the application alerts that are used to draw the
user’s attention to some particular app event without stealing
focus or interrupting the current activity of the user. They are
generally used to grab user’s attention when the application is
not visible or active, particularly from within a Service or
Broadcast Receiver. Examples: E-mail popups, Messenger
popups, etc.
[or]
Application components are the essential building blocks of an
Android application. These components are loosely coupled by
the application manifest file AndroidManifest.xml that describes
each component of the application and how they interact.
Sr.N
Components & Description
o
Activities
1 They dictate the UI and handle the user interaction to the smart
phone screen.
Services
2 They handle background processing associated with an
application.
Broadcast Receivers
3 They handle communication between Android OS and
applications.
4 Content Providers
They handle data and database management issues.
18
Activities
Additional Components
S.N
Components & Description
o
1 Fragments
Represents a portion of user interface in an Activity.
Views
2 UI elements that are drawn on-screen including buttons, lists forms
etc.
Layouts
3 View hierarchies that control screen format and appearance of the
views.
4 Intents
Messages wiring components together.
5 Resources
20
External elements, such as strings, constants and drawable
pictures.
6 Manifest
Configuration file for the application.
1. Material Design:
Material Design is a design language developed by
Google that emphasizes a clean, intuitive, and
consistent user interface across all Android devices.
It uses principles such as material surfaces, bold colors,
and meaningful motion to create engaging and
responsive UIs.
2. Responsive Layouts:
Android UIs should be designed to adapt to different
screen sizes, resolutions, and orientations, ensuring a
consistent user experience across various devices.
Techniques such as ConstraintLayout, LinearLayout,
RelativeLayout, and GridLayout can be used to create
responsive layouts.
3. Navigation Patterns:
Effective navigation is essential for guiding users
through an app. Android applications commonly use
navigation patterns such as bottom navigation bars,
side drawers (navigation drawers), tabs, and gestures
for seamless navigation between screens and sections.
4. Typography:
Typography plays a crucial role in Android UI design for
enhancing readability and conveying hierarchy.
Using appropriate font styles, sizes, and weights helps
prioritize content and guide users' attention to
important information.
5. Material Components:
21
Android provides a set of pre-built Material Design
components (such as buttons, text fields, cards, and
dialogs) that can be easily integrated into applications.
These components adhere to Material Design
guidelines, making it easier to create visually appealing
and consistent UIs.
6. Color and Theming:
Color choices can significantly impact the look and feel
of an Android app. Material Design recommends using
a cohesive color palette with primary, secondary, and
accent colors.
Themes and styles allow developers to define
consistent design elements such as colors, typography,
and elevation throughout the app.
7. Feedback and Interactions:
Providing visual feedback for user interactions (e.g.,
button presses, form submissions) enhances usability
and responsiveness.
Animations, transitions, and touch feedback help users
understand that their actions have been registered,
creating a more engaging and intuitive user
experience.
8. Accessibility:
Designing for accessibility ensures that all users,
including those with disabilities, can access and
interact with the app.
Android provides accessibility features such as screen
readers, high contrast mode, and text resizing options
that developers can leverage to make their apps more
inclusive.
9. Consistency and Simplicity:
Consistency in UI elements, interactions, and
navigation patterns throughout the app enhances
usability and reduces user confusion.
Keeping UIs simple and focused on essential tasks
improves user comprehension and efficiency.
22
By considering these principles and best practices, developers
can create intuitive, visually appealing, and user-friendly
Android applications that provide a delightful user experience.
23