Professional Documents
Culture Documents
PROJECT REPORT
ON
HIDE_APP
Bachelor of Technology
(B. Tech)
SUBMITTED BY
Name: Apoorva Nasa
Roll No: 2012ECA1011
SUBMITTED TO
ECE DEPARTMENT
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.
2
ACKNOWLEDGEMENT
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)
4
List of Figures
List of Tables
5
Table of Contents
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.
9
Fig 1.1 Various Android Versions
Why Android?
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.
There are many android applications in the market. The top categories are:
11
CHAPTER 2
ANDROID ARCHITECTURE
Android Architecture
12
Fig 2.1 Architecture of Android OS
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.
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:
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.
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.
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).
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
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
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.
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 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
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().
22
3.3 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.
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
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.
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.
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.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
Login
Camera
Gallery
Audio
Video
Contact
27
4.3 Definitions, Acronyms, and Abbreviations
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.
Database
User
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
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