Sie sind auf Seite 1von 50

XYZ Institute of Technology

Noida, U.P.

MINI PROJECT REPORT


on
Time Table Generation App

Acknowledgement
It is always a pleasure to remind the fine
people in the Engineering program for their sincere
guidance I received to uphold my practical as well as
theoretical skills in engineering.
Firstly,
I
would
also
like
to
thank_________________________________ for his
support and encouragement so each and every student
could excel in studies.

I would also like to acknowledge and my


heartfelt gratitude to all the faculty member of the
department who helped me throughout the course.
Finally, I would like to express my deep sense
of gratitude to the almighty for showing me the way and
helping in completion of training.

Content

1.

Existing and Proposed System

2.

Salient Features of the System

3.
3.1.
3.2.
3.2.1.
3.2.2.
3.2.3.
3.3.

Software Requirement Analysis


Problem Definition
Feasibility Analysis
Economic Feasibility
Technical Feasibility
Behavioural Feasibility
Methodology

4.
4.1.

Life Cycle Model


Waterfall Model

5.
5.1.
5.2.
5.3.
5.4.
5.5.

Software Hardware Requirement


Android Studio
Java JDK
SQLite
Java Programming Language
XML Scripting Language

6.

Software Specification

7.

Hardware Specification

8.

Define Modules and Functionalities

8.1.
8.2.

Subject Management Module


Time Table generation Module

9.

Software Design

10.

UML Diagram

11.

Data Flow Diagram

12.

Database Design

13.

E-R Diagram

14.
14.1.
14.1.1
.
14.1.2
.
14.1.3
.
14.1.4
.
14.2.

Testing
Test Types
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Database Testing

15.

References/Bibliography
Appendices
Installation Manual

16.

Conclusion
Suggestion for future work

17.
18.
18.1.
18.1.1
.
18.1.2
.

JDK Installation
Android Studio Installation

Introduction
Automatic Time Table Generator is an Android
based application used to generate automatically.
Currently Time Table is managed manually. It
will help to manage all the periods automatically.
Maximum and minimum work load for a faculty for a
day, week and month will be specified for the efficient
generation of time table.
It is a comprehensive time table management
solution for colleges which will help to overcome the
challenges in manually setting the time table.

1. Existing and Proposed System


Normally Time table generation is done
manually. As we know all institutions /organisations
have their own Time tables, managing and maintaining
these will not be difficult. Considering work load with
this scheduling will make it more complex. As
mentioned, when Time table generation is being done, it
should consider the maximum and minimum workload
that is in a college. In those cases Time table generation
is more complex. Also it is a time consuming process.
Automatic Timetable Manager is an Android
based application used to generate Timetable
automatically. It will help user to manage all the periods
automatically. It will produce an excel sheet or a PDF
file of time table generated.

2. Salient Features of the System


Automatic Time Table Manager is an Android
Based Application.
It will help in generating time table automatically.
Proposed System will help to generate time table
automatically and also helps saving time.
There is no need for a faculty to worry about their
time table.
It is a comprehensive time table management
solution for colleges which help to overcome the
challenges in the current system.

3. Software Requirement Analysis


The current problem is setting up of time table
manually. Any absent is there, then assigning that
period to another faculty is not an easy job because at
that time we should consider the maximum workload
for a faculty (assigning extra period should not exceed
the maximum workload).
3.1. Problem Definition
Avoid the complexity of setting and managing
time table manually it will help user to manage
all the periods automatically. Faculty can
receive their period information in their phone.
Initially we will be setting the maximum
workloads for a faculty in a day, week and
month. Main challenge is to manage time table
when any faculty is absent by using this app it
will be very easy to allocate subject for
different faculty.

3.2. Feasibility Analysis


A feasibility study was an evolution of a
proposal designed to determine the difficulty
in carrying out a designated task. Generally, a
feasibility
study
precedes
technical
development and project implementation.
3.2.1. Economic Feasibilty
To develop the proposed system, it needs no
extra facilities and devices. All dependencies
are satisfied from the open source projects. All
tools used are free, open source and the
programming language is JAVA and XML and
hence, its development is economically
feasible.
3.2.2. Technical Feasibility
Proposed system is technically feasible
because the proposed system requires only
those hardware and software that are available
in the system. It requires the installation of
JVM, JAVA, Android Studio, Universal
Google USB Driver and SQLite which can be
done for free. Moreover, expandability will be

