Mobile App Assignment
Mobile App Assignment
Mobile App Assignment
INDIVIDUAL ASSIGNMENT
PROGRAME: ODCS 2
You have been doing your mobile application performance testing on a simulator. Why would you need
to do some testing on a real device?
Answer:
Interactive ability
Interact with real device for high reliability
For emulator or simulator, it is not possible to describe all types of user interactions, so errors
may happen and reliability is lower. Moreover, an emulator/simulator can't mimic the following
features:
Mobile phone battery
Mobile phone camera
Difficult mimicking interruptions on calls or sending SMS messages.
There are not too many realistic simulations for mobile phone memory usage
Processing Speed
Software testing on real devices is much faster
Suitable for Debugging
Debugging with real testing devices could be tricky, especially while capturing defects
Cross-Platform Testing
is the practice of testing a program or software across numerous platforms to guarantee that it
works properly on all of them
Cross-Platform Testing can normally be conducted using real devices
Question 2
Android is a Linux-based operating system for mobile devices such as tablet computers, notebooks,
smartphones and electronic book readers. Android is a powerful operating system competing with Apple
4GS and supports great features. Briefly explain eleven features supported by Android
Answer:
1. Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE,
2. Storage
SQLite, a lightweight relational database, is used for data storage purposes.
3. Media support
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV,
JPEG, PNG, GIF, and BMP
4. Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine
supporting HTML5 and CSS3.
5. Multi-touch
Android has native support for multi-touch which was initially made available in handsets such
as the HTC Hero.
6. Multi-tasking
User can jump from one task to another and same time various application can run
simultaneously.
7. Resizable widgets
Widgets are resizable, so users can expand them to show more content or shrink them to save
space
8. Multi-Language
Support single direction and bi-directional text.
9. GCM
Google Cloud Messaging (GCM) is a service that let developers send short message data to their
users on Android devices, without needing a proprietary sync solution.
10. Wi-Fi Direct
A technology that let apps discover and pair directly, over a high bandwidth peer-to-peer
connection.
11. Android Beam
A popular NFC-based technology that let users instantly share, just by touching two NFC-enabled
phones together.
Question 3
Android operating system is a stack of software components which is roughly divided into five parts and
four main layers. Discuss the five parts of Android architecture
Answer:
I. Linux kernel
This provides a level of abstraction between the device hardware and it contains all the essential
hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is
really good at such as networking and a vast array of device drivers, which take the pain out of
interfacing to peripheral hardware.
II. Libraries
libraries are like open-source Web browser engine Web Kit, well known library libc, SQLite database
which is a useful repository for storage and sharing of application data, libraries to play and record audio
and video, SSL libraries responsible for Internet security etc.
In this section of the architecture provides a key component called Dalvik Virtual Machine which is a
kind of Java Virtual Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and multi-threading, 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.
The Android runtime also provides a set of core libraries which enable Android application developers to
write Android applications using standard Java programming language.
The Application Framework provides many higher-level services to applications in the form of Java
classes. Application developers are allowed to make use of these services in their applications.
V. Applications
You will find all the Android application in this layer. You will write your application to be installed on
this layer only. Examples of such applications are Contacts Books, Browser, Games etc.
Question 4
Application components are the essential building blocks of an Android application. These android
application components are loosely coupled by the application manifest file ‘AndroidManifest.xml’ that
describes each component of the application and how they interact. Describe the four main components
that can be used within an Android application.
Answer:
I. Activities
An activity represents a single screen with a user interface, in-short Activity performs actions on the
screen. For example, an email application might have one activity that shows a list of new emails,
another activity to compose an email, and another activity for reading emails. If an application has more
than one activity, then one of them should be marked as the activity that is presented when the
application is launched.
}
II. Services
A service is a component that runs in the background to perform long-running operations. For example,
a service might play music in the background while the user is in a different application, or it might fetch
data over the network without blocking user interaction with an activity.
Broadcast Receivers simply respond to broadcast messages from other applications or from the system.
For example, applications can also initiate broadcasts to let other applications know that some data has
been downloaded to the device and is available for them to use, so this is broadcast receiver who will
intercept this communication and will initiate appropriate action.
A content provider component supplies data from one application to others on request. Such requests
are handled by the methods of the ContentResolver class. The data may be stored in the file system, the
database or somewhere else entirely.
}
Question 8
Most of the entrepreneurs have either already build mobile applications for their business or the plan is
at the top of their business strategies. In the past three years, a million mobile applications have been
submitted to Apple and Android application stores. This number shows how important mobile apps have
become for business in last 5 years. Required
Answer:
I. Development Approach
With development approach, you have to consider nature of your business and future plans to decide
whether to go for a hybrid development, or native development, or even just web based mobile app
development. With this, you need to strategize UI & UX needs. Apart from these, several more aspects
are there which needs to be taken care of. A right start, can take you in the right direction. But, before
the beginning- research, analysis and implementation of ideas are key.
Every business wishes to convey an impressive first impression to their end users. After all, the future of
the app depends on how much your end users liked it. Device compatibility is perhaps the most
important factor for a mobile app. Make sure, not once, but TWICE, your app should provide flawless
service and compatible on multiple devices. OS selection is very much important. Apple and Android
require different development procedure, UI/UX elements and frameworks to execute, so a business
owner must research well about the nature of their business and their target audience before taking a
final call.
You also have to ensure your app works on a smartphone as well as tablet and other devices. You have
to pay keen attention to various aspects of screen resolutions, sizes, and pixel densities.
III. Attention
The first thing to target is to win the attention of your potential users. For this you have to make sure,
you put everything in the app which your user expects. As a business owner, you need to have precise
knowledge of app promotion. A lot of PR & media planning, social & viral marketing should involve.
It won’t take much time for an app to get lost in the app market if not promoted properly to get
attention. For a successful application, you must have the right strategy to penetrate the market
effectively.
IV. Funding
Another commonly faced challenge for building an application is money. It is very important to have a
fair idea of the overall cost associated with your mobile app. It is not a onetime investment. Your app
needs money for any future value addition.
If you are not a technical person, you need extensive market research before finalizing your app
developer. Remember, Quality matters. It is not about you just need a mobile app for your business, you
need a successful mobile app, and quality work should top the priority list.
While developing your Business App always keep one thing in mind, you are making it for your users not
for yourself. It is good if you know all the in & out related to your mobile app. Your customers should
never find any difficulty in navigating your app.
Don’t make your app complicated. It may lead negative customer reviews. It can hurt the number of
downloads and also active users. To overcome this, keep it simple as much as you can. Include helpful
resources in app stores including videos, images and doc files to help your users. Always use icons and
thumbnails which can help you to improve the user experience
VI. Performance
Beside developing a successful app and providing superior customer experience, most app developers
face a common challenge for ensuring a world class app performance. The challenge includes a running
application without crashes or bugs and at the same time consumes as little space in the device without
affecting battery life. During the initial stage of the app development, you need to focus on ensuring that
design performs well on all the available mobile devices.
A good performing app can provide a good number of audiences. Once you have crossed the hurdle of
testing, you can have an opportunity to create an excellent mobile app.
Question 10
The Use CASE tools accelerates the development of project to produce desired result and helps to
uncover flaws before moving ahead with next stage in mobile application development.
b) What are the advantages and disadvantages of Use CASE in mobile application development
c) With vivid example and a well labelled diagram briefly describe three types of relationships used for
use CASE diagram to represent relationship between the actor and the use CASE
Answer:
I. The actor. The system user this can be a single person or a group of people interacting with the
process.
II. The goal. The final successful outcome that completes the process.
III. The system. The process and steps taken to reach the end goal, including the necessary
functional requirements and their anticipated behaviors.
b) What are the advantages and disadvantages of Use CASE in mobile application development
Answer:
ADVANTAGES
The use cases are mainly composed of narrative text. Hence, unlike many other modeling
techniques, the non-technical stake holders (e.g., customers, end users, salesperson etc.) are
also able understand the model for the software system. This means that feedback can be
obtained at a very early stage of the development from the customers and the end users.
Another major advantage of use case modeling is that it requires the identification of
exceptional scenarios for the use cases. This helps in discovering subtle alternate requirements
in the system.
The use case model can be utilized in several other aspect of software development as well, e.g.,
Cost Estimation, Project Planning, Test Case Preparation and User Documentation.
The use case diagram provides a comprehensive summary of the whole software system in a
single illustration.
DISADVANAGES
c) With vivid example and a well labelled diagram briefly describe three types of relationships used for
use CASE diagram to represent relationship between the actor and the use CASE
Answer:
1. Generalization:
It is a kind of relationship. Parent class doesn’t exist without none of its child class. Direction of arrow is
based on dependency.
II. Use Case Generalization: It is a kind of relationship between the use case.
Example: We can do the Payment either by Cash or by Card or by Coupons. Here Parent class doesn’t
exist without its Child class means we have to opt one mode to do the payment.
2. Extend Relationship
Example: To Withdraw cash from ATM it depends upon the customer to take print out of receipt or not.
So, we can say that it is optional relationship between Withdraw Cash from ATM and Print Receipt.
Example: To transfer Cash it is mandatory to check the availability of balance in account. It is the
mandatory relationship between Transfer Cash and Check balance in Account.
a) With the help of a well labeled diagram, briefly explain the core building blocks or fundamental
components of Android
a) With the help of a well labeled diagram, briefly explain the core building blocks or fundamental
components of Android
An android component is simply a piece of code that has a well-defined life cycle e.g. Activity, Receiver,
Service etc.
The core building blocks or fundamental components of android are activities, views, intents, services,
content providers, fragments and AndroidManifest.xml.
1. Activity
An activity is a class that represents a single screen. It is like a Frame in AWT.
2. View
A view is the UI element such as button, label, text field etc. Anything that you see is a view.
3. Intent
Intent is used to invoke components. It is mainly used to:
Start the service
Launch an activity
Display a web page
Display a list of contacts
Broadcast a message
Dial a phone call etc.
4. Service
Service is a background process that can run for a long time. There are two types of services
local and remote. Local service is accessed from within the application whereas remote service
is accessed remotely from other applications running on the same device.
5. Content Provider
Content Providers are used to share data between the applications.
6. Fragment
Fragments are like parts of activity. An activity can display one or more fragments on the screen
at the same time.
7. AndroidManifest.xml
It contains information about activities, content providers, permissions etc. It is like the web.xml
file in Java EE.
8. Android Virtual Device (AVD)
It is used to test the android application without the need for mobile or tablet etc. It can be
created in different configurations to emulate different types of real devices.
Simulate
The emulator provides almost all of the capabilities of a real Android device. You can simulate incoming
phone calls and text messages, specify the location of the device, simulate different network speeds,
simulate rotation and other hardware sensors, access the Google Play Store, and much more.
Testing application
Testing your app on the emulator is in some ways faster and easier than doing so on a physical device.
For example, you can transfer data faster to the emulator than to a device connected over USB.
The emulator comes with predefined configurations for various Android phones, tablets, Wear OS, and
Android TV devices.
In short, An Android emulator is an Android Virtual Device (AVD) that represents a specific Android
device. You can use an Android emulator as a target platform to run and test your Android applications
on your PC. Using Android emulators is optional.
Question 12
a) Provide the existing difference between Mobile Application Testing and Mobile Testing?
a) Provide the existing difference between Mobile Application Testing and Mobile Testing?
Answer:
Mobile testing is usually required to assess the quality of the mobile device itself. Meanwhile, mobile
application testing involves validating an application that will run on the appropriate device with proper
functionality, usability, and consistency.
Mobile testing includes testing of hardware and software for mobile devices. At the same time, mobile
app testing is one of the types of software verification.
Mobile Application testing is the testing of applications on a device which mainly focuses on functions
and features of the application.
And Mobile Testing is the testing of the actual mobile device and focuses on mobile features like Call,
SMS, Contacts, Media Player, inbuilt browsers etc.
b) What is the purpose of setting up permission in mobile application development?
Answer:
Android app permissions can give apps control of your phone and access to your camera, microphone,
private messages, conversations, photos, and more. App permission requests pop up the first time an
app needs access to sensitive hardware or data on your phone or tablet and are usually privacy-related
Anytime you install an app from Google Play, you’ll likely see an app permission request. If you install a
camera app, for example, it will need your permission to access your device’s camera before it can
actually take photos.
Other permissions can include monitoring your location, saving data, sending and receiving calls and
texts, reading sensitive log data, or accessing your contacts, calendar, or browsing history.
REFERENCES
https://www.avg.com/en/signal/guide-to-android-app-permissions-how-to-use-them-
smartly#:~:text=Android%20app%20permissions%20can%20give,and%20are%20usually%20privacy
%2Drelated.
https://www.quora.com/What-is-the-difference-between-mobile-device-testing-and-mobile-
application-testing
https://www.cwipedia.in/2020/09/role-of-emulator-in-android-app-development.html
https://theqalead.com/test-management/what-is-an-android-emulator/
https://www.browserstack.com/android-emulators
https://www.quora.com/What-is-an-Android-emulator-2
https://www.tutorialspoint.com/android/android_emulator.htm
https://www.thegeeksclub.com/what-is-an-android-emulator-how-it-works/
https://developer.android.com/studio/features#:~:text=The%20Android%20Emulator%20installs
%20and,Wear%2C%20and%20Android%20TV%20devices.