PROJECT REPORT ON
ANDROID QUIZ APPLICATION “FACES OF SCIENCE” Submitted in partial fulfillment of the requirement for the Degree of BACHELOR OF TECHNOLOGY (2011-2015) In
COMPUTER SCIENCE AND ENGINEERING Under the supervision of: Mr. Akhilesh Kumar Singh Asst. Prof. & HOD CSE Submitted by: Nivedita Rai(1128410039) Abhishek Srivastava(1128410002) Ankita Srivastava(1128410008)
UNITED INSTITUTE OF TECHNOLOGY Uttar Pradesh Technical University Lucknow April, 2015
DECLARATION We Nivedita Rai, Abhishek Srivastava & Ankita Srivastava hereby declare that the report of the project entitled Android Quiz Application “Faces of Science” is our own work and that to the best of our knowledge and belief. It contains no material previously published or written by any other person nor material which to a substantial extent has been excepted for the award of any degree of the diploma of the university of the institute of learning, except where due acknowledgement has been made in the text.
Signature: Name: Roll No.
Nivedita Rai 1128410039
Signature: Name: Roll No.
Abhishek Srivastava 1128410002
Signature: Name: Ankita Srivastava Roll No. 1128410008
II
ACKNOWLEDGEMENT We wish to convey our gratitude and indebtedness to Mr. Akhilesh Kumar Singh (HOD, Computer Science & Engineering Department) for his valuable guidance for the project work. Without his suggestions, consistent encouragement and constructive criticism, this project would not have been possible. We also thank him for approving the project title and providing necessary facilities for the work. We are also grateful to Ms. Astha Jaiswal (Asst. trainer at IBM) & Mr. Deepak Kumar Singh (student at IIT BHU) who provided us with many of the important softwares required during the course of the project. We would also like to convey our regards to the other intellectual faculty members for their cooperation and support and finally heartfelt appreciation to friends for reviewing the entire manuscript with attention for details.
Nivedita Rai(1128410039) Abhishek Srivastava(1128410002) Ankita Srivastava(1128410008)
III
CERTIFICATE This is to certify that the project report entitled Android Quiz Application “Faces of Science” done by Nivedita Rai (1128410039), Abhishek Srivastava (1128410002) and Ankita Srivastava (1128410008) is an authentic work carried out by them at United Institute of Technology under my guidance. The matter embodied in this project has not been submitted earlier for the award of any degree or diploma to the best of my knowledge and belief.
Mr. Akhilesh Kumar Singh Supervisor & Head of the Department CSE, Department UIT, Allahabad
IV
ABSTRACT The project proposed is a quiz application which tries to make learning process easier by bringing the inquisitive in every individual .The application has been designed in a process for gamification of the learning process. The application can be used by the teachers as a side tool that assist them in assigning quiz to the students and help to create an interest about the science. A knowledge about these great scientists who have shaped the course of time helps inculcate a scientific temper as they act as the source of inspiration. This application has been designed using the latest offering from android for application development i.e. Android Studio .While the application has been designed by using the canary version of the software as it was still in testing phase that time. The application performs well and is supported by various versions of android and will be a part of the play store in the long run. Latest versions of android studio have been developed now which are complete and no longer in testing phase. This software has been a wonderful tool for the developers as it has simplified the application development process and incorporates several features.
V
List of Figures and Tables
List of Figures 1.1 1.2 2.1 2.2 2.3 4.1-4.10
Android versions Life cycle of Android Activity Software Stack Android Architecture Android Emulator Snapshots
List of Tables 3.1 3.2 3.3 3.4 3.5 3.6
Android Studio System Requirements Module Design Hardware Specification Software Specification Types of Testing
VI
Page No. 3 6 10 11 17 38-40
14 15 33 35 35 37
List of Abbreviations APK AVD ADT API AMR-WB A2DP AAC AVRCP BMP CDMA DDMS EV-DO GSM GIF IDE IDEN JDK JPEG KDE LTE MIDI NFC PNG RAM SDK SP UMT VM ZIP
VII
Android Package Files Android Virtual Device Android Developer tools Application Programming Interface Adaptive Multi Rate-Wideband Advanced Audio Distribution Profile Advanced Audio Coding Audio Video Remote Control Profile Bitmap Code Division Multiple Access Dalvik Debug Monitor Server Evolution Data Only Global System for Mobile Communication Graphics Interchange Format Integrated Development environment Integrated Digital Enhanced Network Java Development Kit Joint Photographic Experts Group K Desktop Environment Long Term Evolution Musical Instrument Digital Interface Near Field Communication Portable Network Graphics Random Access Memory Software Development Kit Service Pack Universal Mobile Telecommunication Virtual Memory Zone Improvement Plan
Table of Contents Declaration Acknowledgement Certificate Abstract List of Figures and Tables List of Abbreviations
II III IV V VI VII
1.
INTODUCTION 1.1. About Project 1.2. Android: An open Platform 1.3. Android Versions 1.4 Features of Android 1.5 Why develop for Android 1.6 Life cycle of Android activity 1.7 Scope of investigation 1.8 Problem definition
1-7 1 2 3 3 4 5 6 7
2.
LITERATURE 2.1. Android Software Stack 2.2 Android Application Architecture 2.2.1 Android Libraries 2.3 Developing for android 2.3.1 Downloading & installing SDK 2.3.2 Android Studio 2.3.3 Features of android studio 2.3.4 System Requirements 2.4 Android development tools 2.4.1 Android Emulator 2.4.2 Android SDK manager 2.4.3 Android application components 2.5 Fundamental android UI design 2.6 Android widget toolbox 2.7 Introducing Intents 2.7.1 Launching activities using Intents
8-28 8 10-11 11 12-15 13 13 14 15 15-18 17 18 18 20 21 22-23 23
3.
2.7.2 Intents to broadcast events 2.8 Introducing the Intent service 2.8.1 Creating intent filters 2.8.2 Service Implicit Intent 2.9 Introducing fragments 2.10 Creating Content Providers 2.10.1 Native content providers
23 24 24 24 26 27-28 28
PROPOSED SYSTEM 3.1 System Analysis 3.2 Feasibility Study 3.2.1 Technical feasibility 3.2.2. Economic feasibility 3.2.3 Behavioral study
29-37 29 30-32 31 31 32
3.2.4 3.3
3.4
Cost analysis
32
Designing
32-34
3.3.1
Module design
34
3.3.2
A brief description about levels
34
Software Environment
35
3.4.1
Hardware Specification
35
3.4.2
Software Specification
35
3.5
Code details
36
3.6
Project testing
36-37
4.
SNAPSHOTS
38-40
5.
CONCLUSIONS
41
6.
FUTURE SCOPE
42
7.
REFERENCES
43-44
CHAPTER 1 INTRODUCTION 1.1. About Project This report documents the process of designing, building and testing an android application for the use of students for supplementing their knowledge about scientists in an engaging way. The project is an android quiz application which is built around the concept of content gamification as this makes learning an engaging process thus proving to be a better learning tool. Here we use images of scientists which students generally encounter in their textbooks. So this application can also be used by teachers to a replacement of bland written quizzes but only the initial levels. The more advanced levels are for grownups and young inquisitive minds to put their grey matter to test. The project is built using android studio a tool for application development for android platform provided by Google. It incorporates moderate coding as the application is quite small in comparison to other trivia applications available in the play store. There is extensive use of images and sound effects in the application. The application has various levels to offer with varying degree of hardness and specific nature. Except one all levels in the application are initially locked and a specific number of correct answers keep opening new levels. The first one being a very basic one and features scientists which every middle school student has heard about. The levels have been designed keep in mind school students as well as the grownups. Each question comes with a picture of a famous scientist and to make things even simpler options are also provided for answering the questions. Besides hints are also provided in case of a wrong answer and a short biography about the scientist is provided in case of a correct answer. All questions are pictorial in nature and come with four options to select the correct answer. Summing this up we can say this is one small application for people of every age group but mainly targeted for the school students. This software can find application as a supplement of classes with growing use of technology in
1
classrooms while for some inquisitive minds it will be just another trivia application to quench their insatiable thirst for knowledge.
1.2. Android: An open platform for mobile development Android is a mobile operating system that is based on a modified version of Linux. It was originally developed by a startup of the same name, Android, Inc. In 2005, as part of its strategy to enter the mobile space, Google purchased Android and took over its development work. Google wanted Android to be open and free; hence, most of the Android code was released under the open source Apache License, which means that anyone who wants to use Android can do so by downloading the full Android source code. Moreover, vendors (typically hardware manufacturers) can add their own proprietary extensions to Android and customize Android to differentiate their products from others. The simple development model makes Android very attractive and has thus piqued the interest of many vendors. This has been especially true for companies affected by the phenomenon of Application iPhone, a hugely successful product that revolutionized the smartphone industry. Such companies include Motorola and Sony Ericsson, which for many years have been developing their own mobile operating systems. When the iPhone was launched, many of these manufacturers had to scramble to find new ways of revitalizing their products. These manufacturers see Android as a solution -they will continue to design their own hardware and use Android as the operating system that powers it. The main advantage of adopting Android is that it offers a unified approach to application development. Developers need only develop for Android, and their applications should be able to run on numerous different devices, as long as the devices are powered using Android. In the world of smartphones, applications are the most important part of the success chain. Device manufacturers therefore see Android as their best hope to challenge the onslaught of the iPhone, which already commands a large base of applications.
2
1.3. Android Versions A pictorial representation of android versions-
Fig. 1.1: Android Versions [source: http://developer.android.com/sdk/installing/studio.html]
1.4. Features of Android Because Android is open source and freely available to manufacturers for customization, there are no fixed hardware or software configurations. However, Android itself supports the following features: Storage— Uses SQLite, a lightweight relational database, for data storage. Connectivity— Supports GSM IDEN, CDMA,EV-DO,UMTS, Bluetooth (includes A2DP and AVRCP), Wi-Fi, LTE, and Wi-MAX. Messaging — Supports both SMS and MMS. Web browser — Based on the open source Web Kit, together with Chrome’s V8 JavaScript engine Media support — Includes support for the following media: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB
3
(in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI , Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP. Hardware support — Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor and GPS Multi-touch — Supports multi-touch screens. Multi-tasking — Supports multi-tasking applications Flash support — Android 2.3 supports Flash 10.1. Tethering — Supports sharing of Internet connections as a wired/wireless hotspot
Many of the features listed such as 3D graphics and native database support, are also available in other native mobile SDKs, as well as becoming available on mobile browsers. The pace of innovation in mobile platforms, both Android and its competitors, makes an accurate comparison of the available features difficult. The Above following non comprehensive list details some of the features available on Android that may not be available on all modern mobile development platforms: Google Maps applications — Google Maps for Mobile has been hugely popular, and Android offers a Google Map as an atomic, reusable control for use in your applications. The Map View lets you display, manipulate, and annotate a Google Map within your Activities to build map-based applications using the familiar Google Maps interface. Background services and applications — Full support for background applications and services lets you create applications based on an event-driven model, working silently while other applications are being used or while your mobile sits ignored until it rings, flashes, or vibrates to get your attention. Maybe it’s a streaming music player, an application that tracks the stock market, alerting you to significant changes in your portfolio, or a service that changes your ringtone or volume depending on your current location, the time of day, and the identity of the caller. Android provides the same opportunities for all applications and developers.
1.5. Why Develop for Android? Shared data and inter-process communication — Using Intents and Content Providers, Android lets your applications exchange messages, perform processing, and share data. You can also use these mechanisms to leverage the data and functionality provided by the native Android applications. To mitigate the risks of such an open strategy, each application’s process, data storage, and
4
files are private unless explicitly shared with other applications via a full permission-based security mechanism. All applications are created equal. Android doesn’t differentiate between native applications and those developed by third parties. This gives consumers unprecedented power to change the look and feel of their devices by letting them completely replace every native application with a third-party alternative that has access to the same underlying data and hardware. Wi-Fi Direct and Android Beam — Using these innovative new inter-device communication APIs, you can include features such as instant media sharing and streaming. Android Beam is an NFC-based API that lets you provide support for proximity-based interaction, while Wi-Fi Direct offers a wider range peer-to-peer for reliable, high-speed communication between devices. Home-screen Widgets, Live Wallpaper, and the quick search box — Using Widgets and Live Wallpaper, you can create windows into your application from the phone’s home screen. The quick search box lets you integrate search results from your application directly into the phone’s search functionality.
1.6. Life cycle of android activity During its lifetime, each activity of an Android program can be in one of several states. We, the developer, do not have control over what state our program is in. That’s all managed by the system. However, we do get notified when the state is about to change through the onXX() method calls. We override these methods in our Activity class, and Android will call them at the appropriate time: onCreate(Bundle): This is called when the activity first starts up. We can use it to perform one-time initialization such as creating the user interface. OnCreate( ) takes one parameter that is either null or some state information previously saved by the onSavedInstanceState( ) method. onStart( ): This indicates the activity is about to be displayed to the user. onResume( ): This is called when our activity can start interacting with the user. This is a good place to start animations and music. onPause( ): This runs when the activity is about to go into the background, usually because another activity has been launched in front
5
of it. This is where we should save our program’s persistent state, such as a database record being edited. onStop( ): This is called when our activity is no longer visible to the user and it won’t be needed for a while. If memory is tight, onStop( ) may never be called (the system may simply terminate your process).
Fig. 1.2. Life cycle of android activity [source: The Android Developer’s Cookbook by James Steele Nelson]
1.7. Scope of investigation The aim of this project is to design, such an application that can help us to make learning engaging and a fun process. The target audience of the project incorporates school students where the application can supplement their knowledge in an interesting way. This application can also be used by grownups to test their knowledge about these famous scientists.
6
This can also be food for thought for the inquisitive minds. Overall the target audience includes a multitude of people thus leading to various levels of varying difficulty and specializations. In order to have something for everyone we thought of dividing the levels into very famous ones and then branching out to various specializations such as chemists and biologists. Thus this application can also be a awareness check by a particular student of that specialization.
1.8. Problem Definition The problem with this application is that the quiz application being developed is that it has difficulty in compatibility .The major work to be done is to make the application compatible for mobile devices using different versions of android as some versions are nearly obsolete now. The main task at hand is to the content gamification of a subject of study by use of modern day technology so that students find learning interesting.
7
CHAPTER 2 LITERATURE Android is an Operating System for mobile devices developed by Google, which is built upon Linux Kernel. Android applications are written on JAVA programming language. The Android SDK tools compile the code along with any data and resource file into an APK file. The APK file contains all the contents of an android application and is the file that Android-powered devices use to install the application. Android was described by Andy Rubin as follows: “The first truly open and comprehensive platform for mobile devices. It includes an Operating System, user-interface and application-all of the software to run a mobile phone but without the proprietary obstacle that have hindered mobile innovation.”
2.1. Android Software Stack The Android software stack is, put simply, a Linux kernel and a collection of C/C++ libraries exposed through an application framework that provides services for, and management of, the run time and applications. Linux kernel — Core services (including hardware drivers, process and memory management, security, network, and power management) are handled by a Linux 2.6 kernel. The kernel also provides an abstraction layer between the hardware and the remainder of the stack. Libraries — Running on top of the kernel, Android includes various C/C++ core libraries such as libc and SSL, as well as the following: A media library for playback of audio and video media A surface manager to provide display management Graphics libraries that include SGL and OpenGL for 2D and 3D graphics.
8
SQLite for native database support SSL and WebKit for integrated web browser and Internet security Android run time — The run time is what makes an Android phone an Android phone rather than a mobile Linux implementation. Including the core libraries and the Dalvik VM, the Android run time is the engine that powers your applications and, along with the libraries, forms the basis for the application framework. Core libraries — Although most Android application development is written using the Java language, Dalvik is not a Java VM. The core Android libraries provide most of the functionality available in the core Java libraries, as well as the Android specific libraries. Dalvik VM — Dalvik is a register-based Virtual Machine that’s been optimized to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management. Application framework — The application framework provides the classes used to create Android applications. It also provides a generic abstraction for hardware access and manages the user interface and application resources. Application layer — All applications, both native and third-party, are built on the application layer by means of the same API libraries. The application layer runs within the Android run time, using the classes and services made available from the application framework.
9
Fig. 2.1. Android Application Layer [source:http://developer.android.com/guide/developing/tools/index.html]
2.2. Android Application Architecture Android’s architecture encourages component reuse, enabling you to publish and share Activities, Services, and data with other applications, with access managed by the security restrictions you define. The same mechanism that enables you to produce a replacement contact manager or phone dialer can let you expose your application’s components in order to let other developers build on them by creating new UI front ends or functionality extensions.
10
The following application services are the architectural cornerstones of all Android applications, providing the framework we have used for our own software:
Fig. 2.2. Application Architecture [Source: http://www.tutorialspoint.com]
Activity Manager and Fragment Manager — Control the lifecycle of your Activities and Fragments, respectively, including management of the Activity stack. Views — Used to construct the user interfaces for your Activities and Fragments. Notification Manager — Provides a consistent and nonintrusive mechanism for signaling your users. Content Providers — Lets your applications share data Resource Manager — Enables non-code resources, such as strings and graphics, to be externalized. Intents — Provides a mechanism for transferring data between applications and their components.
11
2.2.1. Android Libraries Android offers a number of APIs for developing your applications. Rather than list them all here, check out the documentation at resource [1], which gives a complete list of packages included in the Android SDK. Android is intended to target a wide range of mobile hardware, so be aware that the suitability and implementation of some of the advanced or optional APIs may vary depending on the host device.
2.3. Developing for Android The Android SDK includes all the tools and APIs you need to write compelling and powerful mobile applications. The biggest challenge with Android, as with any new development toolkit, is learning the features and limitations of its APIs. If you have experience in Java development, you’ll find that the techniques, syntax, and grammar you’ve been using will translate directly into Android, although some of the specific optimization techniques may seem counterintuitive. If you don’t have experience with Java but have used other object-oriented languages (such as C#), you should find the transition straight forward. The power of Android comes from its APIs, not the language being used, so being unfamiliar with some of the Java-specific classes won’t be a big disadvantage.
2.3.1. Downloading and Installing the Android SDK There is no cost to download or use the API, and Google does not require your application to pass a review to distribute your finished programs on the Google Play Store. Although the Google Play Store requires a small one-time fee to publish applications, if you chose not to distribute via the Google Play Store, you can do so at no cost. You can download the latest version of the SDK starter package for your chosen development platform from the Android development home page at resource [2]. The starter package is a ZIP file that contains the latest version of the Android tools required to download the rest of the Android SDK packages. Install it by unzipping the SDK into a new folder. Take note of this location, as you’ll need it later.
12
If you are developing from a Windows platform, an executable Windows installer is available (and recommended) as an alternative to the ZIP file for installing the platform tools. Before you can begin development, you need to download at least one SDK platform release. You can do this on Windows by running the SDK Manager.exe executable, or on Mac OS or Linux by running the android executable in the tools subfolder of the starter package download. You can expand each platform release node to see a list of the packages included within it, including the tools, documentation, and sample code packages. To get started, simply check the boxes corresponding to the newest framework SDK and the latest version of the tools, compatibility/support library, documentation, and sample code.
2.3.2. Project development using Android Studio Android Studio is an integrated development environment (IDE) for developing on the Android platform. It was announced on May 16, 2013 at the Google I/O conference by Google's Product Manager, Ellie Powers. Android Studio is freely available under the Apache License 2.0 resource [3]. 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 resource[4]. The first stable build was released in December 2014, starting from version 1.0 resource [3] based on JetBrains' IntelliJ IDEA software, Android Studio is designed specifically for Android development resource[6]. It is available for download on Windows, Mac OS X and Linux, resource[8] and replaced Eclipse Android Development Tools (ADT) as Google's primary IDE for native Android application development.
2.3.3. Features of Android Studio New features are expected to be rolled out with each release of Android Studio. The following features are provided in the current version: Live Layout: WYSIWYG Editor Live Coding Realtime Application Rendering.
13
Gradle-based build support. Android-specific refactoring and quick fixes. Lint tools to catch performance, usability, version compatibility and other problems. ProGuard and app-signing capabilities. Template-based wizards to create common Android designs and components. A rich layout editor that allows users to drag-and-drop UI components, option to preview layouts on multiple screen configurations. Support for building Android Wear applications. Built-in support for Google Cloud Platform, enabling integration with Google Cloud Messaging and Application Engine.
2.3.4. System Requirements
Table no. 2.1. Android Studio
Developer(s) Stable Release Preview release Development Status Written in Operating system Type License
14
Google 1.1 / February 18, 2015 1.2 Preview 4 / March 25, 2015 Stable Java Crossplatform Integrated Development Environment (IDE) Apache 2.0
Table No. 2.2. Software and Hardware Specification OS Version
Windows Microsoft Windows 10/8.1/8/7/Vista/2003/Xp (32 or 64 bit)
OS X Mac OS X 10.8.5 or higher, upto 10.10 to up 10.10.2 up 10.10.3 (Yosemite) 2 GB RAM minimum, 4 GB RAM recommended 500 MB disk space
Linux GNOME or KDE or Unity desktop on Ubuntu or Fedora or GNU/Linux Debian
RAM Disk space Space for At least 1 GB for Android SDK, emulator system images, and caches Android SDK JDK Java Development Kit (JDK) 7 or higher version Screen 1280x800 minimum screen resolution resolution
2.4. Android Development Tools The Android SDK includes several tools and utilities to help to create, test, and debug our projects. For additional details, check out the Android documentation at resource [9]. As mentioned earlier, the ADT plug-in conveniently incorporates many of these tools into the Eclipse IDE, where you can access them from the DDMS perspective, including the following: The Android Virtual Device and SDK Managers — Used to create and manage AVDs and to download SDK packages, respectively. The AVD hosts an Emulator running a particular build of Android, letting you specify the supported SDK version, screen resolution, amount of SD card storage available, and available hardware capabilities (such as touchscreens and GPS). The Android Emulator — An implementation of the Android VM designed to run within an AVD on your development computer. Use the Emulator to test and debug your Android applications.
15
Dalvik Debug Monitoring Service (DDMS) — Use the DDMS to monitor and control the Emulators on which you’re debugging your applications’ Android Debug Bridge (ADB) — A client-server application that provides a link to virtual and physical devices. It lets you copy files, install compiled application packages (APK), and run shell commands. Logcat — A utility used to view and filter the output of the Android logging system. Android Asset Packaging Tool (AAPT) — Constructs the distributable Android package files (APK). The following additional tools are also available: SQLite3 — A database tool that you can use to access the SQLite database files created and used by Android. Traceview — Graphical analysis tools for viewing the trace logs from your Android application. Hprof-conv — A tool that converts HPROF profiling output files into a standard format to view in your preferred profiling tool. MkSDCard — Creates an SD card disk image that can be used by the Emulator to simulate an external storage card. Dex — Converts Java .class bytecode into Android .dex bytecode. Hierarchy Viewer — Provides both a visual representation of a layout’s View hierarchy to debug and optimize your UI, and a magnified display to get your layouts pixel-perfect. Lint — A tool that analyzes your application and its resources to suggest improvements and optimizations. Draw9patch: A handy utility to simplify the creation of NinePatch graphics. Monkey and Monkey Runner: Monkey runs within the VM, generating pseudo-random user and system events. Monkey Runner provides an API for writing programs to control the VM from outside your application. ProGuard — A tool to shrink and obfuscate your code by replacing class, variable, and method names with semantically meaningless
16
alternatives. This is useful to make your code more difficult to reverse engineer.
2.4.1. The Android Emulator The Emulator is available for testing and debugging your applications. The Emulator is an implementation of the Dalvik VM, making it as valid a platform for running Android applications as any Android phone. Because it’s decoupled from any particular hardware, it’s an excellent baseline to use for testing your applications. Full network connectivity is provided along with the ability to tweak the Internet connection speed and latency while debugging your applications. You can also simulate placing and receiving voice calls and SMS messages.
Fig. 2.3 Android Emulator [source: https://developer.android.com/sdk/installing/studio.html]
The ADT plug-in integrates the Emulator into Eclipse so that it’s launched automatically within the selected AVD when you run or debug your projects. If you aren’t using the plug-in or want to use the Emulator outside of Eclipse, you can telnet into the Emulator and control it from its console. For more details on controlling the Emulator, check out the documentation at resource.
17
To execute the Emulator, you first need to create a virtual device, as described in the previous section. The Emulator will launch the virtual device and run a Dalvik instance within it.
2.4.2. Android SDK Manager The Android SDK Manager can be used to see which version of the SDK you have installed and to install new SDKs when they are released. Each platform release is displayed, along with the platform tools and a number of additional support packages. Each platform release includes the SDK platform, documentation, tools, and examples corresponding to that release.
2.4.3. Android Application Components Android applications consist of loosely coupled components, bound by the application manifest that describes each component and how they interact. The manifest is also used to specify the application’s metadata, its hardware and platform requirements, external libraries, and required permissions. The following components comprise the building blocks for all your Android applications: Activities — Your application’s presentation layer. The UI of your application is built around one or more extensions of the Activity class. Activities use Fragments and Views to layout and display information, and to respond to user actions. Compared to desktop development, Activities are equivalent to Forms. Services — The invisible workers of your application. Service components run without a UI updating your data sources and Activities, triggering Notifications, and broadcasting Intents. They’re used to perform long running tasks, or those that require no user interaction (such as network lookups or tasks that need to continue even when your application’s Activities aren’t active or visible.)
18
Content Providers — Shareable persistent data storage. Content Providers manage and persist application data and typically interact with SQL databases. They’re also the preferred means to share data across application boundaries. You can configure your application’s Content Providers to allow access from other applications, and you can access the Content Providers exposed by others. Android devices include several native Content Providers that expose useful databases such as the media store and contacts. Intents — A powerful inter application message-passing framework. Intents are used extensively throughout Android. You can use Intents to start and stop Activities and Services, to broadcast messages system-wide or to an explicit Activity, Service, or Broadcast Receiver, or to request an action be performed on a particular piece of data.
Broadcast Receivers — Intent listeners. Broadcast Receivers enable your application to listen for Intents that match the criteria you specify. Broadcast Receivers start your application to react to any received Intent, making them perfect for creating event-driven applications.
Widgets — Visual application components that are typically added to the device home screen. A special variation of a Broadcast Receiver, widgets enable you to create dynamic, interactive application components for users to embed on their home screens.
Notifications — Notifications enable you to alert users to application events without stealing focus or interrupting their current Activity. They’re the preferred technique for getting a user’s attention when your application is not visible or active, particularly from within a Service or Broadcast Receiver. For example, when a device receives a text message or an email, the messaging and Gmail applications use Notifications to alert you by flashing lights, playing sounds, displaying icons, and scrolling a text summary.
19
2.5. Fundamental Android UI Design User interface (UI) design, User experience (UX), Human Computer Interaction (HCI), and usability are huge topics that can’t be covered in the depth. Nonetheless, the importance of creating a UI that your users will understand and enjoy using can’t be overstated. Android introduces some new terminology for familiar programming metaphors that will be explored in detail in the following sections: Views — Views are the base class for all visual interface elements (commonly known as controls or widgets). All UI controls, including the layout classes, are derived from View. View Groups — View Groups are extensions of the View class that can contain multiple child Views. Extend the View Group class to create compound controls made up of interconnected child Views. The View Group class is also extended to provide the Layout Managers that help you lay out controls within your Activities. Fragments — Fragments, introduced in Android 3.0 (API level 11), are used to encapsulate portions of your UI. This encapsulation makes Fragments particularly useful when optimizing your UI layouts for different screen sizes and creating reusable UI elements. Each Fragment includes its own UI layout and receives the related input events but is tightly bound to the Activity into which each must be embedded. Fragments are similar to UI View Controllers in iPhone development. Activities — Activities, described in detail in the previous chapter, represent the window, or screen, being displayed. Activities are the Android equivalent of Forms in traditional Windows desktop development. To display a UI, a View (usually a layout or Fragment) is assingned to an Activity.
20
2.6. The Android Widget ToolBox Android supplies a toolbox of standard Views to help you create your UIs. By using these controls (and modifying or extending them, as necessary), you can simplify your development and provide consistency between applications. The following list highlights some of the more familiar toolbox controls: TextView — A standard read-only text label that supports multiline display, string formatting, and automatic word wrapping. EditText — An editable text entry box that accepts multiline entry, word-wrapping, and hint text. Chronometer — A Text View extension that implements a simple countup timer. ListView — A View Group that creates and manages a vertical list of Views, displaying them as rows within the list. The simplest List View displays the toString value of each object in an array, using a Text View for each item. Spinner — A composite control that displays a Text View and an associated List View that lets you select an item from a list to display in the textbox. It’s made from a Text View displaying the current selection, combined with a button that displays a selection dialog when pressed. Button — A standard push button. ToggleButton — A two-state button that can be used as an alternative to a check box. It’s particularly appropriate where pressing the button will initiate an action as well as changing a state (such as when turning something on or off). ImageButton — A push button for which you can specify a customized background image (Drawable). CheckBox — A two-state button represented by a checked or unchecked box. RadioButton — A two-state grouped button. A group of these presents the user with a number of possible options, of which only one can be enabled at a time. ViewFlipper — A View Group that lets you define a collection of Views as a horizontal row in which only one View is visible at a time, and in which transitions between visible views can be animated.
21
VideoView — Handles all state management and display Surface configuration for playing videos more simply from within your Activity. QuickContactBadge — Displays a badge showing the image icon assigned to a contact you specify using a phone number, name, email address, or URI. Clicking the image will display the quick contact bar, which provides shortcuts for contacting the selected contact — including calling and sending an SMS, email, and IM.
2.7. Introducing Intents Intents are used as a message-passing mechanism that works both within your application and between applications. You can use Intents to do the following: Explicitly start a particular Service or Activity using its class name. Start an Activity or Service to perform an action with (or on) a particular piece of data. Broadcast that an event has occurred. Intents can be used to support interaction among any of the application components installed on an Android device, no matter which application they’re a part of. This turns your device from a platform containing a collection of independent components into a single, interconnected system. One of the most common uses for Intents is to start new Activities, either explicitly (by specifying the class to load) or implicitly (by requesting that an action be performed on a piece of data). In the latter case the action does not need to be performed by an Activity within the calling application. Intents can also be used to broadcast messages across the system. Applications can register Broadcast Receivers to listen for, and react to, these Broadcast Intents. This enables you to create event-driven applications based on internal, system, or third-party application events. Android broadcasts Intents to announce system events, such as changes in Internet connectivity or battery charge levels. The native Android applications, such as the Phone Dialer and SMS Manager, simply register components that listen for specific Broadcast Intents — such as “incoming phone call” or “SMS message received” — and react accordingly. As a result, you can replace many of the native applications by registering Broadcast Receivers that listen for the same Intents.
22
Using Intents, explicitly loading classes to propagate actions even within the same application are a fundamental Android design principle. It encourages the decoupling of components to allow the seamless replacement of application elements. It also provides the basis of a simple model for extending an application’s functionality
2.7.1. Using Intents to Launch Activities The most common use of Intents is to bind your application components and communicate between them. Intents are used to start Activities, allowing you to create a workflow of different screens. Intent can be constructed to explicitly specify the Activity class to open, or to include an action that the target Activity must be able to perform. In the latter case, the run time will choose an Activity dynamically using a process known as intent resolution. By using startActivity, the application won’t receive any notification when the newly launched Activity finishes. To track feedback from a sub-Activity, use startActivityForResult.
2.7.2. Using Intents to Broadcast Events As a system-level message-passing mechanism, Intents are capable of sending structured messages across process boundaries. As a result, you can implement Broadcast Receivers to listen for, and respond to, these Broadcast Intents within your applications. Broadcast Intents are used to notify applications of system or application events, extending the event-driven programming model between applications. Broadcasting Intents helps make your application more open by broadcasting an event using Intent, you let yourself and third-party developers react to events without having to modify your original application. Within your applications you can listen for broadcast Intents to react to device state changes and thirdparty application events. Android uses Broadcast Intents extensively to broadcast system events, such as changes in network connectivity, docking state, and incoming calls.
23
2.8. Introducing the Intent Service The Intent Service is a convenient wrapper class that implements the best practice pattern for background Services that perform set tasks on demand, such as recurring Internet updates or data processing. Other application components request an Intent Service complete a task by starting the Service and passing in an Intent containing the parameters necessary to complete the task. The Intent Service queues request Intents as they are received and process them consecutively on an asynchronous background Thread. After every received Intent has been processed, the Intent Service will terminate itself. The Intent Service handles all the complexities around queuing multiple requests, background Thread creation, and UI Thread synchronization.
2.8.1. Creating Intent Filters and Broadcast Receivers Having learned to use Intents to start Activities/Services and to broadcast events, it’s important to understand how to create the Broadcast Receivers and Intent Filters that listen for Broadcast Intents and allow your application to respond to them. In the case of Activities and Services, Intent is a request for an action to be performed on a set of data, and an Intent Filter is a declaration that a particular application component is capable of performing an action on a type of data. Intent Filters are also used to specify the actions a Broadcast Receiver is interested in receiving.
2.8.2. Using Intent Filters to Service Implicit Intents If Intent is a request for an action to be performed on a set of data, how does Android know which application (and component) to use to service that request? Using Intent Filters, application components can declare the actions and data they support. To register an Activity or Service as a potential Intent handler, add an intentfilter tag to its manifest node using the following tags and associated attributes: action — Uses the android:name attribute to specify the name of the action being serviced. Each Intent Filter must have at least one action tag. Actions should be unique strings that are self-describing. Best practice is to use a naming system based on the Java package naming conventions.
24
category — Uses the android:name attribute to specify under which circumstances the action should be serviced. Each Intent Filter tag can include multiple category tags. You can specify your own categories or use the following standard values: ALTERNATIVE — This category specifies that this action should be available as an alternative to the default action performed on an item of this data type. For example, where the default action for a contact is to view it, the alternative could be to edit it. SELECTED_ALTERNATIVE— Similar to the ALTERNATIVE category, but whereas that category will always resolve to a single action using the intent resolution described next, SELECTED_ALTERNATIVE is used when a list of possibilities is required. As you’ll see later in this chapter, one of the uses of Intent Filters is to help populate context menus dynamically using actions. BROWSABLE — Specifies an action available from within the browser. When Intent is fired from within the browser, it will always include the browsable category. If you want your application to respond to actions triggered within the browser (e.g., intercepting links to a particular website), you must include the browsable category. DEFAULT — Set this to make a component the default action for the data type specified in the Intent Filter. This is also necessary for Activities that are launched using an explicit Intent. HOME — By setting an Intent Filter category as home without specifying an action, you are presenting it as an alternative to the native home screen. LAUNCHER — Using this category makes an Activity appear in the application launcher. DATA — The data tag enables you to specify which data types your component can act on; you can include several data tags as appropriate.
25
You can use any combination of the following attributes to specify the data your component supports: android: host — Specifies a valid hostname (e.g., google.com). android: mimetype — Specifies the type of data your component is capable of handling. For example, would match any Android cursor. android: path — Specifies valid path values for the URI (e.g., /transport/boats/). android:port — Specifies valid ports for the specified host. android:scheme — Requires a particular scheme (e.g., content or http).
2.9. Introducing Fragments Fragments enable you to divide your Activities into fully encapsulated reusable components, each with its own lifecycle and UI. The primary advantage of Fragments is the ease with which you can create dynamic and flexible UI designs that can be adapted to suite a range of screen sizes from small-screen smart phones to tablets. Each Fragment is an independent module that is tightly bound to the Activity into which it is placed. Fragments can be reused within multiple activities, as well as laid out in a variety of combinations to suit multi pane tablet UIs and added to, removed from, and exchanged within a running Activity to help build dynamic UIs. Fragments provide a way to present a consistent UI optimized for a wide variety of Android device types, screen sizes, and device densities. Although it is not necessary to divide your Activities (and their corresponding layouts) into Fragments, doing so will drastically improve the flexibility of your UI and make it easier for you to adapt your user experience for new device configurations.
2.9.1. Interfacing Between Fragments and Activities Use the getActivity method within any Fragment to return a reference to the Activity within which it’s embedded. This is particularly useful for finding the current Context, accessing other Fragments using the Fragment Manager, and finding Views within the Activity’s View hierarchy.
26
TextView textView=(TextView)getActivity().findViewById(R.id.textview); Although it’s possible for Fragments to communicate directly using the host Activity’s Fragment Manager, it’s generally considered better practice to use the Activity as an intermediary. This allows the Fragments to be as independent and loosely coupled as possible, with the responsibility for deciding how an event in one Fragment should affect the overall UI falling to the host Activity. Where your Fragment needs to share events with its host Activity (such as signaling UI selections), it’s good practice to create a callback interface within the Fragment that a host Activity must implement.
2.10. Creating Content Providers Content Providers provide an interface for publishing data that will be consumed using a Content Resolver. They allow you to decouple the application components that consume data from their underlying data sources, providing a generic mechanism through which applications can share their data or consume data provided by others. To create a new Content Provider, extend the abstract ContentProvider class:
public class MyContentProvider extends ContentProvider Like the database contract class described in the previous section, it’s good practice to include static database constants particularly column names and the Content Provider authority that will be required for transacting with, and querying, the database. It will also need to override the onCreate handler to initialize the underlying data source, as well as the query, update, delete, insert, and getType methods to implement the interface used by the Content Resolver to interact with the data.
2.10.1. Native Android Content Providers Android exposes several native Content Providers, which you can access directly using the techniques described earlier in this chapter. Alternatively, the android provider package includes APIs that can simplify access to many of the most useful Content Providers, including the following-
27
Media Store — Provides centralized, managed access to the multimedia on your device, including audio, video, and images. You can store your own multimedia within the Media Store and make it globally available.
Browser — Reads or modifies browser and browser search history.
Contacts Contract — Retrieves, modifies, or stores contact details and associated social stream updates. Calendar — Creates new events, and deletes or updates existing calendar entries. That includes modifying the attendee lists and setting reminders.
Call Log — Views or updates the call history, including incoming and outgoing calls, missed calls, and call details, including caller IDs and call durations.
28
CHAPTER 3 PROPOSED SYSTEM The aim of proposed system is to develop a system of improved facilities. The proposed system can overcome all the limitations of the existing system. The system provides proper security and reduces the manual work. The existing system has several disadvantages and many more difficulties to work well. The proposed system tries to eliminate or reduce these difficulties up to some extent. The proposed system will help the user to reduce the workload and mental conflict. The proposed system helps the user to work user friendly and it can be done without time lagging.
3.1. System Analysis System analysis is a process of gathering and interpreting facts, diagnosing problems and the information to recommend improvements on the system. It is a problem solving activity that requires intensive communication between the system users and system developers. System analysis or study is an important phase of any system development process. The system is studied to the minutest detail and analyzed. The system analyst plays the role of the interrogator and dwells deep into the working of the present system. The system is viewed as a whole and the input to the system are identified. The outputs from the organizations are traced to the various processes. System analysis is concerned with becoming aware of the problem, identifying the relevant and decisional variables, analyzing and synthesizing the various factors and determining an optimal or at least a satisfactory solution or program of action.
29
A detailed study of the process must be made by various techniques like interviews, questionnaires etc. The data collected by these sources must be scrutinized to arrive to a conclusion. The conclusion is an understanding of how the system functions. This system is called the existing system. Now the existing system is subjected to close study and problem areas are identified. The designer now functions as a problem solver and tries to sort out the difficulties that the enterprise faces. The solutions are given as proposals. The proposal is then weighed with the existing system analytically and the best one is selected. The proposal is presented to the user for an endorsement by the user. The proposal is reviewed on user request and suitable changes are made. This is loop that ends as soon as the user is satisfied with proposal. Preliminary study is the process of gathering and interpreting facts, using the information for further studies on the system. Preliminary study is problem solving activity that requires intensive communication between the system users and system developers. It does various feasibility studies. In these studies a rough figure of the system activities can be obtained, from which the decision about the strategies to be followed for effective system study and analysis can be taken.
3.2. Feasibility Study Feasibility study is made to see if the project on completion will serve the purpose of playing the quiz application. Feasibility study lets the developer foresee the future of the project and the usefulness. A feasibility study of a system proposal is according to its workability, to meet the user needs and effective use of resources. Thus when a new application is proposed it normally goes through a feasibility study before it is approved for development. The document provide the feasibility of the project that is being designed and lists various areas that were considered very carefully during the feasibility study of this project such as Technical, Economic and Operational feasibilities. The following are its features:
30
3.2.1. Technical Feasibility The system must be evaluated from the technical point of view first. The assessment of this feasibility must be based on an outline design of the system requirement in the terms of input, output, programs and procedures. Having identified an outline system, the investigation must go on to suggest the type of equipment, required method developing the system, of running the system once it has been designed. Technical issues raised during the investigation are: Does the existing technology sufficient for the suggested one? Can the system expand if developed? The project should be developed such that the necessary functions and performance are achieved within the constraints. The project is developed within latest technology. Through the technology may become obsolete after some period of time, due to the fact that never version of same software supports older versions, the system may still be used. So there are minimal constraints involved with this project. The system has been developed using Java the project is technically feasible for development.
3.2.2. Economic Feasibility The developing system must be justified by cost and benefit. Criteria to ensure that effort is concentrated on project, which will give best, return at the earliest. One of the factors, which affect the development of a new system, is the cost it would require. The following are some of the important financial questions asked during preliminary investigation: The costs conduct a full system investigation. The cost of the hardware and software. The benefits in the form of reduced costs or fewer costly errors. Since the system is developed as part of project work, there is no manual cost to spend for the proposed system. Also all the resources are already available, it give an indication of the system is economically possible for development.
31
3.2.3. Behavioral Study This includes the following questions: Is there sufficient support for the users? Will the proposed system cause harm? The project would be beneficial because it satisfies the objectives when developed and installed. All behavioral aspects are considered carefully and conclude that the project is behaviorally feasible.
3.2.4. Cost Analysis The cost regarding this project and maintenance of the project system is negligible. Cost of essential hardware and software is not required much. The proposed system is fully automated and hence easy to use. Since benefits out base the cost, hence our application is economically feasible.
3.3. Designing Design is the first step into the development phase for any engineered product or system. Design is a creative process. A good design is the key to effective system. The term “design” is defined as “the process of applying various techniques and principles for the purpose of defining a process or a system in sufficient detail to permit its physical realization”. It may be defined as a process of applying various techniques and principles for the purpose of defining a device, a process or a system in sufficient detail to permit its physical realization. Software design sits at the technical kernel of the software engineering process and is applied regardless of the development paradigm that is used. The system design develops the architectural detail required to build a system or product.
32
As in the case of any systematic approach, this software too has undergone the best possible design phase fine tuning all efficiency, performance and accuracy levels. The design phase is a transition from a user oriented document to a document to the programmers or database personnel.
3.3.1. Module Design :
Table No. 3.1
Level 1: Very super famous Level 2: Modern Alchemists
PLAY! (answer 5 to unlock)
Level 3: By the Meter
(answer 12 to unlock)
Level 4: Story of the Atom
(answer 19 to unlock)
Level 5: Secrets of life
(answer 24 to unlock)
Level 6: Quantum Menace
(answer 31 to unlock)
Level 1: Very Super Famous It has in questions images of very famous scientists like Marie Curie or Galileo which every middle school student has read about.
Level 2: Modern Alchemists This is specific to scientists from field of chemistry and needs specializations and some answers are tough to crack.
Level 3: By the Meter Scientists on who name of units have been kept.
33
Level 4: Story of Atom It involves those scientists who were a part discovery of atom.
Level 5: Secrets of life This is a biology oriented round where the scientists are belonging to the life sciences group.
Level 6: Quantum Menace This is about modern physics where contributors have been zoned down to the field of quantum mechanics.
3.3.2. A brief description about levels: All these levels have 7-8 questions and initially only one level is unlocked .The rest of the levels unlock when we start answering the questions of previous levels which is mentioned on the levels. For example we need to answer atleast 19 questions correctly before the Story of atom level opens up. Each right and wrong answer is accompanied by a cross or tick symbol along with sound. The application has various levels to offer .The first one being a very basic one and features scientists which every middle school student has heard about. Even if a student is unable to figure out by looking at the picture itself then a set of four options provided makes it a little easier. When realization dawns upon the student that the scientist being missed out was a very famous one who shaped the course of science this is where it becomes more engaging. As the levels increase the fields narrow to down to more specific domains like chemists, biologists etc. here the student has to move out of their comfort zone to explore more. A small biography about the scientist is also provided when you answer a question correctly to know more about them. In case you get an incorrect answer in the first attempt then a small hint is given about that question which helps you take the second shot in the right direction. What if someone tries to play the guessing game here a small trick has been used that after every attempt the order of options changes. So if you took
34
the third option as a blind guess then the situation might be that the next time the fourth option will get replaced by the third option of the previous attempt. Thus foxing the player at that juncture so you need to be aware and alert while attempting the quiz even though you don’t have any idea about the answer.
3.4. Software Environment
3.4.1. Hardware Specification Table No. 3.2 Screen Size
3.2 inch and above
Processor
500 MHz
RAM
64 MB
Internal memory
10 MB
CPU Cores
More than one
3.4.2. Software Specification Table No. 3.3
35
Operating System
Android(Gingerbread 2.3 & above)
Languages
Java , XML
Front End
Application
Platform
Android
Others
Not for windows or iOS
3.5. Code Details The purpose of code is to facilitate the identification, retrieval of the items and information. A code is an oriented collection of symbols design to provide unique identification of an entry or attribute. Code is built with manually exclusive features. Codes in all cases specify object which are physical or on performance characteristics. They are used to give optimal distraction and other information. Codes are used for identifying, accessing, storing and matching records. The codes insure that only one value of the code with a single meaning is correctly applied to give entity or attribute as described in various ways.
3.6. Project Testing Testing Objectives To ensure that during operation the system will perform as per specification. To make sure that the system makes user requirement during operations. Testing Principles All tests should be traceable to user requirements. Tests should be planned long before testing begins. Test Case Design A rich variety of test case design methods have evolved for software. These methods provide the developer with a systematic approach to testing. 1. White-Box Testing White Box Testing is a testing in which in which the software
36
tester has knowledge of the inner workings, structure and language of the software, or at least its purpose. It is used to test areas that cannot be reached from a black box level. 2. Black-Box Testing Black Box Testing is testing the software without any knowledge of the inner workings, structure or language of the module being tested. Black box tests, as most other kinds of tests, must be written from a definitive source document, such as specification or requirements document, such as specification or requirements document.
Table No. 3.4. TYPES OF TEST
COMMENTS/ EXPLANATIONS
Requirement testing
Since there is no use of Android Phone SQLite for database so, need an android phone.
Unit Testing
The whole project is Regular expression, divide into many String Matching functionality. Hence all the units were individually tested.
Performance
This Testing is applied Searching on details searching which is providing search result.
Integration
37
SOFTWARE COMPONENTS
After the unit testing Regular expression, this testing is applied. String Matching All the units were Integrated and tested.
CHAPTER 4 SNAPSHOTS
Fig. 4.1. A glimpse of the home screen where only the first level is unlocked.
38
Fig. 4.2. An extended list as all levels are not visible in one frame.
Fig. 4.3. Credits for various images used in “Faces of Science” and reset the application to the initial stage.
Fig. 4.5. The images in the first level the very Famous one.
39
Fig. 4.4. The appearance of level after one question has been answered.
Fig. 4.6. An arrow on the opening of level indicating how to play.
Fig. 4.7. A hint visible for a question in form of a short biography.
Fig. 4.9. In case of answering incorrectly a large cross covers up accompanied by sound.
40
Fig. 4.8. The first question of the very famous with options.
Fig. 4.10. In case of answering correctly a tick mark accompanied by sound.
CONCLUSION The project titled as “Android Quiz Application for Google Play Store” is an android based application. It maintains all information related to the field of science. The major advantage of developing this application is that to help students for boost up their knowledge in field of science. The aim supposed to be achieved by developing this project has been completed successfully with satisfaction. The constraints are met and overcome successfully. The system is designed as like it was decided in the design phase. The project gives good idea on developing a full-fledged application satisfying the user requirements. The system is very flexible and versatile. This software has a user-friendly screen that enables the user to use without any inconvenience. Validation checks induced have greatly reduced errors. Provisions have been made to upgrade the software. The application has been tested with live data and has provided a successful result. Hence the software has proved to work efficiently.
41
FUTURE SCOPE In future we can able to add more modules in this project. We can make it more attractive by the LOOK and FEEL feature. Android Quiz Application is very useful for students to boost their knowledge about the famous scientists which form a part of their text book. This application can increase its domain from science to others like Mathematics, General Knowledge, etc. Generic User Interface implemented by the inclusion of Voice User interface. Thus questions can be spoken by voice on the application. We can also make it available on several other platforms like windows and IOS.
42
REFERENCES Resources/urls :
1. http://developer.android.com/reference/packages.html 2. http://developer.android.com/sdk/index.html 3. “Android Studio Plug-in” (https://android.googlesource.com/platform/tools/adt/idea/+/master/android/src/org /jetbrains/android/AndroidPlug in.java) 4. https://developer.android.com/sdk/installing/studio.html 5. "Google Launches Android Studio And New Features For Developer Console, Including Beta Releases And Staged Rollout" (http://venturebeat.com/2014/12/08/google-releases-android-studio-10-the-firststable-version-of-its-ide/ 6. "Android Studio: An IDE built for Android" (http://android-developers.blogspot.in/2013/05/android-studio-ide-built-forandroid.html). 7. "Getting Started with Android Studio" (http://developer.android.com/sdk/installing/studio.html). 8. "Download Android Studio IDE For Windows, OS X And Linux" (http://www.redmondpie.com/download-android-studio-ide-for-windows-os-x-andlinux/). 9. http://developer.android.com/guide/developing/tools/index.html 10. http://developer.android.com/guide/developing/tools/emulator.html
43
Text books references: 1. The Android Developer’s Cookbook By James Steele Nelson 2. Unusual Pattern Detection in DNA Database Using KMP Algorithm By S.RAJESH, 3. Research on Development of Android Applications By Jianye Liu 4. Creating and Using Databases for Android Applications Sunguk Lee 5. OL. Google Android Developers, Android Develop Guide, . 6. http://www.tutorialspoint.com 7. http://www.youtube.com/watch?v=xtsyrKdPZVw&list=PL9E21BFF40816 8. Android Developers, http://www.androidin.com/.
44