maintained in the new system. New modules


can be added later on the application, if
required in the future. Additionally, the app
will have user friendly forms and UI.
3.2.3. Behavioural Feasibility
Behavioural Feasibility determines how much
effort will go in the proposed information
system, and in educating and training the user
on the new system. Since the user interface is
very simple and easily understandable, no
training is required for using this app.

3.3. Methodology
The establishment makes use of Software
Engineering Principles in order to obtain
economically developed app that is reliable
and works efficiently on real machine is called
software engineering.
Software Engineering is the discipline whose
aim is:
o Production of quality software.
o Cost within the budget.
o Satisfies all requirement.
Software Process is the way in which we
produce the software. Apart from hiring smart
knowledgeable engineers and buying the latest
development
tools,
effective
software
development process is also needed, so that
engineers can systematically use the best
technical and managerial practices to
successfully complete their projects.

A Software Life Cycle is a series of


identifiable stages that a software product
undergoes during its lifetime. A software life
cycle model is a descriptive and diagrammatic
representation of the software life cycle. A life
cycle model represents all the activities
required to make a software product transit
through its life cycle phases. It also captures
the order in which these activities are to be
taken.

4. Life Cycle Models


There are various life cycle models to improve
the software processes:
o
o
o
o
o

Waterfall Model
Prototype Model
Iterative Enhancement Model
Evolutionary Model
Spiral Model

4.1. Waterfall Model


The waterfall model is a sequential design
process, used in software development processes,
in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases
of conception, initiation, analysis, design,
construction, testing, production/implementation
and maintenance.
The waterfall development model originates in
the manufacturing and construction industries:
highly structured physical environments in which
after-the-fact changes are prohibitively costly, if
not impossible. Since no formal software
development methodologies existed at the time,
this hardware-oriented model was simply
adapted for software development.

In Royce's original waterfall model, the following


phases are followed in order:
1. System and software requirements: captured in
a product requirements document
2. Analysis: resulting in models, schema, and
business rules
3. Design: resulting in the software architecture
4. Coding: the development,
integration of software
5. Testing: the systematic
debugging of defects

proving,

and

discovery

and

6. Operations: the installation, migration,


support, and maintenance of complete systems
Thus the waterfall model maintains that one should
move to a phase only when its preceding phase is
reviewed and verified.

Clients may not know exactly what their


requirements are before they see working software
and so change their requirements, leading to
redesign, redevelopment, and retesting, and
increased costs.

Designers may not be aware of future difficulties


when designing a new software product or feature;
in which case, it is better to revise the design than
persist in a design that does not account for any
newly discovered constraints, requirements, or
problems.
In response to the perceived problems with the
pure waterfall model, modified waterfall models
were introduced, such as "Sashimi (Waterfall with
Overlapping Phases), Waterfall with Subprojects,
and Waterfall with Risk Reduction".

5. Software and Hardware


Requirements
Platform forms the foundation on which the
architecture, designed and implementation of a
product is built. System specification define the
full functionality of the system. In many systems
we work on, some functionalities performed in
hardware and some in software. System
specification documents can thus be defined as a
requirements documentation that formally
specifies the system level requirements of an
application. This app developed on Android
Platform.
5.1. Android Studio
Android Studio is an integrated development
environment (IDE) for developing for the
Android platform. It was announced on May 16,
2013 at the Google I/O conference by Google's
Product Manager, Katherine Chou. Android
Studio is freely available under the Apache
License 2.0.

Android Studio was in early access preview stage


starting from version 0.1 in May 2013, then
entered beta stage starting from version 0.8
which was released in June 2014. The first stable
build was released in December 2014, starting
from version 1.0.
Based on Jet Brains' IntelliJ IDEA software,
Android Studio is designed specifically for
Android development. It is available for
download on Windows, Mac OS X and Linux,
and replaced Eclipse Android Development
Tools (ADT) as Google's primary IDE for native
Android application development.
5.2. Java JDK
The Java Development Kit (JDK) is an
implementation of either one of the
Java SE, Java EE or Java ME platforms
released by Oracle Corporation in the
form of a binary product aimed at Java
developers on Solaris, Linux, Mac OS X
or Windows. The JDK includes a private
JVM and a few other resources to finish
the development of a Java Application.
Since the introduction of the Java
platform, it has been by far the most

widely used Software Development Kit


