You are on page 1of 43

A

PROJECT REPORT
ON

HIDE_APP

SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT FOR


COMPLETION OF DEGREE

Bachelor of Technology
(B. Tech)

SUBMITTED BY
Name: Apoorva Nasa
Roll No: 2012ECA1011

SUBMITTED TO

ECE DEPARTMENT

Guru Nanak Dev University, Amritsar (Punjab)


ABSTRACT

Hide_App-Hide Contacts, Pics , Audio, Videos, better known as `Hide_App´, is an


application which will allow us to create a small safe in our Android terminal, in which
we can keep our most private text messages, photos or videos.

Nowadays we all have our private lives compressed in our cellphones. And this can be a
problem, especially if that private life is seen by those who shouldn´t. To prevent this,
this app, offers you the possibility to insert any private elements inside and protect it with
a password only we should know.

Hide_App is an essential tool for those who value their privacy above all. Jealous couples
will have a hard enemy in this application, which will protect the best secrets of any user.

Features:
 Hide contacts/audio/video/photos.

 For this, a person not has to use any internet service.

 Password protect application.

2
ACKNOWLEDGEMENT

I express my sincere gratitude to my industry guide ………………………………, for his


able guidance, continuous support and cooperation throughout my project, without which
the present work would not have been possible.

I would also like to give special thanks to my project manager, ……………………… ,


for the guidance he provided throughout the project. I shall be failing in my works if I
didn’t convey my thanks to my parents, who provided me all the thoughts and insights.

A special word of thanks to all the respondents for sharing their valuable time with me.

3
CANDIDATE DECLARATION

I, Apoorva Nasa, Roll No. – 2012 ECA 1011, B.Tech (Semester- 7th ) of the Guru Nanak
Dev University, Amritsar hereby declare that the Training Report entitled “Hide_App” is
an original work and data provided in the study is authentic to the best of my knowledge.
This report has not been submitted to any other Institute for the award of any other
degree.

Apoorva Nasa
(Roll No. – 2012 ECA 1011)

Place: New Delhi


Date: 2nd May,2016

4
List of Figures

1.1 Various Android Versions …………………………………….…………………. 9


1.2 Characteristics of Android………………………………………………….……..10
1.3 Categories of Android applications……………………………………………….11
2.1 Architecture of Android OS………………...………….…………........................13
3.2 Lifecycle of an Activity…………………………………………………………...21
3.3 Lifecycle of a service……………………………………………………..………22
3.4 Registering Broadcast Receivers……………………………………………..…...23

List of Tables

3.1 Components of Application…………………………………………………………………..19


3.5 Additional components……………………………………………………………….24
4.1 Software requirements Specification…………………………………………………27

5
Table of Contents

1. Introduction to Android ………………………………………………………..8-10


1.1 History of Android………………………………………....…………….9
1.2 Android Applications………………………………………...…………..10
1.3 Categories of Android Applications……………………..…………..…11
2. Android Architecture ……………………………………………………………12-18
2.1 Linux Kernel…………………………………….….…………….…...14
2.2 Android Run time………………..……………………….….………..15
2.2.1 Delvik Virtual Machine………………………………………...14
2.2.2 Core Libraries………………………………...…………………15
2.3 Libraries…………………………………………..…………………...17
2.4 Application Framework…………………………..…...…………..…..17
2.5 Applicatons..…………………………………………………..……….18

3. Android Component…………………………………………………………..19-24
3.1 Activities…………………………………………………..……………13
3.1.1 Lifecycle of an activity……………………………………….….20
3.2 Services………………………………………………...……………….21
3.3 Broadcast Receivers…………………………………………...………..23
3.4 Registering Broadcast Receivers…………………….………………….23
3.5 Content Providers….……….……...…………………………………....24

6
3.6 Additional Components…………………………………………………24

4. Hide_App……………………………………………………………………….25
4.1 Introduction…………………………………………………………………….25
4.2 Software Requirements Specification……………………………………….....27
4.2.1 Software………………………………………………………………..27
4.2.2 Hardware………………………………………………………………27
4.2.3 Use case Diagram……………………………………………………….28
4.3 Definitions, Acronyms, and Abbreviations…………………………………….28
4.4 Data Flow Diagrams(DFD)……………………………………………………..29
4.4.1 DFD level 0………………………………………………………….30
4.4.2 DFD level 1…………………………………………………………..31
5. Screenshots ……………………………………………………………32
5.1 Opening Screen…………………………………………………..33
5.2 Registration page………………………………………………………34
5.3 Login Page………………………………………………………35
5.4 Home Page…………………………………………………36
5.5 Navigation Drawer……………………………………………………….35
5.6 Audio list loading……………………………………………..37
5.7 Loaded audio list……………………………………………38
5.8 Loaded video list……………………………………………39
5.9 Camera Hiding……………………………………………………………40
5.10 Logout option…………………………………………………….41

Conclusion…………………………………………………………………42
Bibliography……………………………………………………………….42

7
CHAPTER 1

INTRODUCTION TO ANDROID

Android is a mobile operating system (OS) based on the Linux kernel and currently
developed by Google. With a user interface based on direct manipulation, Android is
designed primarily for touch screen mobile devices such as smart phones and tablet
computers, with specialized user interfaces for televisions (Android TV), cars (Android
Auto), and wrist watches (Android Wear). The OS uses touch inputs that loosely
correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to
manipulate on-screen objects, and a virtual keyboard. Despite being primarily designed
for touchscreen input, it has also been used in game consoles, digital cameras,
regular PCs, and other electronics. As of 1015, Android has the largest installed base of
all operating systems.

As of July 2013, the Google Play store has had over one million Android applications
("apps") published, and over 50 billion applications downloaded. An April–May 2013
survey of mobile application developers found that 71% of them create applications for
Android; another 2015 survey found that 40% of full-time professional developers see
Android as the "priority" target platform, which is more than iOS (37%) or other
platforms. At Google I/O 2014, the company revealed that there were over one billion
active monthly Android users, up from 538 million in June 2013.

Android's source code is released by Google under open source licenses, although most
Android devices ultimately ship with a combination of open source and proprietary
software, including proprietary software developed and licensed by Google. Initially
developed by Android, Inc., which Google bought in 2005, Android was unveiled in
2007, along with the founding of the Open Handset Alliance – a consortium of hardware,
8
software, and telecommunication companies devoted to advancing open standards for
mobile devices.

Android is popular with technology companies which require a ready-made, low-cost and
customizable operating system for high-tech devices. Android's open nature has
encouraged a large community of developers and enthusiasts to use the open-source code
as a foundation for community-driven projects, which add new features for advanced
users or bring Android to devices which were officially released running other operating
systems. The operating system's success has made it a target for patent litigation as part
of the so-called "Smartphone wars" between technology companies.

1.1 History of Android


The version history of the Android mobile operating system began with the release of the
Android beta in November 2007. The first commercial version, Android 1.0, was
released in September 2008. Android is under ongoing development by Google and
the Open Handset Alliance (OHA), and has seen a number of updates to its base
operating system since its initial release.
The most recent major Android update is Android 5.0 "Lollipop", which was released on
November 3, 2014. Since April 2009, Android versions have been developed under a
confectionery-themed code name and released in alphabetical order, beginning with
Android 1.5 "Cupcake"; the earlier versions 1.0 and 1.1 were not released under specific
code names:

9
Fig 1.1 Various Android Versions

Why Android?

Fig 1.2 Characteristics of Android

1.2 Android Applications

Android applications are usually developed in the Java language using the Android
Software Development Kit.

10
Once developed, Android applications can be packaged easily and sold out either
through a store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-
droid and the Amazon Appstore.

Android powers hundreds of millions of mobile devices in more than 190 countries
around the world. It's the largest installed base of any mobile platform and growing fast.
Every day more than 1 million new Android devices are activated worldwide.

This tutorial has been written with an aim to teach you how to develop and package
Android application. We will start from environment setup for Android application
programming and then drill down to look into various aspects of Android applications.

1.3 Categories of Android applications

There are many android applications in the market. The top categories are:

Fig 1.3 Categories of Android applications

11
CHAPTER 2

ANDROID ARCHITECTURE

Android Architecture

Android operating system is a stack of software components which is roughly divided


into five sections and four main layers as shown below in the architecture diagram.
Different components of android operating system are:
1. Linux kernel
2. Android Run time
3. Libraries
4. Application Framework
5. Applications

12
Fig 2.1 Architecture of Android OS

2.1 Linux kernel

Positioned at the bottom of the Android software stack, the Linux Kernel provides a level
of abstraction between the device hardware and the upper layers of the Android software
stack. Based on Linux version 2.6, the kernel provides preemptive multitasking, low-
level core system services such as memory, process and power management in addition
to providing a network stack and device drivers for hardware such as the device display,
Wi-Fi and audio.

The original Linux kernel was developed in 1991 by Linus Torvalds and was combined
with a set of tools, utilities and compilers developed by Richard Stallman at the Free
Software Foundation to create a full operating system referred to as GNU/Linux. Various
Linux distributions have been derived from these basic underpinnings such as Ubuntu
and Red Hat Enterprise Linux.

13
It is important to note, however, that Android only uses the Linux kernel. That said, it is
worth noting that the Linux kernel was originally developed for use in traditional
computers in the form of desktops and servers. In fact, Linux is now most widely
deployed in mission critical enterprise server environments. It is a testament to both the
power of today’s mobile devices and the efficiency and performance of the Linux kernel
that we find this software at the heart of the Android software stack.

2.2 Android Run time :


2.2.1 Dalvik Virtual Machine

As previously noted, the Linux kernel provides a multitasking execution environment


allowing multiple processes to execute concurrently. It would be easy to assume,
therefore, that each Android application simply runs as a process directly on the Linux
kernel. In fact, each application running on an Android device does so within its own
instance of the Dalvik virtual machine (VM).

Running applications in virtual machines provides a number of advantages. Firstly,


applications are essentially sandboxed, in that they cannot detrimentally interfere
(intentionally or otherwise) with the operating system or other applications, nor can they
directly access the device hardware. Secondly, this enforced level of abstraction makes
applications platform neutral in that they are never tied to any specific hardware.

The Dalvik virtual machine was developed by Google and relies on the underlying Linux
kernel for low-level functionality. It is more efficient than the standard Java VM in terms
of memory usage, and specifically designed to allow multiple instances to run efficiently
within the resource constraints of a mobile device.

In order to execute within a Dalvik VM, application code must be transformed from
standard Java class files to the Dalvik executable (.dex) format, which has a 50% smaller
memory footprint than standard Java bytecode. Standard Java class files can usually
(though not always) be converted to Dex format using the dx tool included with the
Android SDK.

14
2.2.2 Core Libraries

The Android Core Libraries (also referred to as the Dalvik Libraries) fall into three main
categories, each of which merits an individual description:

i. Dalvik VM Specific Libraries

This is a set of libraries used predominantly for interacting directly with an instance of
the Dalvik VM and is unlikely to be used by most Android application developers.

ii. Java Interoperability Libraries

Android applications are predominantly developed using the Java programming


language. The Standard Java development environment includes a vast array of classes
that are contained in the core Java runtime libraries. These libraries provide support for
tasks such as string handling, networking and file manipulation (to name but a few) and
are both familiar to, and widely used by Java developers regardless of platform.

The Java Interoperability Libraries are an open source implementation (based on the
Apache Harmony project) of a subset of the Standard Java core libraries that have been
adapted and transformed for use by applications running within a Dalvik VM.

iii. 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.

15
 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.graphics – A low-level 2D graphics drawing API including colors, points,
filters, rectangles and canvases.
 android.hardware – Presents an API providing access to hardware such as the
accelerometer and light sensor.
 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.media – Provides classes to enable playback of audio and video.
 android.net – A set of APIs providing access to the network stack. Includes
android.net.wifi, which provides access to the device’s wireless stack.
 android.provider – A set of convenience classes that provide access to standard Android
content provider databases such as those maintained by the calendar and contact
applications.
 android.text – Used to render and manipulate text on a device display.
 android.util – A set of utility classes for performing tasks such as string and number
conversion, XML handling and date and time manipulation.
 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.

16
2.3 Libraries

The Android runtime core libraries outlined in the preceding section are Java-based and
provide the primary APIs for developers writing Android applications. It is important to
note, however, that the core libraries do not actually perform much of the actual work and
are, in fact, essentially Java “wrappers” around a set of C/C++ based libraries. When
making calls, for example, to the android.opengl library to draw 3D graphics on the
device display, the library actually ultimately makes calls to the OpenGL ES C++ library
which, in turn, works with the underlying Linux kernel to perform the drawing tasks.

C/C++ libraries are included to fulfill a wide and diverse range of functions including 2D
and 3D graphics drawing, Secure Sockets Layer (SSL) communication, SQLite database
management, audio and video playback, bitmap and vector font rendering, display
subsystem and graphic layer management and an implementation of the standard C
system library (libc).

In practice, the typical Android application developer will access these libraries solely
through the Java based Android core library APIs. In the event that direct access to these
libraries is needed, this can be achieved using the Android Native Development Kit
(NDK), the purpose of which is to call the native methods of non-Java programming
languages (such as C and C++) from within Java code using the Java Native Interface
(JNI).

2.4 Application Framework


The Application Framework is a set of services that collectively form the environment in
which Android applications run and are managed. This framework implements the
concept that Android applications are constructed from reusable, interchangeable and
replaceable components. This concept is taken a step further in that an application is also
able to publish its capabilities along with any corresponding data so that they can be
found and reused by other applications.

The Android framework includes the following key services:

17
 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,
color settings and user interface layouts.
 Notifications Manager – Allows applications to display alerts and notifications to the
user.
 View System – An extensible set of views used to create application user interfaces.
 Package Manager – The system by which applications are able to find out information
about other applications currently installed on the device.
 Telephony Manager – Provides information to the application about the telephony
services available on the device such as status and subscriber information.
 Location Manager – Provides access to the location services allowing an application to
receive updates about location changes.

2.5 Applications

Located at the top of the Android software stack are the applications. These comprise
both the native applications provided with the particular Android implementation (for
example web browser and email applications) and the third party applications installed by
the user after purchasing the device.

18
CHAPTER-3

ANDROID COMPONENTS

Android – Application Components

Application components are the essential building blocks of an Android application.


These components are loosely coupled by the application manifest
file AndroidManifest.xml that describes each component of the application and how they
interact.

There are following four main components that can be used within an Android
application:

Components Description

Activities They dictate the UI and handle the user interaction to the smart phone
screen

Services They handle background processing associated with an application.

Broadcast Receivers They handle communication between Android OS and applications.

Content Providers They handle data and database management issues.

Table 3.1 Components of Application

19
3.1 Activities
An activity represents a single screen with a user interface, in-short Activity performs
actions on the screen. For example, an email application might have one activity that
shows a list of new emails, another activity to compose an email, and another activity for
reading emails. If an application has more than one activity, then one of them should be
marked as the activity that is presented when the application is launched.

3.1.1 Lifecycle of an Activity

An activity has essentially four states:

 If an activity in the foreground of the screen (at the top of the stack), it
is active or running.

 If an activity has lost focus but is still visible (that is, a new non-full-sized or transparent
activity has focus on top of your activity), it is paused. A paused activity is completely
alive (it maintains all state and member information and remains attached to the window
manager), but can be killed by the system in extreme low memory situations.

 If an activity is completely obscured by another activity, it is stopped. It still retains all


state and member information, however, it is no longer visible to the user so its window
is hidden and it will often be killed by the system when memory is needed elsewhere.

 If an activity is paused or stopped, the system can drop the activity from memory by
either asking it to finish, or simply killing its process. When it is displayed again to the
user, it must be completely restarted and restored to its previous state.

The following diagram shows the important state paths of an Activity. The square
rectangles represent callback methods you can implement to perform operations when the
Activity moves between states. The colored ovals are major states the Activity can be in.

20
Fig 3.2 Lifecycle of an Activity

3.2 Services

A service is a component that runs in the background to perform long-running


operations. For example, a service might play music in the background while the user is

21
in a different application, or it might fetch data over the network without blocking user
interaction with an activity.

A service has life cycle callback methods that you can implement to monitor changes in
the service's state and you can perform work at the appropriate stage. The following
diagram on the left shows the life cycle when the service is created with startService()
and the diagram on the right shows the life cycle when the service is created with
bindService().

Fig 3.3 Life Cycle of a Service

22
3.3 Broadcast Receivers

Broadcast Receivers simply respond to broadcast messages from other applications or


from the system. For example, applications can also initiate broadcasts to let other
applications know that some data has been downloaded to the device and is available for
them to use, so this is broadcast receiver who will intercept this communication and will
initiate appropriate action.

A broadcast receiver is implemented as a subclass of Broadcast Receiver class and each


message is broadcaster as an Intent object.

3.4 Registering Broadcast Receivers


An application listens for specific broadcast intents by registering a broadcast receiver
inAndroidManifest.xml file. Consider we are going to register MyReceiver for system
generated event ACTION_BOOT_COMPLETED which is fired by the system once the
Android system has completed the boot process.

Fig 3.4 Registering Broadcast Receivers

23
3.5Content Providers
A content provider component supplies data from one application to others on request.
Such requests are handled by the methods of the ContentResolver class. The data may be
stored in the file system, the database or somewhere else entirely.

A content provider is implemented as a subclass of ContentProvider class and must


implement a standard set of APIs that enable other applications to perform transactions.

3.6 Additional Components

There are additional components which will be used in the construction of above
mentioned entities, their logic, and wiring between them. These components are:

Components Description

Fragments Represents a portion of user interface in an Activity.

Views UI elements that are drawn on-screen including buttons, lists forms etc.

Layouts View hierarchies that control screen format and appearance of the views.

Intents Messages wiring components together.

Resources External elements, such as strings, constants and drawable pictures.

Manifest Configuration file for the application.

Table 3.5 Additional components

24
CHAPTER-4

HIDE_APP

4.1 Introduction

In this app, you can keep following contents hidden from others:

Contacts

When you click on the contacts option from navigation drawer, the entire original list of
contacts of your phone will be shown to you. When you click on any of the contacts, that
particular contact will be deleted from that list and the record will be saved in a text file
in your File Manager inside a hidden folder.

Gallery

Similar task will be performed on this option. The entire gallery will be shown to you. A
click on a particular photo will hide it(deleted from gallery and will be pasted in another
hidden folder).

Camera

This will click the photo immediately and will give you the option to hide it. So you need
not to first open camera and then open this app to hide it from gallery. This will save your
time.

Audio/Video

When you click on audio/video option the entire list will be shown to you. This list is not
fetched from one or the two folders but from entire memory(SD card/internal

25
memory/phone memory).You can click and hide a particular song/video through a single
click.

Following are terms used throughout this documentation:

Password

Password is a keyword that user of application sets when he uses the application for the
first time. User may change password any time.The password is stored in SQLITE
database of your phone.

4.2 Software Requirements Specification

4.2.1 Software:
 Android Platform v2.1 and later
 Development tools:
 Android SDK: includes all power features of java adding to it more specific APIs for
android development.
 Eclipse IDE 3.7: IDE, with ADT (Android Development Tools) plug-in,
provides features specific to develop, debug and deploy the Android Apps.

4.2.2 Hardware:
 ARM processor: Reduced Instruction Set Computer (RISC) –SoC used in Android
devices.

26
Tools(Software) Version and description

Developer Java Jdk 8 is an SDK for java

Editor Eclipse IDE 3.7

Operating System Android SDK

User Operating System Android Platform v2.1 and above

Table 4.1 Software requirements Specification

4.2.2 Use Case Diagram

Login

Camera

Gallery

Audio

Video

Contact

27
4.3 Definitions, Acronyms, and Abbreviations

 Android SDK: Android SDK is a Software Development Kit that enables


developers to create applications for Android platform. It includes sample projects
with source code, development tools, an emulator and required libraries to build
android applications.
 API: Application Programming Interface. It is a set of routines, protocols and tools
for building software applications. The API specifies how software components
should interact and used when programming GUI components.
 JDK: Java Development Kit. The 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 recipe to a Java
Application.
 Eclipse IDE: In computer programming, Eclipse is an Integrated Development
Environment (IDE). It contains a base workspace and an extensible plug-in system
for customizing the environment.

4.5 Data Flow Diagrams (DFD)

A Data Flow Diagram is a graphical representation of the flow of data through an


information system, modeling its process aspects. A DFD is often used as a
preliminary step to create an overview of the system, which can later be elaborated.
DFD is also be used for the visualization of data processing.

A DFD shows what kind of information will be input to an output from the system,
where the data will come from and go to, and where the data will be stored. It does
not show information about the timing of process or information about whether

28
processes will operate in sequence or parallel.

4.5.1 DFD level 0

Database

User

Phone Data List

Desired Specifications

Phone Information

Hide_App

29
4.5.2 DFD Level 1

Database

Login

Logout

Camera
User

Video

Audio

Gallery

Contacts

30
CHAPTER-5

SCREENSHOTS

5.1 Opening Screen(Splash_screen)

31
5.2 Registration page

32
5.3 Already Registered

33
5.4 Home Page

34
5.5 Main_Activity with Navigation Drawer

35
5.6 Audio List(Loading)

36
5.7 Loaded Audio List

37
5.8 Loaded Video List

38
5.9 Hiding Photo from direct clicking of Camera

39
5.10 Logout Option

40
Conclusion

This application will help user to hide photos from gallery , camera(direct clicking) ,
audio, video , contacts. Nowadays we all have our private lives compressed in our
cellphones. And this can be a problem, especially if that private life is seen by those who
shouldn´t. To prevent this, this app, offers you the possibility to insert any private
elements inside and protect it with a password only we should know.

References/Bibliography

 http://developer.android.com/intl/ja/index.html
 http://www.tutorialspoint.com/android/
 https://developer.android.com/intl/ja/training/basics/firstapp/index.html

41
42
43

You might also like