Android Project Report1
Android Project Report1
ATTENDOPEDIA
SUBMITTED BY
MANINDER KAUR
University Roll No. 1608481
SUBMITTED TO
Ms. SUKHWANT KAUR (Assistant Professor)
TABLE OF CONTENTS
List of Figures........................................................................................................ii
List of Tables........................................................................................................iii
Abbrevaitions....................................................................................................iv-v
1. Software Training.......................................................................................1-14
1.1. Introduction to Java..............................................................................1-5
1.2. Android.................................................................................................5-14
2. Industrial Training Project......................................................................15-20
2.1. Project Introduction..........................................................................15-17
2.2. System analysis & design..................................................................17-20
3. Conclusion.......................................................................................................21
4. References.......................................................................................................22
LIST OF FIGURES
Figure 1.1.1 : Features of java..............................................................................2
Figure 1.1.2 : Platform Independent....................................................................2
Figure 1.1.3 : Security...........................................................................................3
Figure 1.2.1 : Android Features...........................................................................6
Figure 1.2.2 : Categories of Android Application..............................................6
Figure 1.2.3 : Versions of Android.......................................................................7
Figure 1.2.4 : Android Architecture....................................................................9
Figure 1.2.5 : Android Activity Architecture....................................................10
Figure 1.2.6 : Android Core Building Blocks....................................................11
Figure 1.2.7 : Android Emulator………………................................................12
Figure 1.2.8 : Compiling and packaging process..............................................13
Figure 2.1.1 : Iterative and Incremental development.....................................17
Figure 2.2.2.1 : Data Flow Diagram Level-0.....................................................18
Figure 2.2.2.2 : Data Flow Diagram Level-1....................................................19
Figure 2.2.2.3 : Flowchart of the Project..........................................................19
ii
LIST OF TABLES
Table 1.1.1 : Data Types of Java…...................................................................4-5
Table 2.2.3.1 : Class Table…..............................................................................20
Table 2.2.3.2 : Subject Table…..........................................................................20
Table 2.2.3.3 : Student Table…..........................................................................20
Table 2.2.3.4 : Attendance Table…....................................................................20
iii
ABBREVAITIONS
A
API- Application Program Interface
APK- Android Package
AVD- Android Virtual Device
D
DVM- Dalvik Virtual Machine
H
HTTP- Hyper Text Transfer Protocol
I
IDEN- Integrated Digital Enhanced Network
J
JDK- Java Development Kit
JRE- Java Runtime Environment
JVM- Java Virtual Machine
O
OOPS- Object Oriented Programming Systems
S
SDK- Software Development Kit
SSL- Secure Sockets Layer
iv
W
WORA- Write Once Run Anywhere
X
XML- Extensible Markup Language
CHAPTER-1
SOFTWARE TRAINING
1.1 INTODUCTION TO JAVA
Java is a programming language created by James Gosling from Sun Microsystems (Sun) in
1991. The first publicly available version of Java (Java 1.0) was released in 1995. Sun
Microsystems was acquired by the Oracle Corporation in 2010. Over time new enhanced versions
of Java have been released. The current version of Java is Java 1.7 which is also known as Java
7. From the Java programming language, the Java platform evolved. The Java platform allows
software developers to write program code in other languages than the Java programming
language and still runs on the Java virtual machine. The Java platform is usually associated with
the Java virtual machine and the Java core libraries.
Features of Java
The main objective of Java programming language creation was to make it portable, simple and
secure programming language. Apart from this, there are also some awesome features which play
important role in the popularity of this language. The features of Java are also known as
java buzzwords.
Simple: Java is very easy to learn and its syntax is simple, clean and easy to understand.
According to Sun, Java language is a simple programming language because:
o Java syntax is based on C++ (so easier for programmers to learn it after C++).
o Java has removed many confusing and rarely-used features e.g. explicit pointers, operator
overloading etc.
o There is no need to remove unreferenced objects because there is Automatic Garbage
Collection in java.
Platform Independent:
Java is platform independent because it is different from other languages like C, C++ etc. which
are compiled into platform specific machines while Java is a write once, run anywhere language.
A platform is the hardware or software environment in which a program runs.
Java code can be run on multiple platforms e.g. Windows, Linux, Sun Solaris, Mac/OS etc. Java
code is compiled by the compiler and converted into bytecode. This bytecode is a platform-
independent code because it can be run on multiple platforms i.e. Write Once and Run Anywhere
(WORA).
Secured: Java is best known for its security. With Java, we can develop virus-free systems. Java
is secured because:
o No explicit pointer
o Java Programs run inside virtual machine sandbox
o Classloader: Class loader in Java is a part of the Java Runtime Environment (JRE) which
is used to dynamically load Java classes into the Java Virtual Machine. It adds security
by separating the package for the classes of the local file system from those that are
imported from network sources.
o Bytecode Verifier: It checks the code fragments for illegal code that can violate access
right to objects.
o Security Manager: It determines what resources a class can access such as reading and
writing to the local disk.
These securities are provided by java language. Some security can also be provided by
application developer through SSL, JAAS, Cryptography etc.
Portable: Java is portable because it facilitates you to carry the java bytecode to any platform. It
doesn't require any type of implementation.
Multi-threaded: A thread is like a separate program, executing concurrently. We can write Java
programs that deal with many tasks at once by defining multiple threads. The main advantage of
multi-threading is that it doesn't occupy memory for each thread. It shares a common memory
area. Threads are important for multi-media, Web applications etc.
Dynamic: Java is a dynamic language. It supports dynamic loading of classes. It means classes
are loaded on demand. It also supports functions from its native languages i.e. C and C++. Java
supports dynamic compilation and automatic memory management (garbage collection).
Data types specify the different sizes and values that can be stored in the variable. There are two
types of data types in Java:
1. Primitive data types: The primitive data types include Integer, Character, Boolean, and
Floating Point.
2. Non-primitive data types: The non-primitive data types include Classes, Interfaces, and
Arrays.
Java Primitive Data Types: In Java language, primitive data types are the building blocks of
data manipulation. These are the most basic data types available in Java language. Java is a
statically-typed programming language. It means, all variables must be declared before its use.
That is why we need to declare variable’s type and name.
There are 8 types of primitive data types: Boolean data type, byte data type, char data type,
short data type, int data type, long data type, float data type, double data type
Byte 0 1 byte
Short 0 2 bytes
Int 0 4 bytes
Long 0L 8 bytes
Float 0.0f 4 bytes
Double 0.0d 8 bytes
Table 1.1.1 Data types of Java
1.2 ANDROID
Android is an open source and Linux-based Operating System for mobile devices such as
smartphones and tablet computers. Android was developed by the Open Handset Alliance, led
by Google, and other companies. Android offers a unified approach to application development
for mobile devices which means developers need only develop for Android, and their
applications should be able to run on different devices powered by Android.
The first beta version of the Android Software Development Kit (SDK) was released by Google
in 2007 where as the first commercial version, Android 1.0, was released in September 2008. On
June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1
Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user
interface, both in terms of functionality and performance.
Features of Android
Android is a powerful operating system competing with Apple 4GS and supports great features.
Few of them are listed below −
➢ Beautiful UI: Android OS basic screen provides a beautiful and intuitive user interface.
➢ Connectivity: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE,
NFC and WiMAX.
➢ Storage: SQLite, a lightweight relational database, is used for data storage purposes.
➢ Messaging: SMS and MMS
➢ Web browser: Based on the open-source Web Kit layout engine, coupled with Chrome's
V8 JavaScript engine supporting HTML5 and CSS3.
➢ Multi-touch: Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.
➢ Multi-tasking: User can jump from one task to another and same time various application
can run simultaneously.
➢ GCM: Google Cloud Messaging (GCM) is a service that lets developers send short
message data to their users on Android devices, without needing a proprietary sync
solution.
➢ Android Beam: A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.
Android Applications: Android applications are usually developed in the Java language using
the Android Software Development Kit. Once developed, Android applications can be packaged
easily and sold out either through a store such as Google Play, Slide ME, Opera Mobile Store,
Mobango, F-droid and the Amazon Appstore.
There are many android applications in the market. The top categories are −
Android versions: These will help you to identify on which version you should make your
application. All these versions have a percentage chart across the whole globe according to a
survey, which will help you to identify the maximum used android version to maximize your
application benefits and provide it to the maximum users.
Interestingly, the first version of Android didn't adhere to a dessert name convention. This didn't
start until 1.1 which was the Petit Four. Since then it has gone in alphabetical order. It has now
been announced that Android will no longer be using desserts as part of its naming convention.
The latest version of the software will simply be known as Android 10.
Linux kernel: At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches.
This provides a level of abstraction between the device hardware and it contains all the essential
hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that
Linux is really good at such as networking and a vast array of device drivers, which take the pain
out of interfacing to peripheral hardware.
Libraries: On top of Linux kernel there is a set of libraries including open-source Web browser
engine Web Kit, well known library libc, SQLite database which is a useful repository for storage
and sharing of application data, libraries to play and record audio and video, SSL libraries
responsible for Internet security etc.
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.app − Provides access to the application model and is the cornerstone of all
Android applications.
• android.content − Facilitates content access, publishing and messaging between
applications and application components.
• android.database − Used to access data published by content providers and includes
SQLite database management classes.
• android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
• android.os − Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
• android.text − Used to render and manipulate text on a device display.
• android.view − The fundamental building blocks of application user interfaces.
• android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
• android.webkit − A set of classes intended to allow web-browsing capabilities to be built
into applications.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.
Android Runtime: This is the third section of the architecture and available on the second layer
from the bottom. This section provides a key component called Dalvik Virtual Machine which
is a kind of Java Virtual Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and multi-threading,
which is intrinsic in the Java language. The Dalvik VM enables every Android application to run
in its own process, with its own instance of the Dalvik virtual machine. The Android runtime
also provides a set of core libraries which enable Android application developers to write
Android applications using standard Java programming language.
• Activity Manager − Controls all aspects of the application lifecycle and activity stack.
• Content Providers − Allows applications to publish and share data with other
applications.
• Resource Manager − Provides access to non-code embedded resources such as strings,
colour settings and user interface layouts.
• Notifications Manager − Allows applications to display alerts and notifications to the
user.
• View System − An extensible set of views used to create application user interfaces.
Applications: You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are Contacts Books,
Browser, Games etc.
Android Activity: An activity represents a single screen with a user interface just like window
or frame of Java. Android activity is the subclass of ContextThemeWrapper class.
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:
9
• 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.
10
The core building blocks or fundamental components of android are activities, views, intents,
services, content providers, fragments and AndroidManifest.xml.
Activity
An activity is a class that represents a single screen. It is like a Frame in AWT.
View
A view is the UI element such as button, label, text field etc. Anything that you see is a view.
Intent: Intent is used to invoke components. It is mainly used to:
• Start the service
• Launch an activity
• Display a web page
• Display a list of contacts
• Broadcast a message
• Dial a phone call etc.
Content Provider
Content Providers are used to share data between the applications.
11
Fragment
Fragments are like parts of activity. An activity can display one or more fragments on the screen
at the same time.
AndroidManifest.xml
It contains information about activities, content providers, permissions etc. It is like the web.xml
file in Java EE.
It is used to test the android application without the need for mobile or tablet etc. It can be created
in different configurations to emulate different types of real devices.
Android Emulator
Android Emulator is used to run, debug and test the android application. If you don't have the
real device, it can be the best way to run, debug and test the application.
It uses an open source processor emulator technology called QEMU.
The emulator tool enables you to start the emulator from the command line. You need to write:
emulator -avd <AVD NAME>
In case of Eclipse IDE, you can create AVD by Window menu > AVD Manager > New.
In the given image, you can see the android emulator, it displays the output of the hello android
example.
The Dalvik Virtual Machine (DVM) is an android virtual machine optimized for mobile
devices. It optimizes the virtual machine for memory, battery life and performance. Dalvik is a
name of a town in Iceland. The Dalvik VM was written by Dan Bornstein. The Dex compiler
converts the class files into the .dex file that run on the Dalvik VM. Multiple class files are
converted into one dex file.
The javac tool compiles the java source file into the class file. The dx tool takes all the class
files of your application and generates a single .dex file. It is a platform-specific tool.
The Android Assets Packaging Tool (aapt) handles the packaging process.
This is the required xml file for all the android application and located inside the root directory.
<manifest>
manifest is the root element of the AndroidManifest.xml file. It has package attribute that
describes the package name of the activity class.
13
<application>
application is the subelement of the manifest. It includes the namespace declaration. This
element contains several subelements that declares the application component such as activity
etc.
The commonly used attributes are of this element are icon, label, theme etc.
android:icon represents the icon for all the android application components.
android:label works as the default label for all the application components.
<activity>
activity is the subelement of application and represents an activity that must be defined in the
AndroidManifest.xml file. It has many attributes such as label, name, theme, launchMode etc.
<intent-filter>
intent-filter is the sub-element of activity that describes the type of intent to which activity,
service or broadcast receiver can respond to.
<action>
It adds an action for the intent-filter. The intent-filter must have at least one action element.
<category>
14
CHAPTER-2
INDUSTRIAL TRAINING PROJECT
2.1 Project Introduction
Nowadays, mobile devices have become a way of life for students especially in higher education.
Computers are now replaced by compact smart phones that can fit into pocket and can be carried
anywhere. Attendopedia is an application for taking daily attendance in schools and colleges. It
provides minimal error in report generation of a particular student’s attendance. The main motive
behind this software is to replace the traditional pen and register system. Another reason for
developing this software is to generate the report automatically at the end of the session or in the
between of the session. Smart phones are based on operating systems like blackberry, IOS and
Android. To design this project, smart phones with Android operating system are chosen because
penetration rate of Android OS is 70 percent. It is an open source and free ware operating system.
The application is compatible with all Android versions starting from 5.0 Lollipop.
Attendopedia has been built to eliminate the time and effort wasted in taking attendances in
schools and colleges. It also greatly reduces the amount of paper resources needed in attendance
data management. This is an android mobile app. It’s built to be used for school/college faculty
so that they may take student attendance on their phones. This system has a single entity namely,
Teacher. Teacher can login using credentials. They can view the assigned classes. Teacher need
to select class and course for taking attendance. After selecting class name teacher will get two
sub category show attendance and take attendance. Attendance of students based on dates will
be listed in show attendance, and in take attendance teacher will let the list of students where
she/he has to mark and submit the attendance.
The system is divided into following modules:
Add Class and Course Assigned: Once this App is installed on your phone, it allows user to
add class and courses assigned to them so that when they are going to take attendance that can
choose class whose attendance they are going to take.
Student Attendance List Creation: After adding classes it allows user to create a student
attendance sheet consisting of name, roll number, phone number from navigation bar.
Attendance Marking: The faculty has the list on their phone now. He/she may see the list call
roll numbers and select absent id the student is absent or select present if student is present.
Feasibility Study
This system is feasible because of the following reasons:
➢ Economically Feasibility: This software is economic from school or colleges point of
view. It is cost effective as use of paper has been eliminated. It is time effective since
evaluation of attendance and report generation is done in less amount of time with
minimal errors.
➢ Technical feasibility: This software is technically feasible since there are no extra
hardware requirements. The only requirement is an android smartphone with minimum
version 5.0 jelly Lollipop.
➢ Behavioural Feasibility: This software is very simple to use. The user doesn’t need any
special training to use this software. The software has been designed keeping the user’s
point of view.
Project Lifecycle
The iterative waterfall model and incremental development model are being used to develop the
project. In which progress is seen as flowing steadily downwards (like a waterfall) through the
phases of software implementation. This means that any phase in the development process begins
only if the previous phase is complete. And after completing implementation we can deploy
application even before testing for customer review and feedback. In the iterative waterfall
approach does the process can go back to the previous phase to handle changes in requirement.
The waterfall approach is the earliest approach that was used for software development.
16
Methodology Used
Our project Attendopedia is based on some concepts and methodologies that we devised during
our initial study and visualization of the project. We have planned our project keeping in mind
the Object-Oriented Concepts that can be applied to the project. The project is strongly supported
at the back end by Java-the most popular and successful object oriented programming language.
The front end is developed using Extensible Mark-up Language (XML). For the database
connectivity we are using SQLite database. It is a light weight database which is pre-installed
with every android device and is capable of handling and managing various queries, cursors and
more.
The initial idea was to improve the attendance system which is being in use for the past decades.
The idea was to develop an application which would be portable enough so as to carry it to the
classrooms as an attendance register. This stuck us with an idea of developing an android
application which can be easily installed in an Android enabled cell-phone and be used
seamlessly by a teacher while taking the roll calls.
In this process we designed a database for the application. It contains various tables like addclass,
addsubject, addstudent and attendance for various purposes. These tables hold data for particular
purposes which shall be dealt later.
The flow includes the addition of subjects and classes by the teacher and then adding the students
to the respective classes. When class and subject become ready then they are visible in the
selection area for giving attendance. The attendance can be checked periodically, month wise or
as desired by the teacher. The final attendance can then be used for various purposes.
17
➢ Hardware Requirement:
• Laptop or PC
Windows 7 or higher.
JDK (Java Development Kit)
Android Studio
• Android Phone or Tablet
2.2.2 DFD/Flowcharts
DFD
• DFD Level- 0
18
• DFD Level- 1
Flowchart
19
20
CHAPTER 3 CONCLUSION
CHAPTER-3
CONCLUSION
The Attendopedia project is developed by using Android studio to fully meet the objective of
college attendance management system. Marking attendance through this system is quite easy.
In this project I add all the features like add class, add subject, add student. I performed all the
function according to school and colleges system. Proper design implementation of this project
is done.
Generating attendance report and saving application data on any external device feature of this
project is pending and I will complete the project with these features on project submission day.
Finally, I want to conclude that this project is very helpful and this application is basically used
to access the details about the student attendance and generate reports. This project offers user to
enter data through simple and attractive UI.
21
CHAPTER 4 REFERENCES
CHAPTER-4
REFERENCES
➢ Web Resource: http://www.stackoverflow.com
➢ Web Resource: http://developer.android.com/index.html
➢ Web Resource: https://www.ripublication.com/ijcir17/ijcirv13n3_08.pdf
➢ Android API: http://developer.android.com/reference/packages.html
➢ Web Resource: https://ijarcce.com/upload/2018/january-18/IJARCCE%2032.pdf
➢ Abdullah, Hamsa A., Israa A. Mohson, and Ether S. Mohamad Ali. "Student Attendance
Management System." i-Manager's Journal on Information Technology 4, no. 2 (2015):
7.
➢ Shoewu, O, O.M. Olaniyi, and A. Lawson. 2011. “Embedded Computer-Based Lecture
Attendance Management System”. African Journal of Computing and ICT (Journal of
IEEE Nigeria Computer Section). 4(3):27 – 36.
➢ Kadry, S. and M. Smaili. 2010. “Wireless Attendance Management System Based on
Iris Recognition”.
➢ Cheng, K., L. Xiang, T. Hirota, and K. Ushijimaa. 2005. “Effective Teaching for Large
Classes with Rental PCs by Web System WTS”. Pro. Data Engineering Workshop
(DEWS2005), 1D – d3 (in Japanese).
➢ Chikkerur, S.S. 2005. “Online Fingerprint Verification System”. M.Sc. Thesis. SUNY:
Buffalo, NY.
➢ Saraswat, C. et al. 2010. “An Efficient Automatic Attendance System using Fingerprint
Verification Technique”. International Journal on Computer Science and Engineering.
2(02):264-269.
22