(SDK). On 17 November 2006, Sun
announced that it would be released
under the GNU General Public License
(GPL), thus making it free software.
This happened in large part on 8 May
2007, when Sun contributed the source
code to the OpenJDK.
5.3. SQLite
SQLite is a relational database management
system contained in a C programming library. In
contrast to many other database management
systems, SQLite is not a clientserver database
engine. Rather, it is embedded into the end
program.
SQLite is ACID-compliant and implements most
of the SQL standard, using a dynamically and
weakly typed SQL syntax that does not guarantee
the domain integrity.
SQLite is a popular choice as embedded database
software for local/client storage in application
software such as web browsers. It is arguably the
most widely deployed database engine, as it is
used today by several widespread browsers,
operating systems, and embedded systems,

among others. SQLite has bindings to many


programming languages.

5.4. Java Programming Language


Java is a general-purpose computer programming
language that is concurrent, class-based, objectoriented, and specifically designed to have as
few implementation dependencies as possible. It
is intended to let application developers "write
once, run anywhere" (WORA), meaning that
compiled Java code can run on all platforms that
support Java without the need for recompilation.
Java applications are typically compiled to
bytecode that can run on any Java virtual
machine (JVM) regardless of computer
architecture. As of 2015, Java is one of the most
popular programming languages in use,
particularly for client-server web applications,
with a reported 9 million developers. Java was
originally developed by James Gosling at Sun
Microsystems (which has since been acquired by
Oracle Corporation) and released in 1995 as a
core component of Sun Microsystems' Java

platform. The language derives much of its


syntax from C and C++, but it has fewer lowlevel facilities than either of them.
The original and reference implementation Java
compilers, virtual machines, and class libraries
were originally released by Sun under
proprietary licences. As of May 2007, in
compliance with the specifications of the Java
Community Process, Sun relicensed most of its
Java technologies under the GNU General Public
License. Others have also developed alternative
implementations of these Sun technologies, such
as the GNU Compiler for Java (bytecode
compiler), GNU Classpath (standard libraries),
and IcedTea-Web (browser plugin for applets).
The latest version is Java 8, which is the only
version currently supported for free by Oracle,
although earlier versions are supported both by
Oracle and other companies on a commercial
basis.

5.5. XML Scripting Language


Extensible Markup Language (XML) is a
markup language that defines a set of rules for
encoding documents in a format which is both

human-readable and machine-readable. It is


defined by the W3C's XML 1.0 Specification and
by several other related specifications, all of
which are free open standards.
The design goals of XML emphasize simplicity,
generality and usability across the Internet. It is a
textual data format with strong support via
Unicode for different human languages.
Although the design of XML focuses on
documents, it is widely used for the
representation of arbitrary data structures such
as those used in web services.
Several schema systems exist to aid in the
definition of XML-based languages, while many
application programming interfaces (APIs) have
been developed to aid the processing of XML
data.
The material in this section is based on the XML
Specification. This is not an exhaustive list of all
the constructs that appear in XML; it provides an
introduction to the key constructs most often
encountered in day-to-day use.

6. Software Specification
Operating System

- Windows/Android
OS

Technology
- Android
Design Tool
Runtime Environment
Compiler
Database

- Android Studio
- Dalvik/ART
- JACK
- SQLite

Where,
ART: Android Run Time Environment
JACK: Java Android Compiler Kit

7. Hardware Specification
Processor

- MTK/Snapdragon

Clock speed

- 0.5GHz

RAM

- 512MB

Storage

- 20MB

Processor belonging to any series of vendors


MTK (MediaTek) or Qualcomm Snapdragon will
work fine with the App.

8. Define the modules and their


functionalities
The proposed system consists of the following
modules:
8.1. Subject management Module
Subject management module in this project is
meant for the users. In
this module, subjects are allocated for users.
It does the following tasks:
Give subject , faculty and Semester
View timetable
View leave request
8.2. Timetable Generation Module

It is the important part of project which generate


Timetable
automatically. IN this module it develop module.
Generation done by considering maximum and
minimum workload for a Faculty (without less
and without exceeding). This will be generated
by admin and viewed by Principal and Faculty
who's are the users of the system.

