Chandrabhan Sharma College of Arts, Commerce and Science: Android IT Webbrowser
Chandrabhan Sharma College of Arts, Commerce and Science: Android IT Webbrowser
Chandrabhan Sharma College of Arts, Commerce and Science: Android IT Webbrowser
Android IT Webbrowser
BY
(INFORMATION TECHNOLOGY)
SEMESTER VI
UNIVERSITY OF MUMBAI
YEAR 2016-2017
ACKNOWLEDGMENT
We profoundly thank our principal Dr. CHITRA NATRAJAN for giving us support
throughout the course and made us capable of being worthy of recognition and
extended query facility to us for making and computing this project smoothly.
We are highly obliged to Prof. ARVINDRA SINGH teaching staff member of the
Information Technology department, who spread efforts in making the project a successful one
with her guidance, appropriate advice and encouragement and of course the inspiration without
which the project would be ineffective difficult task.
We sincerely thank and express my profound gratitude to our teachers for their timely and
prestigious guidance.
We also thank my family members for their continued support in completing this project work
and last but not the least; we wish to thank all my friends and well-wishers who are directly or
indirectly linked with the success of our project.
SR. No. CONTENT Page
No.
1. OBJECTIVE AND SCOPE
1.1 OBJECTIVE
1.2 SSCOPE
2. THEORETICAL BACKGROUD
2.1 INTRODUCTION TO ANDROID OS
2.2 ANDROID OPERATING SYSTEM
ARCHITECTURE
2.3 COMPARING ANDROID AND OTHER
OPERATING SYSTEM
2.4 INTRODUCTION TO BRAINOZOID
2.5 INTRODUCTION TO SQLITE DATABASE
WITH RESPECT TO ANDROID
3. SYSTEM ANALYSIS
4. GANNT CHART
5. SYSTEM DESIGN
5.1 UML
5.2 SEQUENCE DIAGRAM
5.3 CLASS DIAGRAM
5.4 DATA FLOW DIAGRAM
6. METHODOLOGY ADOPTED
6.1 MODEL USED – INCREMENTAL
MODEL
6.2 DETAILS OF THE SOFTWARES USED
6.2.1 JAVA SE SDK
6.2.2 ECLIPSE
6.2.3 ANDROID SDK
6.2.4 ANDROID ADT PLUGIN
6.3 DETAILS OF THE HARDWARE USED
7 MODULE EXPLANATION
7.1
7.2
7.3
7.4
8 TESTING
8.1 TESTING METHODS
8.2 UNIT TESTING
8.3 INTEGRATION TESTING
8.4 FUCTIONAL TESTING
8.5 USER-ACCEPTANCE TESTING
8.6 TEST CASES
9 SCREEN SHOTS
9.1 TABLE DESIGN FIG.1
9.2 TABLE DESIGN FIG.2
9.3 APPLICATION DESIGN FIG.1
9.4 APPLICATION DESIGN FIG.2
9.5 APPLICATION DESIFN FIG.3
9.6 APPLICATION DESIGN FIG.4
CODING PART
10 SYSTEM MAINTENANCE
10.1 MAINTENANCE
10.2 EVALUATION
11 CONCLUSION
12 BIBLOGRAPHY
SYNOPSIS
‘WebBrowser
Application’
INTRODUCTION :
PROBLEM DEFINITION :
OBJECTIVES :
QUESTIONS :
This module provides the questions which the user has to
answer. This module is the heart to the entire WebBrowser
application. It also provides the options with the questions to aid
the user.
SETTINGS :
This module provides the user the choice to choose between
different levels. There are three different levels in our application.
The levels are as follows Easy, Medium and Hard.
RULES :
This module provides the basic rules which are to be adhered
while playing the WebBrowser application. It also provides the “First
Time User” a tip to select easier levels to get accustomed to the
application.
EXIT :
This module generally Exit the WebBrowser after clicking on
this Exit button.
ANDROID :
Java SE SDK
Android SDK
Eclipse IDE (Classic version)
ADT Plugin for Eclipse
DATABASE : SQLite
TECHNIQUES :
Our application is entirely based on Android programming, thus
the framework and coding will be done using android SDK and
Eclipse IDE.
The modules mentioned above will be done using android
programming, Android being an Open source OS enables to run
only on android based Smartphones.
SQLite Database is used here to store in the details of the
members accessing the application. SQLite is an inbuilt database
which is present in the android SDK bundle.
About to databse In this project SQLite Browser is to be used.
OBJECTIVE
AND
SCOPE
1.1 OBJECTIVE :
The main objective is to develop a WebBrowser application for
android based smartphones.
The application will also have a feature where the user can
select the level of difficulty so as to get accustomed to the
questions.
1.2 SCOPE :
The scope of the application is huge considering that the
application is based on android OS which has a very large
user base compared to other mobile Operating Systems such
as the IOS, Symbian.
THEORETICAL
BACKGROUNG
2.1 INTRODUCTION TO ANDROID O.S:
Android is a Linux-based operating system designed primarily
for touch screen mobile devices such as smartphones and tablet
computers. Initially developed by Android, Inc.,
which Google backed financially and later bought in 2005, Android
was unveiled in 2007 along with the founding of the Open Handset
Alliance: a consortium of hardware, software,
and telecommunication companies devoted to advancing open
standards for mobile devices. The first Android-powered phone was
sold in October 2008.
2. NOTIFICATION BAR :
3. WIDGETS :
4. CARRIER CHOICE :
5. HOTSPOT :
6. SCREEN SIZE :
8. FASTEST BROWSER :
Browsing Internet is one of most task user do on the
Smatphone. With full Flash support and fastest cpu on high end
Android Phone browsing is just pleasure.
9. BETTER BUTTONS :
The android smart phone user can also check the list of
correct answers at the end of the quiz. This adds to over all
app experience for the user.
2.5 INTRODUCTION TO SQLITE DATABASE
WITH RESPECT TO ANDROID :
5.SYSTEM DESIGN :
System Design is very important aspect of application
development. It helps the programmer with easy work flow. Using
System Design a plan can be made for designing the user- interface.
We are using the Object Oriented Approach for the Application. So
we include the required UML diagrams for our System Design.
5.1 UML :
The heart of the object-oriented problem solving is the
construction of a model. The model abstracts the essential
details of the underlying problem from its usually complicated
real world.
Sequence diagram
Class Diagram
PURPOSE:
The purpose of the class diagram is to model the static
view of an application. The class diagrams are the only diagrams
which can be directly mapped with object oriented languages and
thus widely used at the time of construction.
EXTERNAL ENTITY :
An external entity is a source or destination of a
data flow which is outside the area of study. Only those entities
which originate or receive data are represented on a business
process diagram. The symbol used is an oval containing a
meaningful and unique identifier.
PROCESS :
A process shows a transformation or manipulation
of data flows within the system. The symbol used is a rectangular
box which contains 3 descriptive elements:
DATA FLOW:
A data flow shows the flow of information from its
source to its destination. A data flow is represented by a line, with
arrowheads showing the direction of flow. Information always flows
to or from a process and may be written, verbal or electronic. Each
data flow may be referenced by the processes or data stores at its
head and tail, or by a description of its contents.
DATA STORE :
A data store is a holding place for information within
the system. It is represented by an open ended narrow rectangle.
Data stores may be long term files such as sales ledgers, or may be
short-term accumulations: for example batches of documents that
are waiting to be processed. Each data store should be given a
reference followed by an arbitrary number.
METHODOLOGY
6. ECLIPSE :
7.2 SETTINGS :
This module provides the user the choice to choose between
different levels. There are three different levels in our application.
The levels are as follows Easy, Medium and Hard.
7.3 RULES :
This module provides the basic rules which are to be adhered
while playing the quiz application. It also provides the “First Time
User” a tip to select easier levels to get accustomed to the
application.
7.4 EXIT :
This module generally Exit the Quiz game after clicking on this
Exit button.
TESTING
This is also to check that if all the functions proposed are working
properly.
- Second to see if they still work properly after they have been
integrated to check if some functional compatibility issues
arise.
2. User Clicks the “play” The button Questions are displayed pass
button action is
processed
7. User selects “exit” option The button User exits the pass
action is application
processed
8. User can select “Rules” The button Rules are displayed Pass
opetion action is
processed
SCREEN SHOTS
9.1 TABLE DESIGN FIG.1 :
9.1.2 FIG.2:
This is the table figure which is used in SQLite browser for creating
a database question and answer tables.
9.2 Main Page Of the Application
Basic Working Of the WebBrowser
app
9.4 Setting Page View
9.5 Rules Page View
9.5 Answers Page View
CODING PART
SplshActivity.java
package com.tmm.android.quizApp;
import java.io.IOException;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.SQLException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.tmm.android.chuck.R;
import com.tmm.android.quizApp.db.DBHelper;
import com.tmm.android.quizApp.quiz.Constants;
import com.tmm.android.quizApp.quiz.GamePlay;
import com.tmm.android.quizApp.quiz.Question;
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
playBtn.setOnClickListener(this);
settingsBtn.setOnClickListener(this);
rulesBtn.setOnClickListener(this);
exitBtn.setOnClickListener(this);
/**
*/
@Override
Intent i;
switch (v.getId()){
case R.id.playBtn :
c.setQuestions(questions);
c.setNumRounds(getNumQuestions());
((ChuckApplication)getApplication()).setCurrentGame(c);
startActivityForResult(i, Constants.PLAYBUTTON);
break;
case R.id.rulesBtn :
startActivityForResult(i, Constants.RULESBUTTON);
break;
case R.id.settingsBtn :
startActivityForResult(i, Constants.SETTINGSBUTTON);
break;
case R.id.exitBtn :
finish();
break;
/**
* @return
* @throws Error
*/
try {
myDbHelper.createDataBase();
} catch (IOException ioe) {
try {
myDbHelper.openDataBase();
}catch(SQLException sqle){
throw sqle;
myDbHelper.close();
return questions;
/**
* @return
*/
return diff;
/**
* Method to return the number of questions for the game
* @return
*/
return numRounds;
SettingActivity.java
package com.tmm.android.quizApp;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import com.tmm.android.chuck.R;
import com.tmm.android.quizApp.quiz.Constants;
/**
* @author robert.hinds
*/
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
/**
*/
updateBtn.setOnClickListener(this);
/**
*/
updateButtonPreferences();
/**
*/
RadioButton c1 = (RadioButton)findViewById(R.id.easySetting);
RadioButton c2 = (RadioButton)findViewById(R.id.mediumSetting);
RadioButton c3 = (RadioButton)findViewById(R.id.hardSetting);
switch (difflevel)
case Constants.EASY :
c1.toggle();
break;
case Constants.MEDIUM :
c2.toggle();
break;
case Constants.HARD :
c3.toggle();
break;
@Override
/**
*/
if (!checkSelected())
return;
else
e.putInt(Constants.DIFFICULTY, getSelectedSetting());
e.commit();
finish();
/**
* @return boolean
*/
RadioButton c1 = (RadioButton)findViewById(R.id.easySetting);
RadioButton c2 = (RadioButton)findViewById(R.id.mediumSetting);
RadioButton c3 = (RadioButton)findViewById(R.id.hardSetting);
/**
RadioButton c1 = (RadioButton)findViewById(R.id.easySetting);
RadioButton c2 = (RadioButton)findViewById(R.id.mediumSetting);
if (c1.isChecked())
return Constants.EASY;
if (c2.isChecked())
return Constants.MEDIUM;
return Constants.HARD;
RulesActivity.java
package com.tmm.android.quizApp;
import com.tmm.android.chuck.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
/**
* @author robert.hinds
*/
TextView t;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.rules);
//finish button
backBtn.setOnClickListener(this);
t = (TextView) findViewById(R.id.textView1);
@Override
public void onClick(View arg0) {
/**
*/
finish();
QuestionsActivity.java
package com.tmm.android.quizApp;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;
import com.tmm.android.chuck.R;
import com.tmm.android.quizApp.quiz.GamePlay;
import com.tmm.android.quizApp.quiz.Question;
import com.tmm.android.quizApp.util.Utility;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.question);
currentGame = ((ChuckApplication)getApplication()).getCurrentGame();
currentQ = currentGame.getNextQuestion();
nextBtn.setOnClickListener(this);
/**
*/
setQuestions();
/**
* Method to set the text for the question and answers from the current games
* current question
*/
qText.setText(question);
option1.setText(Utility.capitalise(answers.get(0)));
option2.setText(Utility.capitalise(answers.get(1)));
option3.setText(Utility.capitalise(answers.get(2)));
@Override
/**
*/
if (!checkAnswer()) return;
/**
*/
if (currentGame.isGameOver()){
startActivity(i);
finish();
else{
finish();
@Override
switch (keyCode)
case KeyEvent.KEYCODE_BACK :
return true;
/**
*/
return false;
else {
if (currentQ.getAnswer().equalsIgnoreCase(answer))
currentGame.incrementRightAnswers();
else{
currentGame.incrementWrongAnswers();
return true;
/**
*/
RadioButton c1 = (RadioButton)findViewById(R.id.answer1);
RadioButton c2 = (RadioButton)findViewById(R.id.answer2);
RadioButton c3 = (RadioButton)findViewById(R.id.answer3);
RadioButton c4 = (RadioButton)findViewById(R.id.answer4);
if (c1.isChecked())
return c1.getText().toString();
if (c2.isChecked())
return c2.getText().toString();
if (c3.isChecked())
return c3.getText().toString();
if (c4.isChecked())
return c4.getText().toString();
return null;
}
AnswersActivity,java
package com.tmm.android.quizApp;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.tmm.android.chuck.R;
import com.tmm.android.quizApp.quiz.GamePlay;
import com.tmm.android.quizApp.util.Utility;
/**
* @author robert.hinds
*/
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.answers);
GamePlay currentGame = ((ChuckApplication)getApplication()).getCurrentGame();
results.setText(answers);
finishBtn.setOnClickListener(this);
/* (non-Javadoc)
*/
@Override
switch (keyCode)
{
case KeyEvent.KEYCODE_BACK :
return true;
@Override
switch (v.getId()){
case R.id.finishBtn :
finish();
ChuckApplication.java
package com.tmm.android.quizApp;
import com.tmm.android.quizApp.quiz.GamePlay;
import android.app.Application;
*/
this.currentGame = currentGame;
return currentGame;
EndgameActivity.java
package com.tmm.android.quizApp;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.tmm.android.chuck.R;
import com.tmm.android.quizApp.quiz.Constants;
import com.tmm.android.quizApp.quiz.GamePlay;
import com.tmm.android.quizApp.quiz.Helper;
/**
* @author robert.hinds
*/
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.endgame);
results.setText(result + comment);
resultImage.setImageResource(image);
finishBtn.setOnClickListener(this);
answerBtn.setOnClickListener(this);
/**
* @return
*/
return diff;
}
/* (non-Javadoc)
*/
@Override
switch (keyCode)
case KeyEvent.KEYCODE_BACK :
return true;
@Override
switch (v.getId()){
case R.id.finishBtn :
finish();
break;
case R.id.answerBtn :
startActivityForResult(i, Constants.PLAYBUTTON);
break;
DBHepler.java
package com.tmm.android.quizApp.db;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import com.tmm.android.quizApp.quiz.Question;
/**
* @author robert.hinds
*/
/**
* Constructor
* Takes and keeps a reference of the passed context in order to access to the application assets
and resources.
* @param context
*/
this.myContext = context;
/**
* Creates a empty database on the system and rewrites it with your own database.
* */
if(!dbExist)
//By calling this method and empty database will be created into the default
system path
//of app so we are gonna be able to overwrite that db with our db.
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
}
/**
* Check if the database already exist to avoid re-copying the file each time you open the
application.
*/
try{
}catch(SQLiteException e){
if(checkDB != null){
checkDB.close();
/**
* Copies your database from your local assets-folder to the just created empty database in the
int length;
myOutput.write(buffer, 0, length);
myOutput.flush();
myOutput.close();
myInput.close();
}
public void openDataBase() throws SQLException{
@Override
if(myDataBase != null)
myDataBase.close();
super.close();
@Override
@Override
// Add your public helper methods to access and get content from the database.
while (c.moveToNext()){
//Question Found in DB
q.setQuestion(c.getString(1));
q.setAnswer(c.getString(2));
q.setOption1(c.getString(3));
q.setOption2(c.getString(4));
q.setOption3(c.getString(5));
q.setRating(difficulty);
questionSet.add(q);
return questionSet;
}
CONCLUSION
In Summary, the project, “Android Based WebBrowser
Application -WEBBROWSERApplication” provides a Technical
based quiz applications where users can improve their Technical
knowledge. There are different types of question which is related
with Database, Network security, Java, ASP.NET, Operating
System.
WEBSITES :
www.google.com.
www.youtube.com.
www.sanfoundry.com.
Wikipedia
BOOKS :
Java Reference book (pdf)
FY , SY ,TY Notes
Android SQLite Database pdf file
Database Managemet System , ASP.NET, Network Security
Book