Professional Documents
Culture Documents
Submitted by
Of
MASTERS OF COMPUTER APPLICATIONS
SESSION (2016-2018)
In
University Institute of Computing
At
CHANDIGARH UNIVERSITY
DECLARATION
I
ACKNOWLEDGEMENT
II
CERTIFICATE
III
UNIVERSITY PROFILE
Chandigarh University (CU) is an Indian institute for higher education, known traditionally
for research and education in the fields of engineering, architecture, business management,
pharmacy, sciences, hotel management and tourism, animation and multimedia,. It has been
established under ‘The Chandigarh University Act’ and is recognized by UGC under section
2(f) of UGC Act 1956. Located in Greater Mohali, Punjab, CU is the largest university in the
vicinity of Chandigarh with more than 15, 000 students from all across India and 6 countries
around the world.
IV
INDEX
Sr. No TITLE Page
No
1. Introduction to android 1
2. Introduction of Project 18
3. Idea 19
4. Objective 19
5. Existing System 19
6. Project Scope 19
7. SDLC 20
8. Feasibility Study 33
9. Team Structure 37
10. Software requirement 38
11. Diagrams 40
12. Source Code 44
13. Enhancements 77
14. Conclusion 78
15. Bibliography 79
Introduction To Android
Android is an open source and Linux-based Operating System for mobile devices such as
smartphones and tablet computers. Android was developed by the Open Handset Alliance,
led by Google, and other companies. Android offers a unified approach to application
development for mobile devices which means developers need to develop only for Android,
and their applications should be able to run on different devices powered by Android. The
first beta version of the Android Software Development Kit (SDK) was released by Google in
2007, whereas the first commercial version, Android 1.0, was released in September 2008.
On June 27, 2012, at the Google I/O conference, Google announced the next Android
version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of
improving the user interface, both in terms of functionality and performance. The source code
for Android is available under free and open source software licenses. Google publishes most
of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under
1
Why Android?
Features of Android
Android is a powerful operating system competing with Apple 4GS and supports great
features. Few of them are listed below −
1 Beautiful UI
2 Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and
2
WiMAX.
3 Storage
4 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.
5 Messaging
6
Web browser
7 Multi-touch
Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.
8 Multi-tasking
User can jump from one task to another and same time various
application can run simultaneously.
9 Resizable widgets
Widgets are resizable, so users can expand them to show more content
or shrink them to save space.
10 Multi-Language
11 GCM
3
Google Cloud Messaging (GCM) is a service that lets developers send
short message data to their users on Android devices, without needing a
proprietary sync solution.
12 Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-
bandwidth peer-to-peer connection.
13 Android Beam
Android Applications
Android applications are usually developed in the Java language using the Android Software
Development Kit.
Once developed, Android applications can be packaged easily and sold out either through a
store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-droid and
the Amazon Appstore.
Android powers hundreds of millions of mobile devices in more than 190 countries around
the world. It's the largest installed base of any mobile platform and growing fast. Every day
more than 1 million new Android devices are activated worldwide.
This tutorial has been written with an aim to teach you how to develop and package Android
application. We will start from environment setup for Android application programming and
then drill down to look into various aspects of Android applications.
There are many android applications in the market. The top categories are −
4
History of Android
The code names of android ranges from A to N currently, such as Aestro, Blender, Cupcake,
Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat,
Lollipop and Marshmallow. Let's understand the android history in a sequence.
API Level is an integer value that uniquely identifies the framework API revision offered by
a version of the Android platform.
5
Platform API VERSION_CODE
Version Level
6
Android 3.1.x 12 HONEYCOMB_MR1
10 GINGERBREAD_MR1
Android 2.3.4
Android 2.3.3
Android 2.3.1
Android 2.3
Android IDEs
There are so many sophisticated Technologies are available to develop android applications,
the familiar technologies, which are predominantly using tools as follows
Android Studio
Eclipse IDE(Deprecated)
Android – Architecture
Android operating system is a stack of software components which is roughly divided into
five sections and four main layers as shown below in the architecture diagram.
7
Linux kernel
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. 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.
Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser engine
WebKit, 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.
Android Libraries
This category encompasses those Java-based libraries that are specific to Android
development. Examples of libraries in this category include the application framework
libraries in addition to those that facilitate user interface building, graphics drawing and
database access. A summary of some key core Android libraries available to the Android
developer is as follows −
8
android.app − Provides access to the application model and is the cornerstone of all
Android applications.
android.content − Facilitates content access, publishing and messaging between
applications and application components.
android.database − Used to access data published by content providers and includes
SQLite database management classes.
android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
android.os − Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
android.text − Used to render and manipulate text on a device display.
android.view − The fundamental building blocks of application user interfaces.
android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
android.webkit − A set of classes intended to allow web-browsing capabilities to be
built into applications.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn
our attention to the C/C++ based libraries contained in this layer of the Android software
stack.
Android Runtime
This is the third section of the architecture and available on the second layer from the
bottom. This section 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.
Application Framework
The Application Framework layer 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.
9
Content Providers − Allows applications to publish and share data with
other applications.
Resource Manager − Provides access to non-code embedded resources
such as strings, color settings and user interface layouts.
Notifications Manager − Allows applications to display alerts and
notifications to the user.
View System − An extensible set of views used to create application user
interfaces.
Applications
You will find all the Android application at the top layer. You will write your application to
be installed on this layer only. Examples of such applications are Contacts Books, Browser,
Games etc.
There are following four main components that can be used within an Android application −
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.
Content Providers
4
They handle data and database management issues.
10
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.
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
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.
Content Providers
A content provider component supplies data from one application to others on request. Such
requests are handled by the methods of the ContentResolverclass. The data may be stored in
the file system, the database or somewhere else entirely.
11
A content provider is implemented as a subclass of ContentProvider class and must
implement a standard set of APIs that enable other applications to perform transactions.
We will go through these tags in detail while covering application components in individual
chapters.
Additional Components
There are additional components which will be used in the construction of above mentioned
entities, their logic, and wiring between them. These components are −
Fragments
1
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.
Intents
4
Messages wiring components together.
Resources
5
External elements, such as strings, constants and drawable pictures.
Manifest
6
Configuration file for the application.
12
Sr.No Folder, File & Description
.
Java
1 This contains the .java source files for your project. By default, it
includes an MainActivity.java source file having an activity class that
runs when your app is launched using the app icon.
res/drawable-hdpi
2 This is a directory for drawable objects that are designed for high-
density screens.
res/layout
3
This is a directory for files that define your app's user interface.
res/values
4 This is a directory for other various XML files that contain a collection of
resources, such as strings and colours definitions.
AndroidManifest.xml
Build.gradle
Following section will give a brief overview of the important application files.
package com.example.helloworld;
13
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
14
<activity android:name=".MainActivity">
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
The <activity> tag is used to specify an activity and android:name attribute specifies the
fully qualified class name of the Activity subclass and the android:label attributes specifies a
string to use as the label for the activity. You can specify multiple activities using <activity>
tags.
The action for the intent filter is named android.intent.action.MAIN to indicate that this
activity serves as the entry point for the application. The categoryfor the intent-filter is
named android.intent.category.LAUNCHER to indicate that the application can be launched
from the device's launcher icon.
The @string refers to the strings.xml file explained below. Hence, @string/app_name refers
to the app_name string defined in the strings.xml file, which is "HelloWorld". Similar way,
other strings get populated in the application.
Following is the list of tags which you will use in your manifest file to specify different
Android application components −
<resources>
<string name="app_name">HelloWorld</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</RelativeLayout>
16
like android:layout_width, android:layout_height etc which are being used to set its width
and height etc.. The @string refers to the strings.xml file located in the res/values folder.
Hence, @string/hello world refers to the hello string defined in the strings.xml file, which is
"Hello World!".
17
Introduction Of Project
Android is the world’s most popular operating system for mobile devices and tablets. It is an
open source operating system, created by Google, and available to all kinds of developers
with various expertise levels, ranging from rookie to professional. Building a simple audio
player with basic controls like play, pause, forward, backward, next, previous, playlist is done
since long. This app basically will read all audio files (.mp3) from SD card and plays selected
song.
Our project named as SG Player,In this application you will find the interactive GUI , this is
to design and implement user friendly, platform independent music player which can play
It has an ability to fetch the song lyrics and shows the lyrics of any songs which is playing at
your Device with the help of Database to fetch the lyrics from the third-party API. There are
In a static music user can listen from the SD card. Memory card in a store the song. And in a
dynamic module user can also listen the song as well as get the lyrics using internet (Third
18
Idea
The aim of this project is to provide a platform where a user can Listen different type of
music. And provides you a Lyrics Enabled song player where you find the lyrics of the
Objective
1. Main objective of the proposed project is to put all possible thing to one Player.
2. The objective is to make use of android OS with more public interest and make it more
Existing System
In a existing system that user we can play store the song from SD card. In a main application
to the functionality by user can listen song as well as watch lyrics of the Song which is
currently playing.
Project Scope
Vision
To create a player application describes
• Working of Database,
Mission
To effectively enforce the Knowledge and improve the programming skills to understand the
concept of Android.
19
SOFTWARE DEVELOPMENT LIFE CYCLE
The systems development life cycle (SDLC), also referred to as the application development
A systems development life cycle is composed of a number of clearly defined and distinct
work phases which are used by systems engineers and systems developers to plan for, design,
build, test, and deliver information systems. The systems development life cycle (SDLC), also
referred to as the application development life-cycle, is a term used in systems engineering, information
systems and software engineering to describe a process for planning, creating, testing, and deploying an
information system.[1] The systems development life-cycle concept applies to a range of hardware and
software configurations, as a system can be composed of hardware only, software only, or a combination
of both.[2] Like anything that is manufactured on an assembly line, an SDLC aims to produce
high quality systems that meet or exceed customer expectations, based on customer
requirements, by delivering systems which move through each clearly defined phase, within
scheduled time-frames and cost estimates. Computer systems are complex and often
(especially with the recent rise of service-oriented architecture) link multiple traditional
20
SDLC can be described along a spectrum of agile to iterative to sequential. Agile
methodologies, such as XP and Scrum, focus on lightweight processes which allow for rapid
changes (without necessarily following the pattern of SDLC approach) along the
development cycle. Iterative methodologies, such as Rational Unified Process and dynamic
systems development method, focus on limited project scope and expanding or improving
products by multiple iterations. Sequential or big-design-up-front (BDUF) models, such as
waterfall, focus on complete and correct planning to guide large projects and risks to
successful and predictable results[citation needed]. Other models, such as anamorphic development,
tend to focus on a form of development that is guided by project scope and adaptive iterations
of feature development.
In project management a project can be defined both with a project life cycle (PLC) and an
SDLC, during which slightly different activities occur. According to Taylor (2004) "the
project life cycle encompasses all the activities of the project, while the systems development
life cycle focuses on realizing the product requirements".[5]
SDLC is used during the development of an IT project, it describes the different stages
involved in the project from the drawing board, through the completion of the project.
History
The product life cycle describes the process for building information systems in a very
deliberate, structured and methodical way, reiterating each stage of the product's life. The
systems development life cycle, according to Elliott & Strachan & Radford (2004),
"originated in the 1960s, to develop large scale functional business systems in an age of large
scale business conglomerates. Information systems activities revolved around heavy data
processing and number crunching routines".[6]
Several systems development frameworks have been partly based on SDLC, such as
the structured systems analysis and design method (SSADM) produced for the UK
government Office of Government Commerce in the 1980s. Ever since, according to Elliott
(2004), "the traditional life cycle approaches to systems development have been increasingly
replaced with alternative approaches and frameworks, which attempted to overcome some of
the inherent deficiencies of the traditional SDLC".[6]
The system development life cycle framework provides a sequence of activities for system
designers and developers to follow. It consists of a set of steps or phases in which each phase
of the SDLC uses the results of the previous one.
The SDLC adheres to important phases that are essential for developers, such
as planning, analysis, design, and implementation, and are explained in the section below. It
includes evaluation of present system, information gathering, and feasibility study and
request approval. A number of SDLC models have been created: waterfall, fountain, and
spiral build and fix, rapid prototyping, incremental, and synchronize and stabilize. The oldest
of these, and the best known, is the waterfall model: a sequence of stages in which the output
21
of each stage becomes the input for the next. These stages can be characterized and divided
up in different ways, including the following:
Preliminary analysis:
1. Collection of Facts: End user requirements are obtained through documentation, client
interviews, observation and questionnaires,
Scrutiny of the existing system: Identify pros and cons of the current system in-place, so as to
carry forward the pros and avoid the cons in the new system.
Analyzing the proposed system: Solutions to the shortcomings in step two are found and any
specific user proposals are used to prepare the specifications.
Systems design: Describes desired features and operations in detail, including screen
layouts, business rules, process diagrams, pseudo code and other documentation.
Integration and testing: Brings all the pieces together into a special testing environment,
then checks for errors, bugs and interoperability.
22
Acceptance, installation, deployment: The final stage of initial development, where
the software is put into production and runs actual business.
Maintenance:
During the maintenance stage of the SDLC, the system is assessed to ensure it does not
become obsolete. This is also where changes are made to initial software. It involves
continuous evaluation of the system in terms of its performance.
Evaluation:
Some companies do not view this as an official stage of the SDLC, while others consider it to
be an extension of the maintenance stage, and may be referred to in some circles as post-
implementation review. This is where the system that was developed, as well as the entire
process, is evaluated. Some of the questions that need to be answered include: does the newly
implemented system meet the initial business requirements and objectives? Is the system
reliable and fault-tolerant? Does the system function according to the approved functional
requirements? In addition to evaluating the software that was released, it is important to
assess the effectiveness of the development process. If there are any aspects of the entire
process, or certain stages, that management is not satisfied with, this is the time to improve.
Evaluation and assessment is a difficult issue. However, the company must reflect on the
process and address weaknesses.
Disposal:
In this phase, plans are developed for discarding system information, hardware and software
in making the transition to a new system. The purpose here is to properly move, archive,
discard or destroy information, hardware and software that is being replaced, in a manner that
prevents any possibility of unauthorized disclosure of sensitive data. The disposal activities
ensure proper migration to a new system. Particular emphasis is given to proper preservation
and archival of data processed by the previous system. All of this should be done in
accordance with the organization's security requirements.
In the following example (see picture) these stages of the systems development life cycle are
divided in ten steps from definition to creation and modification of IT work products:
23
REQUIREMENT ANALYSIS
Training, experience and common sense are required for collection of the information needed
to do the analysis. The environment in which analysis is carried out plays an important role
that is how the system analyst deals with the user requirements or demands. With the
corporation of our team and satisfaction of the user analysis part can be successfully taken. In
analysis, we design the system logically that is how the system will look like, after the
analysis part we move from logical system to physical system that is how actually the system
will be. So after analysis that is logical there is a physical part called design that is very
important stage in system development life cycle.
Once analysis is completed, the analyst has a firm understanding of what is to be done. The
next step is to decide how the problem might be solved. Thus, in system design, we move
from the logical to the physical aspects of the life cycle.
O2I's team of software development experts, technical writers and business analysts come
together and astutely analyze your requirements to help you develop an application. We can
develop a detailed requirement document which you can use to get quotes for the project or
pass on to a development team.
24
O2I has extensive software development expertise, so we understand the optimum level of
detail required to move software requirement specification to the development phase. We
have experience working across a wide range of projects, both large and small across various
verticals and industries. We have on our team professionals with expert business analysis
skills and experienced Technical writers.
Requirement analysis covers those tasks to determine the needs of a proposed software
solution or product, often involving requirements of various stakeholders associated with the
solution. Requirement analysis is a key component in the software development lifecycle and
is usually the initial step before the project commences.
1. Requirements Scope
The scope and boundary of the proposed software solution is drawn based on business
requirements and goals.
25
2. Stakeholder Identification
Identifying stakeholders such as customers, end-users, system administrators etc. is the next
step in requirements analysis. This is one of the most important steps in the whole process as
proper identification of stakeholders enables the business analyst to draw a road map for
gathering requirements.
4. Requirement Analysis
Once user data is gathered, structured analysis is carried out on this data to determine models.
Usually use-cases are developed to analyze the data on various parameters depending on the
larger goals of the software solution. We use requirements animation, automated reasoning,
knowledge-based critiquing, consistency checking, analogical and case-based reasoning.
26
Problem Analysis
Analysis is detailed study of various operation performed by the system and their relationship
within and outside the system. Outside factor also plays major role in the system like
government, vendors, customers etc. A key question is what must be done to solve the
problem? One aspect of the analysis is defining the boundaries of the system and
determining whether or not a candidate system should consider other related systems.
During analysis, data are collected on available files, decision points and transaction handled
by the present system. There are many tools, which are available to do the analysis part like
interview, quiz
The environment in which analysis is carried out plays an important role that is how the
system analyst deals with the interviewing staff. With the corporation and satisfaction of the
user staff analysis part can be successfully taken. In analysis, we design the system logically
that is how the system will look like, after the analysis part we move from logical system to
physical system that is how actually the system will be. So after analysis that is logical there
is a physical part called design that is very important stage in system development life cycle.
Although your organization may have chosen to tackle a seemingly insurmountable problem,
the process you will use to solve it is not complex. It does, however, take time, both to
formulate and to fully analyze the problem. Most people underestimate the work they need to
do here and the time they'll need to spend. But this is the legwork, the foundation on which
you'll lay effective solutions. This isn't the time to take shortcuts.
Three basic concepts make up the core of this chapter: clarifying, deciding, and analyzing.
Let's look at each in turn.
If you are having a problem-solving meeting, then you already understand that something
isn't quite right - or maybe it's bigger than that; you understand that something is very, very
wrong. This is your beginning, and of course, it makes most sense to...
Start with what you know. When group members walk through the door at the beginning of
the meeting, what do they think about the situation? There are a variety of different ways to
garner this information. People can be asked in advance to write down what they know about
27
the problem. Or the facilitator can lead a brainstorming session to try to bring out the greatest
number of ideas. Remember that a good facilitator will draw out everyone's opinions, not
only those of the more vocal participants.
Decide what information is missing. Information is the key to effective decision making. If
you are fighting child hunger, do you know which children are hungry? When are they
hungry - all the time, or especially at the end of the month, when the money has run out? If
that's the case, your problem statement might be, "Children in our community are often
hungry at the end of the month because their parents' pay checks are used up too early."
Compare this problem statement on child hunger to the one given in "The nature of
problems" above. How might solutions for the two problems be different?
Gather information on the problem. You might collect any of several types of
information available. Most commonly, what you hear or read will fall into one of the
following categories:
Facts (15% of the children in our community don't get enough to eat.)
Speculation (Many of the hungry children probably live in the poorer neighbourhoods in
town.)
Opinion (I think the reason children go hungry is because their parents spend all of their
money on cigarettes.)
When you are gathering information, you will probably hear all four types of information,
and all can be important. Speculation and opinion can be especially important in gauging
public opinion. If public opinion on your issue is based on faulty assumptions, part of your
solution strategy will probably include some sort of informational campaign.
For example, perhaps your coalition is campaigning against the death penalty, and you find
that most people incorrectly believe that the death penalty deters violent crime. As part of
your campaign, therefore, you will probably want to make it clear to the public that it simply
isn't true.
Where and how do you find this information? It depends on what you want to know. You can
review surveys, interviews, the library and the internet.
28
Define the problem. With the information in front of you, you're ready to write down a
"problem statement" - a comprehensive definition of the problem. Before you do, remember
two general principles:
Define the problem in terms of needs, and not solutions. If you define the problem in terms of
possible solutions, you're closing the door to other, possibly more effective solutions.
"Violent crime in our neighbourhood is unacceptably high," offers space for many more
possible solutions than, "We need more police patrols," or, "More citizens should have guns
to protect themselves."
Define the problem as one everyone shares; avoid assigning blame for the problem. This is
particularly important if different people (or groups) with a history of bad relations need to be
working together to solve the problem. Teachers may be frustrated with high truancy rates,
but blaming students uniquely for problems at school is sure to alienate students from helping
to solve the problem.
You can define the problem in several ways; the facilitator can write a problem statement on
the board, and everyone can give feedback on it, until the statement has developed into
something everyone is pleased with, or you can accept someone else's definition of the
problem, or use it as a starting point, modifying it to fit your needs.
After you have defined the problem, ask if everyone understands the terminology being used.
Define the key terms of your problem statement, even if you think everyone understands
them.
System Analysis
The term system refers to an orderly grouping of interdependent components linked together
according to a plan to achieve a specific objective. The idea of system becomes most
practical and necessary in conceptualizing the interrelationship and integration of operations
especially when using computers. Thus, a system is a way of thinking of organizations and
their problems. It involves a set of techniques that helps in solving the problems. A system
has many elements these are input and output processors, control, feedback, environment,
boundary and interface. System takes input from outside and gives output to outside. So
practically system is an open system that interacts with the environment. The development of
a computer-based information system includes a systems analysis phase. This helps produce
the data model, a precursor to creating or enhancing a database (see Christopher J. Date "An
Introduction to Database Systems"). There are a number of different approaches to system
analysis. When a computer-based information system is developed, systems analysis
(according to the Waterfall model) would constitute the following steps:
Roles
A systems analyst may:
Identify, understand and plan for organizational and human impacts of planned systems,
and ensure that new technical requirements are properly integrated with existing
processes and skill sets.
Plan a system flow from the ground up.
30
Interact with internal users and customers to learn and document requirements that are
then used to produce business requirements documents.
Write technical requirements from a critical phase.
Interact with designers to understand software limitations.
Help programmers during system development, e.g. provide use cases, flowcharts or
even database design.
Perform system testing.
Deploy the completed system.
Document requirements or contribute to user manuals.
Whenever a development process is conducted, the system analyst is responsible for
designing components and providing that information to the developer.
Initial Investigation
INITIAL INVESTIGATION
This is the first step in system development life cycle. For making a project, it is very
important to understand the overall working of the system. To know about the overall
working of the system initial investigation is carried out. Initial investigation helps to
INFORMATION GATHERING
31
After defining the problem, the next step in the system analysis is to gather information.
Information gathering is an art and science. The approach and manner in which information
is gathered require persons with sensitivity, commonsense and knowledge of what and when
to gather and what channels to use in securing information. This means that information
getting is neither easy nor routine. Much preparation, experience and training are required.
Before one determines where to go for information or what tool to use, the first requirement
is to figure out what information to gather. The approach and the manner in which the
information is gathered require a person with sensitivity, skill and common sense of the
following: -
We get familiar with the News Agency and the present system through available pro-
Knowing how information is to be accessed from the system and subsequently mak-
Before one determines where to go and what tool to use, first requirement is to figure out
what information to gather. The basic information required is how organization of personnel
Sources of information
Information is gathered from two main sources namely personal and written docu-
32
Two main sources of information are: -
External sources
Internal sources.
Feasibility Study
The feasibility of the system can be judged according to its workability impact on the
organization, ability to meet user needs and the effective use of resources. One should keep in
mind the need of the user and how does a candidate system meet it.
A feasibility study aims to objectively and rationally uncover the strengths and weaknesses of
the environment, the resources required to carry through, and ultimately the prospects for
success. In its simplest terms, the two criteria to judge feasibility are cost required and value
to be attained.
Technical Feasibility
This Information System for Project Online conference serves the requirement of the
organization and is very much technically feasible. We have technical guarantee and
reliability as it has been tested by different programmers. This project can be run on
33
computers having 6GB RAM having Windows installed on it. It is easy to use even by the
persons with little knowledge of computers.
This assessment is based on an outline design of system requirements, to determine whether
the company has the technical expertise to handle completion of the project. When writing a
feasibility report, the following should be taken to consideration:
A brief description of the business to assess more possible factors which could affect the
study
The part of the business being examined
The human and economic factor
The possible solutions to the problem
At this level, the concern is whether the proposal is both technically and legally feasible
(assuming moderate cost).
The technical feasibility assessment is focused on gaining an understanding of the present
technical resources of the organization and their applicability to the expected needs of the
proposed system. It is an evaluation of the hardware and software and how it meets the need
of the proposed system
Economic Feasibility
This system is economically feasible also as the cost of making the project is very low as
installation of ANDROID STUDIO is free and can be installed on any system. Cost in
developing the software is very low, as compared to the money spent on the existing system.
Also the money spent can be recovered only in just the duration of six months. This project
can be run on 4 GB RAM.
Operational Feasibility
The client’s requirement is also taken into consideration then the system is designed.
Operational feasibility of Information System for Project Real Estate is satisfied as the
running of this system satisfies the user and the client is also satisfied by the economic and
technical feasibility. When it will be used by the employees, no special administration, no
special training is required. Operational feasibility is a measure of how well a proposed
system solves the problems, and takes advantage of the opportunities identified during scope
definition and how it satisfies the requirements identified in the requirements analysis phase
of system development.[7]
The operational feasibility assessment focuses on the degree to which the proposed
development projects fits in with the existing business environment and objectives with
34
regard to development schedule, delivery date, corporate culture, and existing business
processes.
To ensure success, desired operational outcomes must be imparted during design and
development. These include such design-dependent parameters such as reliability,
maintainability, supportability, usability, reducibility, disposability, sustainability,
affordability and others. These parameters are required to be considered at the early stages of
design if desired operational behaviors are to be realized. A system design and development
requires appropriate and timely application of engineering and management efforts to meet
the previously mentioned parameters. A system may serve its intended purpose most
effectively when its technical and operating characteristics are engineered into the design.
Therefore, operational feasibility is a critical aspect of systems engineering that needs to be
an integral part of the early design phases.
Team Structure: -
Often a team of people is assigned a project. For team to work as a group and contribute most
to the project, the people in the team have to be organized in some manner. This structure of
Team has a direct impact on the product quality and project productivity. The structure of my
team democratic. Democratic team consists of ten or fewer. The structure allowed input from
all the members, which led to better decisions in difficult situations. Employees are the most
important asset of an organization and teams are the building blocks of its success. A
person’s quality to be a good team player and leader determines how well he or she can
organizations have turned their focus on building self-motivated and efficient teams so as to
maximize the use of their resources and employee talents. Businesses across industry
verticals are giving increasing importance to put in place flexible teams that are more
responsive to changing environments. The importance of a team comes into play when
business processes need a coordinated and collective effort from the employees, which in turn
creates a positive impact on the entire organization. Check out this course on the theory of
team development to learn more about the impact of team structure, on an organization.
35
As a small business owner or entrepreneur, you must concentrate your efforts towards
building high-performing teams that can create a positive synergy around them. This not only
helps increase the collective achievements of your company but also gives you the perfect
platform to strategize for business development. Here in our discussion today, we will bring
to you the concepts of team structure and the other related facets of team development and
management.
As against traditional organizational structures wherein they had different departments for
each business function, today the day-to-day activities of a firm revolve around teams.
Whether it’s a sales and marketing team or research and development team, teams are
flexible and can build products, negotiate prices and strike deals, coordinate projects and
provide services etc. There are four important kinds of teams that one would commonly find:
36
departments like production, quality, and design engineering, tooling and information
systems to automate shims on the C-17 program. Since the members belonged to
diverse backgrounds, they were able to give different perspectives to arrive at the best
solution. The team’s suggestions helped reduce the cycle time and cost, as well as
greatly improved the quality of the program. While cross-functional teams are highly
effective, they need good management skills to build trust and teamwork amongst the
members and manage the diverse nature of the team.
4. Virtual Teams – In today’s world of internet and mobile technologies, it’s easier to
manage physically dispersed members with the concept of building virtual teams.
Members collaborate online, participate in video-conferences and discuss in real-time
to realize a common objective. While virtual teams are easily manageable, the
members sometime lack the motivation to find solutions or fail to trust each other due
to absence of any direct interaction. These challenges must be addressed by
monitoring the efforts of the members and recognizing their individual
contributions. Learn more about managing and hiring virtual teams with this course.
5. Bureaucratic – Teams are built around highly routine tasks with formalized rules and
regulations. Decision making follows a certain chain of command and tasks are highly
specialized in nature.
6. Matrix Structure – Most companies follow this structure to build their teams and it
basically combines the functional as well as product departmentalization. Employees
in a matrix normally report to two bosses – one who is their functional department
manager and the other a product manager. This creates a dual chain of command that
is highly effective for complex and interdependent activities. For example, a professor
teaching accounting to undergraduate students, may report to the director of
undergraduate programs as well as the head of the accounting department.
A team’s effectiveness depends on various factors such as context, composition, work design
and process. Apart from team performance, managers must also measure member satisfaction
levels to find out the productivity of the teams. There are numerous ways to increase the
success of teams such as:
37
Leadership and trust building are very critical to the team’s success. This course on
how to manage, coach and lead a team from the front will give you further insights on
leadership.
Provide enough resources like equipment, information, administrative support,
motivation etc.
Provide incentives through performance evaluation systems to further reinforce the
commitment and team efforts.
Team composition is also crucial for its success. Understand the abilities of the
members and allocate roles and responsibilities accordingly. Attaining the right mix
of technical expertise, decision-making skills and interpersonal skills is crucial.
Conflict management and establishing team process are also contributing factors
to achieving success as a team.
While team development is critical for organizational growth, managing teams is more
challenging because of the highly diverse backgrounds that the members come
from. This course can give you some insights on how to better coach and develop your
team’s skills. As a business manager, you must learn the art of turning individuals into team
players and motivating them to collectively achieve business goals. This course on how to
hire and manage great teams will open us new possibilities for your team’s growth
SOFTWARE REQUIREMENT:-
Software Requirements is a field within software engineering that deals with establishing the
needs of stakeholders that are to be solved by software. The IEEE Standard Glossary of
Software Engineering Technology defines a software requirement as:[1]
38
3. A documented representation of a condition or capability as in 1 or 2.
The activities related to working with software requirements can broadly be broken up into
Elicitation, Analysis, Specification, and Management.[2]
Analysis
Analysis is the logical breakdown that proceeds from elicitation. Analysis involves reaching a
richer and more precise understanding of each requirement and representing sets of
requirements in multiple, complementary ways.
Specification
Specification involves representing and storing the collected requirements knowledge in a
persistent and well-organized fashion that facilitates effective communication and change
management. Use cases, user stories, functional requirements, and visual analysis models are
popular choices for requirements specification.
Validation
Validation involves techniques to confirm that the correct set of requirements has been
specified to build a solution that satisfies the project's business objectives.
Management
Requirements change during projects and there are often many of them. Management of this
change becomes paramount to ensuring that the correct software is built for the stakeholders.
HARDWARE
HDD : 500 GB
RAM : 8 GB
39
DIAGRAM:
Sequence diagram:
40
Class diagram:
41
Activity diagram:
42
Use Case diagram:
43
SOURCE CODE:
JAVA FILE:
MainActivity.java
package sumit.gaurav.myapp.SGplayer;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
import android.provider.MediaStore;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
requestPermissions(new String[]
{Manifest.permission.READ_EXTERNAL_STORAGE},1);
return;
}}
list = (ListView)findViewById(R.id.songs_list);
getData();
click(list);
Cursor cursor =
getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
44
null,
null,
null);
MediaAdapter.java
package sumit.gaurav.myapp.SGplayer;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.InputStream;
Context context;
45
public MediaAdapter(Context context, Cursor c) {
super(context, c, 0 /* flags */);
this.context = context;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.list_item,
parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView text_title = (TextView)view.findViewById(R.id.song_title);
TextView text_artist =
(TextView)view.findViewById(R.id.song_artist);
ImageView album_image =
(ImageView)view.findViewById(R.id.image_list);
Long album_id =
cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
Bitmap album_art = getArtistImage(album_id.toString());
if(album_art != null)
album_image.setImageBitmap(album_art);
else{
Drawable myDrawable =
context.getResources().getDrawable(R.drawable.music_ph);
album_image.setImageDrawable(myDrawable);
}
int title_index =
cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
int artist_index =
cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
text_title.setText(title);
text_artist.setText(artist);
}
} catch (Exception e) {
Log.e("Exception", e.toString());
}
return artwork;
}
}
46
MyMusic.java
package sumit.gaurav.myapp.SGplayer;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
/**
* Created by sumit adhikari on 11/19/2017.
*/
list = (ListView)v.findViewById(R.id.songs_list);
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle
savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if
(getContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]
{Manifest.permission.READ_EXTERNAL_STORAGE},1);
return ;
}}
getData();
47
click(list);
}
Cursor cursor =
getContext().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CON
TENT_URI,
projection,
null,
null,
null);
Activity_play:
package sumit.gaurav.myapp.SGplayer;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
48
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
Intent mIntent = getIntent();
id = mIntent.getIntExtra("_ID",0);
getCursor(id);
path = getCursor(id);
play(path);
//album_image = (ImageView)findViewById(R.id.album_art);
seekbar = (SeekBar)findViewById(R.id.seek);
lyricsView = (TextView)findViewById(R.id.lyrics);
seekbar.setOnSeekBarChangeListener(this);
seekUpdation();
downloadLyrics();
}
49
public void downloadLyrics(){
title =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)).trim(
);
artist =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)).trim
();
title = convert(title);
artist = convert(artist);
finalUrl = baseUrl+title+another+artist+api;
lyricsView.setText("");
downloadLyricsAsyncTask download = new downloadLyricsAsyncTask();
download.execute();
@Override
protected void onPreExecute() {
super.onPreExecute();
pd.setMessage("loading");
pd.show();
}
@Override
protected String doInBackground(URL... urls) {
// Create URL object
URL url = createUrl(finalUrl);
50
e.getStackTrace();
}
@Override
protected void onPostExecute(String lyrics) {
if (lyrics == null) {
pd.hide();
Toast.makeText(activity_play.this,"NO LYRICS
FOUND",Toast.LENGTH_SHORT).show();
lyricsView.setText("NO LYRICS FOUND");
return;
}
pd.hide();
updateUi(lyrics);
}
}
51
}
return jsonResponse;
}
if(TextUtils.isEmpty(lyricsJSON))
return null;
try {
JSONObject baseJsonResponse = new JSONObject(lyricsJSON);
JSONObject message =
baseJsonResponse.getJSONObject("message");
JSONObject body = message.getJSONObject("body");
JSONObject lyrics = body.getJSONObject("lyrics");
String finalLyrics = lyrics.getString("lyrics_body");
return finalLyrics;
} catch (JSONException e) {
Log.e(LOG_TAG, "Problem parsing the lyrics JSON results",
e);
}
return null;
}
52
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ALBUM_ID};
cursor =
getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
null);
cursor.moveToPosition(id);
String s =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
return s;
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser) {
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if(player!=null) {
player.seekTo(seekBar.getProgress());
}
}
} catch (Exception e) {
Log.e("Exception", e.toString());
}
return artwork;
}
53
player.setDataSource(s);
} catch (IOException e) {
e.printStackTrace();
}
player.prepareAsync();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
play();
}
});
player.setOnCompletionListener(new
MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
next();
}
});
seekbar.setMax(cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.D
URATION)));
//setImage();
downloadLyrics();
}
54
public void seekUpdation(){
if(player!=null)
seekbar.setProgress(player.getCurrentPosition());
handler.postDelayed(runnable,1000);
}
String s =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
play(s);
//setImage();
downloadLyrics();
}
}
String s =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
play(s);
// setImage();
downloadLyrics();
}
}
NavigationGravity.java
55
package sumit.gaurav.myapp.SGplayer;
import android.Manifest;
import android.app.FragmentManager;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_gravity);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
requestPermissions(new String[]
{Manifest.permission.READ_EXTERNAL_STORAGE},1);
56
return;
}}*/
/* list = (ListView)findViewById(R.id.songs_list);
getData();
click(list);*/
Cursor cursor =
getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
null);
}*/
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
57
getMenuInflater().inflate(R.menu.navigation_gravity, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_share) {
Sharing fragment = new Sharing();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
fragmentManager.replace(R.id.fragment_container,fragment).commit();
} else if (id == R.id.nav_aboutus) {
AboutUs fragment = new AboutUs();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
fragmentManager.replace(R.id.fragment_container,fragment).commit();
} else if (id == R.id.nav_rateus) {
RateUs fragment = new RateUs();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
fragmentManager.replace(R.id.fragment_container,fragment).commit();
} else if (id == R.id.nav_faq) {
Faq fragment = new Faq();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
fragmentManager.replace(R.id.fragment_container,fragment).commit();
}
else if (id == R.id.nav_faq) {
Faq fragment = new Faq();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
fragmentManager.replace(R.id.fragment_container,fragment).commit();
}
else if (id == R.id.nav_mymusic) {
Mymusic fragment = new Mymusic();
FragmentTransaction fragmentManager =
getSupportFragmentManager().beginTransaction();
58
fragmentManager.replace(R.id.fragment_container,fragment).commit();
}
Aboutus.java
package sumit.gaurav.myapp.SGplayer;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
* Created by sumit adhikari on 11/19/2017.
*/
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.aboutus,container,false);
TextView textView = (TextView)v.findViewById(R.id.textView2);
return v;
}
}
Faq.java
package sumit.gaurav.myapp.SGplayer;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
59
import android.webkit.WebView;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.faq,container,false);
String str = "<html><body><b>Can I create score with this app?</b>\
n" +
"No, unlike the software for desktop, you can't create
sheet music with this app.\n" +
"\n" +
"How can I open my own .mscz files with this app?\n" +
"Use third party file manager apps such as Astro or ES to
browse for mscz files on your local storage. Also Dropbox, Google Drive,
Gmail, Mail and the Browser will open mscz files directly in the app.\n" +
"\n" +
"How can I change the playback tempo?\n" +
"After opening a score, you will see a slider at the bottom
to adjust the tempo. You can change the tempo while playing the score.\n" +
"\n" +
"How can I open MIDI or MusicXML files?\n" +
"There is no MIDI or MusicXML import available. However you
can convert your MIDI or MusicXML (xml, mxl) with the MuseScore notation
software to MuseScore (mscz) files, which you can then open in the app.\n"
+
"\n" +
"How can I delete a score in the app?\n" +
"Swipe a row in the score list to the left and it will
bring up the delete button.\n" +
"\n" +
"How can I buy the app?\n" +
"The MuseScore Player app is available on the Google Play
store. If you don't own a credit card, you can purchase a Google Play gift
card in a store near you.</body></html>";
WebView webView = (WebView)v.findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadData(str,"text/html",null);
return v;
}
}
RateUs.java
package sumit.gaurav.myapp.SGplayer;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
60
import android.view.View;
import android.view.ViewGroup;
import android.widget.RatingBar;
/**
* Created by sumit adhikari on 11/19/2017.
*/
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.rateus,container,false);
RatingBar ratingBar = (RatingBar)v.findViewById(R.id.ratingBar);
ratingBar.setOnRatingBarChangeListener(new
RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float v,
boolean b) {
AlertDialog.Builder builder = new
AlertDialog.Builder(getContext());
builder.setMessage("Thank you for giving us your valuable
time");
builder.setTitle("Thank You");
builder.show();
}
});
return v;
}
}
Sharing.java
package sumit.gaurav.myapp.SGplayer;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
/**
* Created by sumit adhikari on 11/19/2017.
*/
61
{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.sharing,container,false);
Button button = (Button)v.findViewById(R.id.sharebutton);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String body = "hey install SG player application";
String sub = "download and install this app";
Intent myintent = new Intent(Intent.ACTION_SEND);
myintent.setType("text/plain");
myintent.putExtra(Intent.EXTRA_SUBJECT,sub);
myintent.putExtra(Intent.EXTRA_TEXT,body);
startActivity(Intent.createChooser(myintent,"Share
Using"));
}
});
return v;
}
}
Splash.java
package sumit.gaurav.myapp.SGplayer;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new
Intent(splash.this,NavigationGravity.class));
finish();
}
},4000);
}
}
62
Layout.xml
Aboutus.xml
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:textColor="@color/colorAccent3"
android:layout_marginBottom="76dp"
android:layout_marginStart="4dp"
android:text="@string/aboutuss"
android:textSize="28dp"
android:textStyle="bold|italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>
ActivityMain.xml
<ListView
android:id="@+id/songs_list"
style="@style/Widget.AppCompat.ListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/backgr"
android:visibility="visible" />
</LinearLayout>
63
ActivityNavigationGravity.xml
<include
layout="@layout/app_bar_navigation_gravity"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_navigation_gravity"
app:menu="@menu/activity_navigation_gravity_drawer" />
</android.support.v4.widget.DrawerLayout>
Activityplay.xml
<ScrollView
android:layout_width="match_parent"
android:layout_height="288dp"
android:layout_weight="1">
<TextView
android:id="@+id/lyrics"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="#fff"
android:textStyle="bold" />
</ScrollView>
<SeekBar
64
android:id="@+id/seek"
android:layout_height="34dp"
android:layout_width="match_parent"
android:background="@color/colorAccent4" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/prev"
android:layout_width="50dp"
android:layout_weight="1"
android:layout_height="45dp"
android:background="@drawable/previous"
android:onClick="prev"
android:textColor="@color/colorPrimary"
android:textStyle="bold" />
<Button
android:id="@+id/play"
android:layout_weight="1"
android:layout_width="50dp"
android:layout_height="45dp"
android:background="@drawable/play"
android:onClick="play"
android:textColor="#fff"
android:textStyle="bold" />
<Button
android:id="@+id/pause"
android:layout_width="50dp"
android:layout_weight="1"
android:layout_height="45dp"
android:background="@drawable/pause"
android:onClick="stop"
android:textColor="#fff"
android:textStyle="bold" />
<Button
android:id="@+id/next"
android:layout_weight="1"
android:layout_width="50dp"
android:layout_height="45dp"
android:background="@drawable/next"
android:onClick="next"
android:textColor="@color/listBackground"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
ActivitySplash.xml
65
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@drawable/image2"
android:layout_height="match_parent"
tools:context="sumit.gaurav.myapp.SGplayer.splash">
</android.support.constraint.ConstraintLayout>
AppbarnavigationGravity.xml
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
ContentNavigationGraity.xml
66
</android.support.constraint.ConstraintLayout>
Faq.xml
<WebView
android:layout_width="368dp"
android:id="@+id/webview"
android:layout_height="495dp"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp" />
</LinearLayout>
Listitem.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/listBackground">
<ImageView
android:id="@+id/image_list"
android:layout_width="70dp"
android:layout_height="match_parent"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="14dp"
android:orientation="vertical">
<TextView
android:id="@+id/song_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="#fff"
tools:text="TITLE"/>
67
<TextView
android:id="@+id/song_artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="#fff"
tools:text="artist"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Mymusic.xml
<ListView
android:id="@+id/songs_list"
style="@style/Widget.AppCompat.ListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/backgr"
android:visibility="visible" />
</LinearLayout>
Navheadernavigationgravity.xml
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
68
android:layout_height="72dp"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@drawable/sonywalkman" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="SAGA Player"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="developer.saga.com" />
</LinearLayout>
Rateus.xml
"
android:textSize="18dp"
android:textStyle="bold"
android:textColor="@color/colorPrimaryDark"/>
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stepSize="1"
app:layout_constraintEnd_toEndOf="parent"
tools:layout_editor_absoluteY="96dp" />
</LinearLayout>
Sharing.xml
69
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:text="Share this app with your Friends
"
android:textSize="22dp"
android:textStyle="bold"
android:textColor="@color/colorPrimaryDark"/>
<Button
android:id="@+id/sharebutton"
android:layout_width="165dp"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:text="SHARE"
android:textColor="@color/colorAccent4" />
</LinearLayout>
Menu:
Activitynavigationgravitydrawer.xml
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_mymusic"
android:icon="@drawable/sonywalkman"
android:title="My Music" />
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_aboutus"
android:icon="@drawable/aboutus"
android:title="About Us" />
<item
android:id="@+id/nav_rateus"
android:icon="@drawable/ratee"
android:title="Rate Us" />
<item
70
android:id="@+id/nav_faq"
android:icon="@drawable/faq"
android:title="FAQ" />
</group>
</menu>
Colors.xml
Strings.xml
<resources>
<string name="app_name">SGplayer</string>
<string name="title_activity_navigation_gravity">SGplayer</string>
Styles.xml
<resources>
71
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay"
parent="ThemeOverlay.AppCompat.Light" />
</resources>
Manifest.xml
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/sonywalkman"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"></activity>
<activity android:name=".activity_play" />
<activity android:name=".splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name=".NavigationGravity"
android:label="@string/title_activity_navigation_gravity"
android:theme="@style/AppTheme.NoActionBar"></activity>
</application>
</manifest>
72
ScreenShots:
73
74
75
76
ENHANCEMENTS:
This application should be developed in future for making Playlist. By adding some
additional functionality like streaming online music and as well as playing the video songs.
And we also can add the Google Search for video and audio search. Using Material Design
77
CONCLUSION:
During the System Development project in fifth semester we Are able to apply the theoretical
knowledge in practical Manner. We Also got a chance to know the coding standard that are
applied to at the industrial level. we also get the chance to learn and more and More features
and functions of the android and its framework as well As android SDK too. We are now also
78
BIBLIOGRAPHY
https://android-developers.googleblog.com
https://books.google.co.in/books?isbn=3642025714
https://en.wikipedia.org/wiki/Media_player_(software)
https://Youtube.com
https://stackoverflow.com
79