9. Software Design
The most creative and challenging phase of the
life cycle is system design. The term design
describes a final system and the process by
which it is developed. It refers to the technical
specifications that will be applied in
implementations of the system. The importance
of software design can be stated in a single word
Quality.
Design
provides
us
with
representations of software that can be assessed
for quality. Design is the only way where we can
accurately translate user requirements into a
complete software product or system. Without
design we risk building an unstable system that
might fail if small changes are made. It may as
well be difficult to test, or could be one whos

quality cant be tested. So it is an essential phase


in the development of a software product.

10. UML Diagrams


Admin

11. Data Flow Diagrams

The DFD is also known as the bubble chart. It is


a simple graphical formalism that can be used to
represent a system in terms of the input data to
the system, various processing carried out in
these data and the output data generated by the
system. Starting with a set of high-level
functions that a system performance of DFD
model in hierarchically it represents various sub
functions.
In a normal convention, logical DFD can be
completed using only four notations:
Represents source or destination of data
Represents Data Flow
Represents a process that transforms incoming
data into outgoing data
Represents Data Source
Function Symbol
A function is represented using a circle. This
symbol is called a process or a bubble. Bubbles
are annotated with the names of corresponding
functions.
External Entity Symbol
An external entity such as a librarian, library
member etc is represented by a rectangle. The

external entities are essentially those physical


entities external to the software system, which
interact with the system by inputting data to the
system or by consuming the data produced by the
system.
Data Flow Symbol
A directed arc or an arrow is used as a Data Flow
Symbol. This represents the data flow occurring
between two processes or between an external
entity and a process in direction of the Data
Flow Arrow. Data Flow symbols are annotated
with corresponding data names.
Data Store Symbol
A Data Store represents a logical file; it is
represented using two parallel lines. A logical file
can represent either Data Store Symbol, which
can represent either data structure or a physical
file on disk.
Output Symbol
The output symbol is used when a hardcopy is
produced and the user of the copies cannot be
clearly specified or there are several users of the
output. The DFD at the simplest level is referred
to as the Context Analysis Diagram. These are
expanded by level, each explaining in process in

detail. Processes are numbered for easy


identification and are normally labelled in block
letters. Each data flow is labelled for easy
understanding.

12. Database design

The system is implemented in such a way that all


the valid
Informations are stored in the database.
Database design converts the data model
developed in logical designing to database
definition. This is supported by database
software. The management of data involves both
the definition of structure of the storage of
information and provision of mechanism for the
manipulation of information. In addition
database system must provide safety of
information handle, despite the system crashes
due to attempts of unauthorized access.
A database is a collection of interrelated data
stored with minimum redundancy to serve many
users quickly and efficiently. In database design,
several views of data must be considered along
with the person who users them. The logical
view is what the data look like, regardless of how
they are stored. The physical view is the way
data exist in physical storage. Tables are
carefully designed aiming to achieve its main
objectives i.e., to make information access easy,
quick, inexpensive and flexible for user.
NORMALIZATION

Normalization is the process of analyzing the


given relation schemas based on their Functional
Dependencies and primary keys to achieve the
desirable properties of Minimizing Redundancy,
Minimizing the insertion, deletion and updating
anomalies.
Normalization is carried out for the following
reasons:
To structure the data so that perfect
relationship between
entries can be
represented.
To permit simple retrieval of data in response
query and report requests.
To reduce the need to restructure or reorganize
data when new application requirement arises.
Normalization consists of various levels:
1. First Normal Form (1NF)
A table is in 1NF if there are no duplicate rows in
the table. Each cell is single valued. Entries in a
column are of the same kind.
2. Second Normal Form (2NF)
Second Normal form is based on the concept of
full functional dependency. A table (relation) is
in 2NF if .It is in First Normal Form and if all
non-key attributes are dependent on the key.
Dependent on only a part of the (composite) key,

the definition of 2NF is sometimes phrased as,


"A table is in 2nF if it is in 1NF and if it has no
partial dependencies.
3. Third Normal Form (3NF)
Third Normal Form is based on the concept of
transitive dependency. A table (relation) is in
3NF if it is in Second Normal Form and if it has
no transitive dependencies.

13. E-R Diagram

14. Testing

Validation and checks


