Upload
adi-adarsh
View
330
Download
0
Embed Size (px)
Citation preview
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 1
1.1 Introduction:
Kuvempu University is a public state university located in Shivamogga. It was
established in 1987 by the act of the Karnataka state legislature through an amendment
No.28/1976 dated 29 January 1989 under the Karnataka State University Act 1976.The
university offers undergraduate and graduate degree programs in wide range of disciplines. It
occupies 230 acres (0.93 km2) of land.
The university has its headquarters at Jnana Sahyadri Campus, Shimoga. Its campus is
called Jnana Sahyadri, which means The Western Ghat section of knowledge. It has as
university jurisdiction over malnad districts of Shimoga and Chickamagalur, through which
the Sahyadri mountain ranges pass. It also covers districts of Davangere and Chitradurga. The
campus sprawls across an area of 230 acres. Nature was never so beautiful before like it is
inside Jnana Sahyadri.
The university has 59 post-graduate departments of studies in the faculties
of Arts, Science, Commerce, Education and Law, offering 45 post-graduate (PG) programs,
four PG diplomas(regular) and one undergraduate programme. There are many colleges
affiliated to this university offering undergraduate courses in the above-mentioned faculties.
The main goal of our project is to develop “KUVEMPU UNIVERSITY” app is, this
app is very useful for every users to get information about kuvempu university, results,
admissions, examinations, scholarship details, library facilities, map.
Since kuvempu university application is been developed in the android platform it
requires the “ANDROID STUDIO” development environment, java development kit (JDKs).
Kuvempu university app is preferred to be an application to be intended in the android
OS. It is very must to be familiar with the key components of ANDROID.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 2
The first section of this report deals with the basic requirements for using the
Kuvempu University. The next sections contain detailed explanation of the process of
generation and verification of the Kuvempu University. In addition to this the applications of
the Kuvempu University are also discussed. The report also focuses on some legal aspects of
Kuvempu University, with reference to the Information Technology Act. The use of
Kuvempu University has been illustrated with an example in a practical scenario.
This report is an attempt to make the readers familiar with the concepts related to the
Kuvempu University and give them an idea of usefulness of a Kuvempu University in the
world of electronic information exchange.
1.2 Problem statement:
kuvempu university already has web site, but many users can’t understand how to
access the required information. The existing web site is not so user friendly.
Now a day every facility is available through their respective app. So for this reason
we created this application to provide a basic information because everyone users also
depend on ANDROID applications today.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 3
1.3 Objective of this project:
The main purpose behind the proposed system is to provide a comprehensive android
application of kuvempu university.
Once the user installs this android application. Then the user can easily, and quickly
access to the facilities provided by the application. We integrated some features of current
kuvempu university website and also other useful web links.
The main Objectives are,
Open software(source) platform for mobile application development
A complete stack – OS, Middleware, Applications
An Open Handset Alliance (OHA) project
Powered by Linux operating system
Fast & easy application development
1.4 Advantages of our project
The Main advantages are listed below: To easily download the required documents regarding admission.
The student can easily get to know the available PG courses.
To save browsing time and improve the browsing experience.
To provide the academic and campus view of the university via the photo gallery.
To view the kuvempu university over the google map.
To provide the scholarship information and education loans for the students.
To provide the results and examination information for the students.
To provide the Web-OPAC service within the university campus.
It can be sharable.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 4
2.1 Introduction
System analysis in systems engineering and software engineering, encompasses those
tasks that go into determining the needs or conditions to meet for a new or altered product,
taking account of the possibly conflicting requirements of the various stakeholders, such as a
beneficiaries or users. Requirements analysis is critical to the success of a development
project. Requirements must be documented, actionable, measurable, testable, related to
identified business needs or opportunities, and defined to a level of detail sufficient for
system design. Requirements can be functional and nonfunctional.
2.2 Drawbacks of existing system
Now a day we have website for our kuvempu university and it’s not user friendly. We
need some browser to access it, so it is time consuming. And also we have some difficulties
which are arises while searching for specified information. In order to overcome these
difficulties, we go for simple and user friendly apps.
kuvempu university already has web site, but many users can’t understand how to
access the required information. The existing web site is not so user friendly.
Now a day every facility is available through their respective app. So for this reason
we created this application to provide a basic information because everyone users also
depend on ANDROID applications today.
2.3 Proposed system:
Considering the drawbacks in the existing system in the mind the new system should
be developed. In proposed system we propose software which can keep all the data in
organized manner and can make the entire process automated without the worry of
inconsistency in the data.
Now a day every activity is done through some respective apps, the main goal of us is
to develop an app that include some feature available in website and also we include a unique
feature those will helps to the various users.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 5
The main advantages of proposed system:
• Time efficient.
• Anybody can easily access.
• Contains many additional feature than the existing system.
• Easy to access required information.
2.4 System Requirement Specification 2.4.1 Introduction
The main task is to identify the requirements. So the requirement phase translates the
ideas in the client's mind into formal document. The software requirements document
(sometimes called software requirement specification or SRS) is the official statement of
what is required of the system developers. It should include both the user requirements for a
system and a detailed specification of the system requirements. The basic purpose of software
requirement specification is to bridge the communication gap between the client and
developer. It also helps the clients to understand their own needs.
The main advantage in developing an SRS is:
An SRS establishes the basis for agreement between the client and developer on what
the software product will do.
An SRS provides a reference for validation of final document.
A high quality SRS is prerequisite to high quality software.
A high quality SRS reduces the development cost.
The requirement phase consists of three basic activities:
• Problem or Requirement Analysis.
• Requirement Specification.
• Requirement Validation.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 6
A good SRS is:
• Correct
• Complete
• Unambiguous.
• Verifiable
• Consistent
• Ranked for important and stability.
• Modifiable
• Traceable
The basic issues an SRS must address are:
l. Functionality.
2. Performance.
3. Design constraints imposed on an implementation external interface.
2.4.2 Purpose
The purpose of software requirement specification is to gather all the requirements of
the users. The users will use the completed system. The problem is that the clients usually
cannot able to understand software or the software development requirements.
Thus a Communication gap will occur between the parties involved in the
development of the Project. The purpose of developing an SRS is helping the clients to
understand their own needs.
2.4.3 Goals
The goals aimed by software requirement specification phase are as follows:
• Low Installation Cost
• Quick set up time
• Low Maintenance
Hence the Software requirement specification is made for the project "Kuvempu
University" and is supplied to all the users including the students, faculty and different users
of the android phone.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 7
2.5 MINIMUM SYSTEM REQUIREMENTS
Hardware Requirements:
For developing the application:
Processor : 1 GHz
For accelerated emulator : 64-bit operating system and Intel processor
with support for Intel VT-x
Monitor : 1280 x 720 resolution
RAM : 2 GB
Hard Disk : 2 GB (500 MB for IDE + 1.5 GB for Android SDK and emulator system)
For running the application:
Device : Android version 2.3 and above
Minimum space to execute : 10 MB
Software Requirements:
For developing the application:
Operating System : Microsoft Windows 7 or later version
Database : SQLite
Tools : Android Studio, JDK 5, JRE 6
Technologies used : Java, XML
Debugger : Android Dalvik Debug service
For running the application:
Operating System : Android
Version : Gingerbread (2.3) or Later
Security:
Setting Application Unknown Sources - Checked
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 8
3.1 INTRODUCTION:
Based on the user requirements and the detailed analysis of a new system, the new
system must be designed. This is the phase of system designing. It is a most crucial phase in
the development of a system.
Normally, the design proceeds in two stages:
l. Preliminary or general design
2. Structure or detailed design
Preliminary or general design:
In the preliminary or general design, the features of the new system are specified. The
costs of implementing these features and the benefits to be derived are estimated. If the
project is still considered to be feasible, we move to the detailed design stage.
Structure or detailed design:
In the detailed design stage, computer oriented work begins in earnest. At this stage,
the design of the system becomes more structure design is a blue print of a computer system
solution to a given problem having the same components and interrelationship among the
same components as the original problem. Input, output and processing specification are
drawn up in detail. In the design stage, the programming language and the platform in which
the new system will run are also decided.
3.2 Architecture of the Android system:
The below figure shows the diagram of Android Architecture. The Android OS can be
referred to as a software stack of different layers, where each layer is a group of several
program components. Each layer in the architecture provides different services to the layer
just above it.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 9
3.2.1 LINUX KERNEL:
The basic layer is the Linux kernel. The whole Android OS is built on top of the
Linux 2.6 Kernel with some further architectural changes made by Google. It is this Linux
that interacts with the hardware and contains all the essential hardware drivers. Drivers are
programs that control and communicate with the hardware. For example, consider the
Bluetooth function. All devices has a Bluetooth hardware in it. Therefore the kernel must
include a Bluetooth driver to communicate with the Bluetooth hardware.
The Linux kernel also acts as an abstraction layer between the hardware and other
software layers. Android uses the Linux for all its core functionality such as Memory
management, process management, networking, security settings etc. As the Android is built
on a most popular and proven foundation, it made the porting of Android to variety of
hardware, a relatively painless task.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 10
3.2.2 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.
3.2.3 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.
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 prebuilt 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.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 11
3.2.4 ANDROID RUNTIME:
Android Runtime consists of Dalvik Virtual machine and Core Java libraries.
• Dalvik Virtual Machine:
It is a type of J VM used in android devices to run apps and is optimized for low
Processing power and low memory environments. Unlike the JVM, the Dalvik Virtual
Machine doesn't run .class files, instead it runs .dex files. .dex files are built from .class file at
the time of compilation and provides higher efficiency in low resource environments. The
Dalvik VM allows multiple instance of Virtual machine to be created simultaneously
providing security, isolation, memory management and threading support. It is developed by
Dan Bornstein of Google.
• Core Java Libraries:
These are different from Java SE and Java ME libraries. However, these libraries
provide most of the functionalities defined in the Java SE libraries.
3.2.5 APPLICATION FRAMEWORK
These are the blocks that our applications directly interacts with. These programs
manage the basic functions of phone like resource management, voice call management etc.
As a developer, you just consider these are some basic tools with which we are building our
applications.
Important blocks of Application framework are:
• Activity Manager: Manages the activity life cycle of applications
• Content Providers: Manage the data sharing between applications
• Telephony Manager: Manages all voice calls. We use telephony manager if we
want to access voice calls in our application.
• Location Manager: Location management, using GPS or cell tower
• Resource Manager: Manage the various types of resources we use in our Application
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 12
3.2.6 APPLICATIONS
Applications are the top layer in the Android architecture and this is where our
applications reside. Several standard applications come pre-installed with every device,
such as:
• SMS client app
• Dialer
• Web browser
• Contact manager
As a we are able to write an app which replace any existing system app. That is, you
are not limited in accessing any particular feature. You are practically limitless and can
whatever you want to do with the android (as long as the users of your app permits it). Thus
Android is opening endless opportunities to the developer.
3.3 MODULES A module is a collection of source files and build settings that allow you to divide
your project into discrete units of functionality. Your project can have one or many modules
and one module may use another module as a dependency. Each module can be
independently built, tested, and debugged. Additional modules are often useful when creating
code libraries within your own project or when you want to create different sets of code and
resources for different device types, such as phones and wearables, but keep all the files
scoped within the same project and share some code.
We can add module to our project by clicking File > New > New Module.
Android studio offers a few distinct types of module:
Android app module
Provides a container for your app's source code, resource files, and app level settings
such as the module-level build file and Android Manifest file. When you create a new
project, the default module name is "app".
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 13
In the Create New Module window, Android Studio offers the following app modules:
Phone & Table Module
Android Wear Module
Android TV Module
Glass Module
They each provide essential files and some code templates that are appropriate for the
corresponding app or device type.
Library module Provides a container for your reusable code, which you can use as a dependency in
other app modules or import into other projects. Structurally, a library module is the same as
an app module, but when built, it creates a code archive file instead of an APK, so it can't be
installed on a device.
In the Create New Module window, Android Studio offers the following library modules:
Android Library: This type of library can contain all file types supported in an
Android project, including source code, resources, and manifest files. The build result
is an Android Archive (AAR) file that you can add as a dependency for your Android
app modules.
Java Library: This type of library can contain only Java source files. The build result
is an Java Archive (JAR) file that you can add as a dependency for your Andriod app
modules or other Java projects.
Google Cloud module Provides a container for your Google Cloud backend code. This module adds the
required code and dependencies for a functioning, runnable backend that you can extend with
the features you want, such as data storage. Android Studio lets you easily add a cloud
backend to your app.
3.3.1 PROJECT FILES By default, Android Studio displays your project files in the Android view. This view
does not reflect the actual file hierarchy on disk, but is organized by modules and file types to
simplify navigation between key source files of your project, hiding certain files or
directories that are not commonly used.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 14
Within each Android app module, files are shown in the following groups:
manifests Contains the AndroidManifest.xml file.
java Contains the Java source code files, separated by package names, including JUnit test code.
res Contains all non-code resources, such as XML layouts, UI strings, and bitmap images,
divided into corresponding sub-directories.
3.3.2 THE BUILD PROCESS The build process involves many tools and processes that convert your project into an
Android Application Package(APK). The build process is very flexible, so it's useful to
understand some of what is happening under the hood.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 15
The build process for a typical Android app module, as shown in figure 1, follows these
general steps:
1. The compilers convert your source code into DEX (Dalvik Executable) files, which
include the bytecode that runs onAndroid devices, and everything else into compiled
resources.
2. The APK Packager combines the DEX files and compiled resources into a single APK.
Before your app can be installed and deployed onto an Android device, however, the APK
must be signed.
3. The APK Packager signs your APK using either the debug or release keystore:
a. If you are building a debug version of your app, that is, an app you intend only for
testing and profiling, the packager signs your app with the debug keystore. Android Studio
automatically configures new projects with a debug keystore.
b. If you are building a release version of your app that you intend to release
externally, the packager signs your app with the release keystore. To create a release
keystore, read about Signing your app in Android Studio.
4. Before generating your final APK, the packager uses the zipalign tool to optimize your app
use less memory when running on a device.
At the end of the build process, you have either a debug APK or release APK of your
app that you can use to deploy, test, or release to external users.
3.4 ACTIVITY LIFECYCLE
If you have worked with C, C++ or Java programming language then you must have
seen that your program starts from main function. Very similar way, Android system initiates
its program with in an Activity starting with a call on onCreate callback method. There is a
sequence of callback methods that start up an activity and a sequence of callback methods
that tear down an activity as shown in the below Activity life cycle diagram
The Activity class defines the following call backs i.e. events. You don't need to
implement all the callbacks methods. However, it's important that you understand each one
and implement those that ensure your app behaves the way users expect.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 17
Example for Activity
public class MainMenu extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
}
}
Callback Description
onCreate() This is the first callback and called when the activity is first created.
onStart() This callback is called when the activity becomes visible to the user.
onResume() This is called when the user starts interacting with the application.
onPause() The paused activity does not receive user input and cannot execute any code and called when the current activity is being paused and the previous activity is being resumed.
onStop() This callback is called when the activity is no longer visible.
onDestroy() This callback is called before the activity is destroyed by the system.
onRestart() This callback is called when the activity restarts after stopping it.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 18
3.5 DATA FLOW DIAGRAM
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 19
4.1 INTRODUCTION:
Implementation is the stage of the project where the theoretical design is turned into a
working system. At this stage the main load, the greatest upheaval and the major impact on
the existing system shifts to the user department.
Implementation includes all those activities that take place to convert from the old
system to the new one. The new system may be totally new, replacing an existing manual
system. Proper implementation is essential to provide a reliable system to meet the
organization requirements. Successful implementation may not guarantee improvement in the
organization using the new system, but improper installation will prevent it.
The process of putting the developed system in actual use us called system
implementation. This includes all those activities that take place to convert from the old
system to the new system. The system can be implemented only after through testing is done
and if it is found to be working according to the specifications. The system personal check
the feasibility of the system.
The most crucial stage is achieving a new successful system and gibing confidence on
the new system for the used that it will work efficiently and effectively. It involves careful
planning, investigation of the current system and its constraints on implementation design of
methods to achieve the changeover. The more complex the system being implemented, the
more involve will be the system analysis and the design effort required just for
implementation.
4.2 ABOUT TOOLS: 4.2.1 Software development kit
The Android SDK includes a comprehensive set of development tools. These include
a debugger, libraries, a handset emulator, documentation, sample code, and tutorials.
Currently supported development platforms include x86-architecture computers running
Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or
Vista. Requirements also include Java Development Kit, Apache Ant, and Python 2.2 or later.
The officially supported integrated development environment (IDE) is Android
Studio, though developers may use any text editor to edit Java and XML files then use
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 20
command line tools to create, build and debug Android applications as well as control
attached Android devices (e.g.,installing software packages). A preview release of the
Android software development kit (SDK) was released on 12 November 2007.
android.jar:
Java archive file containing all of the Android SDK classes necessary to build our
application.
document.html and docs directory:
The SDK documentation is provided locally and on the web. It's largely in the form of
Java Docs, making it easy to navigate the packages in the SDK. The documentation
also includes a high level development Guide and links to the broader Android
community.
Tools directory:
It contains all of the command line tools to build Android applications. The most
commonly employed and useful tool is the adb utility ( Android Debug Bridge).
Samples directory:
The samples subdirectory contains full source code for a variety of
applications,including API demo, which excercise many API's. The sample application
is a great place to explore when starting Android application development.
USB driver:
Directory containing the necessary drivers to connect the development environment
to an Android enabled device. Such as the G 1 or the Android Dev 1 unlocked
development phone. These files are only required for developers using the windows
platform.
ADB ( Android Debug Bridge):
The ADB utility let us connect to the phone itself and issue rudimentary shell
commands, such as copying files to and from the devices.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 21
4.2.2 OPEN HANDSET ALLIANCE (OHA):
This barrier to application development began to crumble in November of 2007 when
Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a
group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel,
and HTC, whose goal is to create a more open cell phone environment. The first product to
be released under the alliance is the mobile device operating system, Android.
With the release of Android, Google made available a host of development tools and
tutorials to aid would-be developers onto the new system. Help files, the platform software
development kit (SDK).
In keeping with the Open Handset Alliance's theme of truly opening the mobile
Development market, Android studio is one of the most fully featured, free, Java IDE's
available. Android studio is also very easy to use, with a minimal learning curve. This makes
Android studio a very attractive IDE for solid, open Java development.
Android studio is the platform upon which the plug-in runs. Android application
development under the Android studio environment requires knowledge of the Android
studio environment and the Android platform. An understanding of the terms below is helpful
in Android application development with the Android studio plug-in.
The Package Explorer: The Package Explorer (found in the Java perspective in Android studio) displays all
the components of the sample Android application.
• AndroidManifest.xml snippet: This file is the application deployment descriptor for
Android applications.
• IntentReceiver: This demonstrates the implementation of an IntentReceiver, which is
the class that processes intents as advertised by the IntentFilter tag in the
AndroidManifest.xml file.
• SaySomething.java: This implements an Android activity, the primary entry point to
the sample application of this tutorial.
• Main.xml: This contains the visual elements, or resources, for use by Android activities.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 22
• R.java: This file is automatically generated by Android Developer Tools and "connects" the visual resources to the Java source code.
• AndroidManifest.xml complete: This lists a full AndroidManfest.xml file, along with a
description of each of the important elements.
• res folder: Resources in Android are organized into a subdirectory of the project named res, as described previously. Resources fall into three primary categories:
• Drawables: This folder contains graphics files, such as icons and bitmaps
• Layouts: This folder contains Xlv1L files that represent the layouts and views
of the application.
• Values: This folder contains a file named strings.xml. This is the primary
means for string localization for the application.
4.2.3 EMULATOR:
A software tool representative of another system, This is often an environment that
runs on a personal computer that emulates another environment, such as a mobile-computing
device. Arguably one of the most important tools included in the Android SDK is emulator.
emulator.exe launches the Android Emulator. The Android Emulator is used to run your
applications in a pseudo-Android environment. Given that, as of the writing of this book,
there were no hardware devices yet released for the Android platform, emulator.exe is going
to be your only means to test applications on a "native" platform.
You can run emulator.exe from the command line or execute it from within Android
Studio. However, in the interest of giving you all the information you need to program with
the Android Studio.
IDE (Integrated Development Environment): A software application that consists of a source code editor. A compiler, build
automation tools and a debugger. It makes programming and running applications
easier.
ADT (Android Development Tools) : A plug-in for Android studio that extends the Android studio IDE by providing
more tools to develop Android Applications.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 23
AVD (Android Virtual Device): An Android emulator that allows you to simulate how the application will run
on unactual Android device.
4.2.4 JDK (Java SE Development Kit): A popular Java SDK that is used to program Android applications.
Activity:
An Activity represents the main screen for Android application. An application can
any number of Activities. Intents are message passing mechanisms used in Android. Android
Activity class contains different methods that support Activity communication. The method
startActivity(Intent) is used to invoke one Activity from other Activity. This method accepts
an Intent object which specifies the Activity to be started. If the FirstActivity is expecting
some result from Second Activity, a variation of this method is to be used. For example, if we
want to start an activity that allows the user to choose a person from the contacts list and
when it finishes execution, it will return the selected person.
Views: The Android activity employs views to display UI elements. Views are defined in an
XML file. Views follow one of the following layout designs:
• LinearVerticaI: Each subsequent element follows its predecessor by flowing beneath it in a
single column.
• LinearHorizontal: Each subsequent element follows its predecessor by flowing to the right
in a single row.
• Relative: Each subsequent element is described in terms of offsets from the prior element.
• Table: A series of rows and columns similar to HTML tables. Each cell can hold one view
element. Once a particular layout (or combination of layouts) has been selected, individual
views are used to present the UI.
View elements consist of familiar UI elements, including:
• Button
• ImageButton
• EditText
• TextView (similar to a label)
• CheckBox
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 24
• Radio Button
• Gallery and ImageSwitcher for displaying multiple images
• List
• Grid
• DatePicker
• TimePicker
• Spinner (similar to a combo box)
• AutoComplete (EditText with auto text-complete feature)
4.2.5 Android Application Life Cycle
The Android application life cycle IS unique in that the system controls much of the
lifecycle of the application. All Android applications, or Activities, are run within their own
process. All of the running processes are watched by Android and, depending on how the
activity is running (this is, a foreground activity, background activity, and so forth), Android
may choose to end the activity to reclaim needed resources.
Some of the specific methods called during the life cycle of an android activity are
• onCreate
• onStart
• Process-specific events (for example: launching activities or accessing a database)
• onStop
• onDestroy
4.3 OVERVIEW OF JAVA
Java started out as a bit of an accident. A team under Bill Joy was working at Sun on a
new programming language for embedded applications. Java was originally expected to work
in toasters and fridges, not on modern computers. The initial prognosis for Java was not good
and it was only the rise of the Internet which saved Java from oblivion.
World Wide Web is an open ended information retrieval system designed to be used
in the distributed environment. This system contains web pages that provide both information
and controls. We can navigate to a new web page in any direction. This is made possible
worth HTML java was meant to be used in distributed environment such as internet. So java
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 25
could be easily incorporated into the web system and is capable of supporting animation
graphics, games and other special effect. The web has become more dynamic and interactive
with support of java. We can run a java program on remote machine over internet with the
support of web.
4.3.1 JAVA PROGRAMMING
Introduction: Java was introduced by James Gosling, Patrick Naughton, Chris Wrath, Ed Frank, and
Mike Sheridan at Sun Micro system. It is an platform independent programming language
that extends its features wide over the network.
Java language
Java is two things: a programming language and a platform.
Java Programming Language
Java is a high-level programming language that is all of the following:
• Simple
• Object-oriented
• Distributed
• Interpreted
• Robust
• Secure
• Architecture-neutral
• portable
• High-performance
• Multithreaded
• Dynamic
Java is also unusual in that each Java program is both compiled and interpreted. With
a compiler, you translate a java program into an intermediate language called Java
bytecodes—the platform-independent codes interpreted by the Java interpreter. With an
interpreter, each Java byte code instruction is parsed and run on the computer. Compilation
happens just once; interpretation occurs each time the program is executed. Java byte codes
can be considered as the machine code instructions for the Java virtual machine (Java VM).
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 26
Every Java interpreter, whether it is a java development tool or a Web browser that can run
Java applets, is an implementation of the Java VM. The Java VM can also be implemented in
hardware.
Java byte codes help make "make once, run anywhere" possible. The Java program
can be compiled into byte codes on any platform that has a Java compiler The byte codes can
then be run on any implementation of the Java VM. For example, the same Java program can
on Windows NT, Solaris, and Macintosh.
4.3.2 The Java platform
A platform is the hardware or software environment in which a program runs. The
Java software-only platform that runs platform differs from most other platforms in that it is a
on top of other, hardware based platforms.
Most other platforms are described as combination of hardware and operating system.
The Java platform has two components:
• The Java Virtual Machine (Java VM)
• The Java Application Programming Interface (Java API)
The Java API is a large collection of ready-made software components that provide
many useful capabilities, such as graphical user interface (GUI) widgets. The Java API is
grouped Into libraries (packages) and related components.
Java can do many things like , Probably the most well-known Java programs are java
Applets. An applet is a Java program that adheres to certain conventions that allow it to run
within a Java-enabled browser.
However, Java is not just for writing cute, entertaining applets for the World Wide
Web ("Web"). Java is a general purpose, high-level programming language and a powerful
software platform. The most common types of programs are probably applets and
applications, where a Java application is a standalone program that runs directly on the Java
platform.
The core API gives the following features:
• The Essentials: Objects, Strings, threads, numbers, input and output, data structures,
system properties, date and time, and so on.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 27
• Applets: The set of conventions used by Java applets.
• Networking: URLs, TCP and sockets, and IP addresses.
• Internationalization: Help for writing programs that can be localised for users
worldwide. Programs can automatically adapt to specific locales and be displayed in
the appropriate language.
• Security: Both low-level and high-level, including electronic signatures, public/private
key management, access control, and certificates.
• Software components: Known as JavaBeans, can plug into existing component
architectures such as Microsoft's OLE.COM/Active-x architecture, OpenDoc, and
Netscape's Live Connect.
• Java Database Connectivity (JDBC): Provides uniform access to a wide range of
relational database. Java not only has a Core API, but also standard extensions.
Define APIs for 3D, servers, collaboration, telephony, speech, animation, and more.
• Get started quickly: although Java is a powerful object-oriented language, it is easy
to learn, especially for programmers already familiar with C or C++.
• Write less code: Comparisons of program metrics (class counts, method counts, and
so on ) suggest that a program written in Java can be four times smaller than the same
program in C++.
• Write once, run anywhere: Because 100% pure Java programs are compiled into
machine-independent byte codes, they run consistently on any java platform.
4.4 XML XML is a simple text based language which was designed to store and transport data
in plain text format. It stands for Extensible Markup Language. Following are some of the
salient features of XML.
• XML is a markup language.
• XML is a tag based language like HTML.
• XML tags are not predefined like HTML.
• You can define your own tags which is why it is called extensible language.
• XML tags are designed to be self descriptive.
• XML is W3C Recommendation for data storage and transport.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 28
4.4.1 XML ON ANDROID
The Android platform is an open source mobile development platform. It gives you access to all aspects of the mobile device that it runs on, from low level graphics, to hardware like the camera on a phone. With so many things possible using Android, you might wonder why you need to bother with XML. It is not that working with XML is so interesting; it is working with the things that it enables. XML is commonly used as a data format on the Internet. If you want to access data from the Internet, chances are that the data will be in the form of XML. If you want to send data to a Web service, you might also need to send XML. In short, if your Android application will leverage the Internet, then you will probably need to work with XML. Luckily, you have a lot of options available for working with XML on Android.
4.4.2 XML PARSING
Parsing XML refers to going through XML document to access data or to modify data in one or other way.
XML Parser provides way how to access or modify data present in an XML document. Java provides multiple options to parse XML document. Following are various types of parsers which are commonly used to parse XML documents.
Example for XML document can be used in Android:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center_vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:gravity="center_horizontal" /> <Button android:id="@+id/nextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/next" /> </LinearLayout>
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 29
5.1 INTRODUCTION The important phase encountered in any developed product or framework is the
testing phase. It is because, the developed product should be free from errors and it should be
validated for accuracy. The product should work under normal conditions as long as the user
gives proper input and therefore it should be checked for its robustness and should withstand
and inform the users about the erroneous input.
The testing phase involves testing the system using various test data. Preparation of
the test data plays a vital role in the system testing. After preparing the test data, the system is
tested using those test data. Errors are found and corrected by using the following testing
steps and corrections are recorded for future reference. Thus a series of testing is performed
on the system before it is ready for implementation. Testing is applied at different levels in
the software development lifecycle. Each levels of testing is done is different in nature and
has different objectives at each level. The focus of all levels of testing is to find errors, but
different types of errors are looked for at each level. The quality of the system is confirmed
by the thoroughness of its testing. Duration and cost of testing and debugging is a significant
fraction of the system development cycle and hence influences overall productivity during the
development. In this phase, the errors in the programs or modules are localized and
modifications are done to eliminate them. The testing makes a logical assumption that all
parts of the system work efficiently and the goal is achieved.
• Testing is a process of executing a program with the intent of finding the error.
• A good test case is one that has high probability of finding an as-yet undiscovered error.
• A successful test one that uncovers an as-yet-undiscovered error.
5.2 FUNCTIONAL TESTING:
Black box testing: This approach tests all possible combinations of end-user actions.
Black box testing assumes no knowledge of code and is intended to simulate the end-user
experience. You can use sample applications to integrate and test the application block for
black box testing. You can begin planning for black box testing immediately after the
requirements and the functional specifications are available.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 30
White box testing: This is also known as glass box, clear box, and open box testing. In
white box testing, you create test cases by looking at the code to detect any potential failure
scenarios. You determine the suitable input data for testing various APIs and the special code
paths that need to be tested by analyzing the source code for the application block. Therefore,
the test plans need to be updated before starting white box testing and only after a stable build
of the code is available.
5.3 SYSTEM TESTING:
System testing is actually a series of different tests whose primary purpose is to fully
exercise the computer-based system. Although each test has a different purpose, all work
should verify that all system elements have been properly integrated and perform allocated
functions.
RECOVERY TESTING is a system test that forces the software to fail in a variety of ways and verifies that recovery is properly performed. SECURITY TESTING attempts to verify that protection mechanisms built in to a system will, in fact, protect it from improper penetrations. STRESS TESTING executes a system in a manner that demands resources in abnormal quantity, frequency, or volume. PERFORMANCE TESTING is designed to test the run-time performance of software within the context of the integrated system. Performance testing occurs throughout all steps in the testing process.
5.3.1 Unit testing
In this testing we test each module individually. Unit testing focuses on the
verification of the smallest units of the software design the module. This is known as unit
testing. The modules of the system are tested separately. This test is carried out during
programming stage itself. Each module should work satisfactorily as regards to the expected
from the module. There are validation checks for the fields also.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 31
5.3.2 Integration Testing
The program as a whole is integrated into a single component and checked with the
test data. This is to check that the whole program works together correctly. The various
modules are integrated first. Then the system is tested as a whole. The behavior of each
module with another is identified in this testing. Any misbehavior will lead to dangerous
problems or errors in the system. All these problems can be filtered off using this testing.
Here all the sub modules of one module in Mobile Banking are combined into a single component and tested for integrity. 5.3.3 High Level Testing
High level testing involves the whole complete products. An independent test group
most appropriately performs it outside of the development organization usually.
5.3.4 Usability Testing
Usability testing involves having the user work with the product and observing their
response to it. Testing for whether we are getting graphical representation of image or not. ln
this project, different types of users worked with the product and the user responses are
observed. All the responses have been observed for all the modules in this project.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 32
Here the first image shows the HOME SCREEN of Kuvempu
University App.
The second one shows the ADMISSIONS layout.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 33
Here the first image shows the DISCIPLINES that are available
in Kuvempu University.
The second one shows the EXAMINATIONS layout.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 34
Here the first image shows the SCHOLARSHIPS layout.
The second one shows the PHOTO GALLERY layout.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 35
Here the first image shows the LIBRARY layout.
The second one shows the MAP & DIRECTIONS layout.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 36
Here the first image shows the ABOUT US layout.
The second one shows the ABOUT KU layout showing some
information about Kuvempu University.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 37
Here the first image shows the FACILITIES available in
Kuvempu University.
The second one shows the CONTACT US layout providing the
contact address.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 38
CONCLUSION AND FUTURE ENHANCEMENT
Finally, we concluded that the Androids platform which has developed by Google is
going to play major role in Mobile applications because as it is an open source and it is also
easy to develop mobile applications using Android.
We have tried to the best of our efforts to develop with in limited means. We have
tried to cover all the aspects in "Kuvempu University" app. We expect our project is received
satisfactorily as an encouragement to develop it in a more effective manner.
The goals that have been achieved by the developed application are,
The student can easily get to know the available PG courses.
Improved browsing time and browsing experience.
Providing the academic and campus view of the university via the photo gallery.
Kuvempu university over the google map.
Scholarship information and education loans for the students.
The students can get direct access to results and examination information.
There is no denial to the fact that today's possibilities are not tomorrow's
guarantees. As time evolves, requirements will need to be given a new looking.
Future implementation we can do on this project is:
Providing the registration facility for students as well as staff.
Improving the UI.
Providing the course names with their department profile.
Giving the notifications of events.
Providing the street view of Kuvempu university.
KUVEMPU UNIVERSITY APP
Dept. of Computer Science and MCA, Jnana Sahyadri Page 39
BOOKS REFERRED
ANDROID PROGRAMMING TUTORIALS
By Mark L. Murphy
ANDROID TUTORIAL
Simply Easy Learning by tutorialspoint.com
SITES REFERRED
http://www.tutorialspoint.com/android
http://collegedunia.com/university/25615-kuvempu-university-ku-shimoga
https://www.youtube.com/watch?v=SUOWNXGRc6g&list=PL2F07DBCDCC01493A
https://www.youtube.com/watch?v=QAbQgLGKd3Y&list=PL6gx4Cwl9DGBsvRxJJOzG4r4
k_zLKrnxl
https://www.youtube.com/watch?v=EknEIzswvC0&list=PLS1QulWo1RIbb1cYyzZpLFCKv
dYV_yJ-E