Software validation is achieved through a series
of tests that demonstrate conformity with
requirements. Validation succeeds when software
functions in a manner that can be reasonably
expected by the customer. Here line by line
checking is used to find errors. Comment line
facility is used for checking errors.
Testing is necessary for the success of the
system. During testing, program to be tested is
executed with a set of test data and the output of
the program for test data is evaluated to
determine if the programs are performing as
expected.
Validation means checking the quality of
software in both simulated and live
environments. System validation ensures that the
user can in fact match his/her claims, especially
system performance. True validation is verified
by having each system tested.
First the application goes through a phase often
referred as alpha testing in which the errors and
failures based on simulated user requirements are
verified and studied. The modified software is
then subjected to phase two called beta testing in
the actual users site or live environment. After a
scheduled time, failures and errors are
documented
for
final
correction
and

enhancements are made before the package is


released.
In a software development project, errors can be
injected at any stage during development. Even if
error detecting and eliminating techniques were
employed in the previous analysis and design
phases, errors are likely to remain undetected.
Unfortunately, these errors will be reflected in
the code. Since code is frequently the only
product that can be executed and whose actual
behaviour can be observed, testing is the phase
where the errors remaining from the earlier
phases must be detected in addition to detecting
the errors introduced during coding activity.
Having proper test cases is central to successful
testing. We would like to determine a set of test
cases such that successful execution of all of
them implies that there are no errors in the
program. Therefore, our project crew aimed at
selecting the test cases such that the maximum
possible numbers of errors are detected by the
minimum number of test cases.
For this we have adopted both manual testing
techniques and automated testing techniques.
First and foremost, testing was done by means of
Inspection, where participants manually examine
system deliverables for occurrences of wellknown errors. Inspection team consists of 5

members who are trained for their tasks. Items


for inspection include completeness of the
design, and functional requirements, internal
completeness and consistency in definition and
usage of terminology, and correctness of the
interfaces between modules. Syntax, grammar,
and some other routine errors were checked by
automated inspection software, so manual
inspection checks are used for more subtle errors.
And we have done the testing following design
phase prior to implementation.
Testing objectives are:
Testing is a process of executing a program
with the intent of finding an error.
A good test case is one that has a high
probability of finding an as-yet- undiscovered
error.
A successful test is one that uncovers an asyet-undiscovered error. Automated testing is
performed at four different levels.

14.1. Test Types


1. Unit Testing

2. Integration Testing
3. System Testing
4. Acceptance Testing
14.1.1.

Unit Testing

In unit testing different modules are tested


against the specifications produced during
design phase for the modules in the project and
the goal is to test the internal logic of the
modules.
In order to perform the unit testing, the best
approach we adopted in this project is
functional testing in which inputs are given to
the system for which the expected results are
known, boundary values and special values.
For this the module selected was advance
details where the balance amount falls to
negative indicating there is no more payment
required. Secondly performance testing was
done to determine the amount of execution
time spent in various aspects like the module,
program throughput, response time, and the
device utilization by the program unit.
14.1.2.

Integration Testing

The primary goal of the integration testing is to


see if the modules can be integrated properly.
The integration testing is therefore considered
as testing the design. Thus in the integration
testing step, all the errors uncovered are
corrected for the next testing steps.
14.1.3.

System Testing

System testing is similar to integration testing,


but instead of integrating modules into
programs for testing, programs are integrated
into systems for testing the interfaces between
programs in a system. System testing can be
defined in many ways, but a simple definition
is that validation succeeds when the software
functions in a manner that can be reasonably
expected by the customer.
14.1.4.

Acceptance Testing

Once the system tests have been satisfactory


completed, the system is ready for acceptance
testing. Acceptance testing is the process
whereby actual users test a completed
information system in the environment where
it will eventually be used, the end result of
which is the users acceptance or rejection.

The admin and staff at Company accepted


proposed system after testing.
14.2. Database Testing
The accuracy and integrity of data stored by
the server is tested. Transactions posted by
client applications are examined to ensure that
data are properly stored, updated and retrieved.
Archiving is also tested.

15. Conclusion
Automatic Timetable Generator is a android
based application for generating timetable
automatically. It is a great difficult task that to
manage many Faculty's and allocating subjects
for them at a time manually. So proposed system

will help to overcome this disadvantage. Thus we


can generate timetable for any number of courses
and multiple semesters. This system will help to
create dynamic pages so that for implementing
such a system we can make use of the different
tools are widely applicable and free to use
also.

16. SUGGESTION
WORK

FOR

FUTURE

Automatic Time Table Generator is an Android


based application which could further be made
into a Cloud based application. A client-server
type app can pass notifications to individual
faculties. A student portal could also be added so

that every student could stay updated of their


time table.

17. REFERENCES/BIBILIOGRAPHY
Books:
o Software Engineering Fifth edition by R.
Pressman, McGraw-Hill Publication, 1997

Websites:

o
o
o
o
o
o
o

http://en.wikipedia.org/wiki/SQLite
http://en.wikipedia.org/wiki/java
http://en.wikipedia.org/wiki/xml
http://en.wikipedia.org/wiki/android_studio
http://en.wikipedia.org/wiki/jdk
https://en.wikipedia.org/wiki/Software_testing
https://en.wikipedia.org/wiki/Database_normal
ization

18. Appendices
The purpose of system implementation can be
summarized as follows: making the new system
available to a prepared set of users (deployment),
and
positioning
ongoing
support
and
maintenance of the system within the performing
organization. At a finer level, deploying the
system consists of executing all steps necessary
to educate the consumers on the use of the new
system, placing the newly developed system into

production, confirming that all data required at


the start of the operation are available and
accurate, and validating that, the functions that
interact with the system are functioning properly.
18.1. Installation Manual
Working of this software is required to set some
basic requirements concentrate on hardware and
software requirements.
18.1.1.

JDK Installation

Install the latest JDK, but it can be messy if


you have multiple versions of JDK/JRE.If you
have previously installed older version of
JDK/JRE, un-install ALL of them.
Step 1: Download JDK
Go to Java SE download site @
http://oracle.com/technetwork/java/javase/dow
nload/index.html
Click the "Download" button under "JDK"
of "Java SE 7".
Check "Accept License Agreement".
Choose your operating platform, e.g.,
Windows x86 for 32-bit Windows OS or
Windows x64 for 64-bit Windows OS. You can

check whether your Windows OS is 32-bit or


64-bit via "Control Panel" System under
the System Type".
Step 2: Install JDK and JRE
Run the downloaded installer which
installs both the JDK (Java Development Kit)
and JRE (Java Runtime). By default, the JDK
will be installed in directory "C:\Program
Files\Java\jdk1.7.0_xx", where xx denotes the
latest upgrade number; and JRE in
"C:\Program Files\Java\jre7".
For novices, accept the defaults. Simply click
"next"..."next"... to install JDK in "C:\Program
Files\Java\jdk1.7.0_xx"
and
JRE
in
"C:\Program Files\Java\jre7".
Take note of your JDK installed directory
(which you will need to use in the next step).
Check the JDK installed directory by
inspecting these folders using Windows'
Explorer.
Step 3: Include JDK's "bin" Directory in the
PATH
Variable name: PATH
Variable
value:
c:\Program
Files\Java\jdk1.7.0_xx\bin;[exiting entries]

Place the JDK bin directory in front of


"c:\windows\system32" and "c:\windows".
This is because some Windows systems may
have an out-dated copy of JDK/JRE in these
directories. Do a search for "java.exe", and you
will be amazed by the findings.
Step 4: Verify the JDK Installation
Launch a CMD shell (Click "Start" button
run... enter "cmd"; or "Start" button All
Programs Accessories Command
Prompt).
Issue a "path" command to list the
contents of the PATH environment variable.
Check the output and make sure that
<JAVA_HOME>\bin is listed in the PATH.
prompt> path
PATH=c:\Program Files\Java\jdk1.7.0_xx\bin;
[other entries]
Issue the following commands to verify
that JDK/JRE are properly installed and
display their version:
prompt> java -version
java version "1.7.0_xx"
Java(TM) SE Runtime Environment (build
1.7.0_xx-b11)
Java HotSpot(TM) Client VM (build 23.3b01, mixed mode, sharing)

prompt> javac -version javac 1.7.0_xx


18.1.2.

Android Studio Installation

Installing the Android SDK


If you haven't already, download the Android
SDK bundle for Android Studio or the standalone SDK Tools.
Then, select which SDK bundle you want to
install.
1. Launch the .exe file you just downloaded.
2. Follow the setup wizard to install Android
Studio and any necessary SDK tools.
On some Windows systems, the launcher script
does not find where Java is installed. If you
encounter this problem, you need to set an
environment variable indicating the correct
location.
Select Start menu > Computer > System
Properties > Advanced System Properties.
Then open Advanced tab > Environment
Variables and add a new system variable
JAVA_HOME that points to your JDK folder,

for
example
Files\Java\jdk1.7.0_21.

C:\Program