Android document

25
1.4 SOFTWARE DESCRIPTION ANDROID Android is a Linux-based operating system for mobile devices such as smart phones and tablet computers. It is developed by the Open Handset Alliance, led by Google. Google financially backed the initial developer of the software, Android Inc., and later purchased it in 2005. The unveiling of the Android distribution in 2007 was announced with the founding of the Open Handset Alliance, a consortium of 86 hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Google releases the Android code as open-source, under the Apache License. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android. Android is a robust software that includes an operating system, middleware and select applications. Developed and maintained as an open source project by Google, Android benefits by contributions from members of the Open handset Alliance (OHA), including ARM. Android has been designed and built for the ARM architecture, and continues to be the primary development platform of the OHA with hundreds of companies contributing to the Android on ARM codebase. One of the best sources for Android on ARM is directly from Google’s own Android website. Android development on ARM falls into two categories; application development and OS porting to various ARM based SoCs and boards.  There are two development kits for Android applications. The first is the SDK, or Software Development Kit, which is a Java development environment that produces applications intended to run in the Android Dalvik Java VM. The Dalvik runtime environment, heavily optimized for the ARM architecture,

Transcript of Android document

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 1/25

1.4 SOFTWARE DESCRIPTION

ANDROID

Android is a Linux-based operating system for mobile devices such

as smart phones and tablet computers. It is developed by the Open Handset

Alliance, led by Google. 

Google financially backed the initial developer of the software, Android Inc.,

and later purchased it in 2005. The unveiling of the Android distribution in

2007 was announced with the founding of the Open Handset Alliance, a

consortium of 86 hardware, software, and telecommunication companies

devoted to advancing open standards for mobile devices. Google releases the

Android code as open-source, under the Apache License. The Android Open

Source Project (AOSP) is tasked with the maintenance and further development

of Android.

Android is a robust software that includes an operating system, middleware

and select applications. Developed and maintained as an open source project

by Google, Android benefits by contributions from members of the Open

handset Alliance (OHA), including ARM. Android has been designed and built

for the ARM architecture, and continues to be the primary development

platform of the OHA with hundreds of companies contributing to the Android

on ARM codebase.

One of the best sources for Android on ARM is directly from Google’s own

Android website. Android development on ARM falls into two categories;

application development and OS porting to various ARM based SoCs and

boards.

 There are two development kits for Android applications. The first is the

SDK, or Software Development Kit, which is a Java development environment

that produces applications intended to run in the Android Dalvik Java VM. The

Dalvik runtime environment, heavily optimized for the ARM architecture,

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 2/25

including an ARM targeted Just-in-time (JIT) compiler, utilizes the latest

ARMv7 architectural features.

 The second devevelopment kit is the NDK, or Native Development Kit.

 The NDK augments the SDK for the creation of native ARM code used in timingsensitive or performance critical applications.

ANDROID SOFTWRE STACK

Android has a large community of developers writing applications

("apps") that extend the functionality of the devices. Developers write primarily 

in a customized version of Java. Apps can be downloaded from third-party sites

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 3/25

or through online stores such as Google Play (formerly Android Market ), the

app store run by Google. In June 2012, there were more than 600,000 apps

available for Android, and the estimated number of applications downloaded

from Google Play was 20 billion.

Android became the world’s leading smart phone platform at the end of 

2010. For the first quarter of 2012, Android had a 59% smart phone market

share worldwide. At the half of 2012, there were 400 million devices activated

and 1 million activations per day. Analysts point to the advantage to Android of 

being a multi-channel, multi-carrier OS.

Android gives you everything you need to build best-in-class app

experiences. It gives you a single application model that lets you deploy yourapps broadly to hundreds of millions of users across a wide range of devices — 

from phones to tablets and beyond.

Android also gives you tools for creating apps that look great and take

advantage of the hardware capabilities available on each device. It

automatically adapts your UI to look it's best on each device, while giving you

as much control as you want over your UI on different device types.

 XML and the Java Platform

Java API for XML Processing (JAXP) : In many ways, XML and the Java

Platform are a partnership made in heaven. XML defines a cross platform data

format and Java provides a standard cross platform programming platform.

 Together, XML and Java technologies allow programmers to apply Write Once,

Run Anywhere fundamentals to the processing of data and documents

generated by both Java based programs and non-Java based programs.

Foundation

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 4/25

Android, Inc. was founded in Palo Alto, California, United States in

October 2003 by Andy Rubin (co-founder of Danger), Rich Miner (co-founder of 

Wildfire Communications, Inc.), Nick Sears and Chris White. At Google, the

team led by Rubin developed a mobile device platform powered by the Linux

kernel. Google marketed the platform to handset makers and carriers on the

promise of providing a flexible, upgradable system. Google had lined up a series

of hardware component and software partners and signaled to carriers that it

was open to various degrees of cooperation on their part. On November 5,

2007, the Open Handset Alliance, a consortium of several companies unveiled

itself. The goal of the Open Handset Alliance is to develop open standards for

mobile devices. On the same day, the Open Handset Alliance also unveiled

their first product, Android, a mobile device platform built on the Linux

kernel version 2.6.

Android Open Source Project

 The Android Open Source Project (AOSP) is led by Google, and is tasked

with the maintenance and development of Android. According to the project

"The goal of the Android Open Source Project is to create a successful real-

world product that improves the mobile experience for end users."AOSP also

maintains the Android Compatibility Program , defining an "Android compatible"

device "as one that can run any application written by third-party developers

using the Android SDK and NDK", to prevent incompatible Android

implementations. The compatibility program is also optional and free of charge,

with the Compatibility Test Suite also free and open-source.

Version history

Android has been updated frequently since the original release of "Astro", witheach fixing bugs and adding new features. Each version is named in

alphabetical order, with 1.5 "Cupcake" being the first named after adessert and

every update since following this naming convention.

List of Android version names:

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 5/25

  Cupcake

  Donut

  Eclair

 Froyo

  Gingerbread

  Honeycomb

  Ice Cream Sandwich

   Jelly Bean

Design

Android consists of a kernel based on the Linux kernel 2.6, 

with middleware, libraries and APIs written in C and application software running on an application framework which includes Java-compatible libraries

based on Apache Harmony. Android uses the Dalvik virtual machine with just-

in-time compilation to run Dalvik dex-code (Dalvik Executable), which is

usually translated from Java bytecode.

 The main hardware platform for Android is the ARM architecture. There

is support for x86 from the Android x86 project, and Google TV uses a special

 x86 version of Android.

Linux

Android's kernel is based on the Linux kernel and has further

architecture changes by Google outside the typical Linux kernel development

cycle. Android does not have a native X Window System nor does it support the

full set of standard GNU libraries, and this makes it difficult to port existing

Linux applications or libraries to Android.

Certain features that Google contributed back to the Linux kernel,

notably a power management feature called wakelocks, were rejected by 

mainline kernel developers, partly because kernel maintainers felt that Google

did not show any intent to maintain their own code.Even though Google

announced in April 2010 that they would hire two employees to work with the

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 6/25

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 7/25

extend its abilities by installing plug-ins written for the Eclipse Platform, such

as development toolkits for other programming languages, and can write and

contribute their own plug-in modules.

Released under the terms of the Eclipse Public License, Eclipse SDK is free and

open source software. It was one of the first IDEs to run under GNU Classpath

and it runs without issues under IcedTea. 

Features

  Handset layouts

 The platform is adaptable to larger, VGA, 2D graphics library, 3D

graphics library based on OpenGL ES 2.0 specifications, and traditional

smartphone layouts.

  Storage

SQLite, a lightweight relational database, is used for data storage

purposes.

  Connectivity

Android supports connectivity technologies

including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-

Fi, LTE, NFC and WiMAX. 

  Messaging

SMS and MMS are available forms of messaging, including threaded text

messaging and Android Cloud To Device Messaging (C2DM) and now

enhanced version of C2DM, Android Google Cloud Messaging (GCM) is

also a part of Android Push Messaging service.

  Multiple language support

Android supports multiple languages.

  Web browser

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 8/25

 The web browser available in Android is based on the open-

source WebKit layout engine, coupled with Chrome's V8 JavaScript

engine. The browser scores 100/100 on the Acid3 test on Android 4.0.

  Java support

While most Android applications are written in Java, there is no Java

Virtual Machine in the platform and Java byte code is not executed. Java

classes are compiled into Dalvik executables and run on Dalvik, a

specialized virtual machine designed specifically for Android and

optimized for battery-powered mobile devices with limited memory and

CPU. J2ME support can be provided via third-party applications.

  Media support

Android supports the following audio/video/still media

formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4

SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC(in MP4 or 3GP

container), MP3, MIDI, Ogg

Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP, WebP. 

  Streaming media support

RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download

(HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic

Streaming are supported by the Flash plugin. Apple HTTP Live Streaming

is supported by RealPlayer for Android, and by the operating system in

Android 3.0 (Honeycomb).

  Multi-touch

Android has native support for multi-touch which was initially made

available in handsets such as the HTC Hero. The feature was originally 

disabled at the kernel level (possibly to avoid infringing Apple's patents

on touch-screen technology at the time). Google has since released an

update for the Nexus One and the Motorola Droid which enables multi-

touch natively.

  Bluetooth

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 9/25

Supports A2DP, AVRCP, sending files (OPP), accessing the phone book

(PBAP), voice dialing and sending contacts between phones. Keyboard,

mouse and joystick (HID) support is available in Android 3.1+, and in

earlier versions through manufacturer customizations and third-party 

applications.

  Video calling

Android does not support native video calling, but some handsets have a

customized version of the operating system that supports it, either via

the UMTS network (like the Samsung Galaxy S) or over IP. Video calling

through Google Talk is available in Android 2.3.4 and later. Gingerbread

allows Nexus S to place Internet calls with a SIP account. This allows for

enhanced VoIP dialing to other SIP accounts and even phone numbers.

Skype 2.1 offers video calling in Android 2.3, including front camera

support.

  Multitasking

Multitasking of applications, with unique handling of memory allocation,

is available.

  Voice based features

Google search through voice has been available since initial

release. Voice actions for calling, texting, navigation, etc. are supported

on Android 2.2 onwards.

  Tethering

Android supports tethering, which allows a phone to be used as a

wireless/wired Wi-Fi hotspot. Before Android 2.2 this was supported by 

third-party applications or manufacturer customizations.

  Screen capture

Android supports capturing a screenshot by pressing the power and

volume-down buttons at the same time. Prior to Android 4.0, the only 

methods of capturing a screenshot were through manufacturer and

third-party customizations or otherwise by using a PC connection (DDMS

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 10/25

developer's tool). These alternative methods are still available with the

latest Android.

  External storage

Most Android devices include microSD slot and can read microSD cards

formatted with FAT32, Ext3 or Ext4 file system. To allow use of high-

capacity storage media such as USB flash drives and USB HDDs, many 

Android tablets also include USB 'A' receptacle. Storage formatted

with FAT32 is handled by Linux Kernel VFAT driver, while 3rd party 

solutions are required to handle other popular file systems such

as NTFS, HFS Plus and exFAT. 

Applications

Applications are usually developed in the Java language using

the Android Software Development Kit, but other development tools are

available, including a Native Development Kitf or applications or extensions in C

or C++, Google App Inventor, a visual environment for novice programmers and

various cross platform mobile web applications frameworks. 

Applications can be acquired by end-users either through a store such

as Google Play or the Amazon Appstore, or by downloading and installing the

application's APK file from a third-party site.

JAVA

Java is a programming language originally developed by James

Gosling at Sun Microsystems (which has since merged into Oracle Corporation) 

and released in 1995 as a core component of Sun Microsystems' Java platform. 

 The language derives much of its syntaxf rom C and C++ but has a

simpler object model and fewer low-level facilities. Java applications are

typically compiled to bytecode (class file) that can run on any Java Virtual

Machine (JVM) regardless of computer architecture. Java is a general-

purpose, concurrent, class-based, object-oriented language that is specifically 

designed to have as few implementation dependencies as possible. It is

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 11/25

intended to let application developers "write once, run anywhere" (WORA),

meaning that code that runs on one platform does not need to be recompiled to

run on another. Java is as of 2012 one of the most popular programming

languages in use, particularly for client-server web applications, with a

reported 10 million users.

 The original and reference implementation Java compilers, virtual

machines, and class libraries were developed by Sun from 1995. As of May 

2007, in compliance with the specifications of the Java Community Process, 

Sun relicensed most of its Java technologies under the GNU General Public

License. Others have also developed alternative implementations of these Sun

technologies, such as the GNU Compiler for Java and GNU Classpath. 

History

 James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java

language project in June 1991. Java was originally designed for interactive

television, but it was too advanced for the digital cable television industry at

the time. The language was initially called Oak after an oak tree that stood

outside Gosling's office; it went by the name Green later, and was later

renamed Java , from Java coffee, said to be consumed in large quantities by thelanguage's creators. Gosling aimed to implement a virtual machine and a

language that had a familiarC/C++ style of notation.

Sun Microsystems released the first public implementation as Java 1.0

in 1995. It promised "Write Once, Run Anywhere" (WORA), providing no-cost

run-times on popular platforms. Fairly secure and featuring configurable

security, it allowed network- and file-access restrictions. Major web browsers

soon incorporated the ability to run Java applets within web pages, and Java

quickly became popular. With the advent of Java 2 (released initially as J2SE

1.2 in December 1998 – 1999), new versions had multiple configurations built

for different types of platforms. For example, J2EE targeted enterprise

applications and the greatly stripped-down version J2ME for mobile

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 12/25

applications (Mobile Java). J2SE designated the Standard Edition. In 2006, for

marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, 

and Java SE, respectively.

In 1997, Sun Microsystems approached the ISO/IEC JTC1 standardsbody and later the Ecma International to formalize Java, but it soon withdrew

from the process. Java remains a de facto standard, controlled through

the Java Community Process. At one time, Sun made most of its Java

implementations available without charge, despite their proprietary 

software status. Sun generated revenue from Java through the selling of 

licenses for specialized products such as the Java Enterprise System. Sun

distinguishes between its Software Development Kit (SDK) andRuntime

Environment (JRE) (a subset of the SDK); the primary distinction involves

the JRE's lack of the compiler, utility programs, and header files.

Principles

 There were five primary goals in the creation of the Java language:

1. It should be "simple, object-oriented and familiar"

2. It should be "robust and secure"

3. It should be "architecture-neutral and portable"

4. It should execute with "high performance"

5. It should be "interpreted, threaded, and dynamic"

Versions

Major release versions of Java, along with their release dates:

   JDK 1.0 (January 23, 1996)

   JDK 1.1 (February 19, 1997)

   J2SE 1.2 (December 8, 1998)

   J2SE 1.3 (May 8, 2000)

   J2SE 1.4 (February 6, 2002)

   J2SE 5.0 (September 30, 2004)

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 13/25

   Java SE 6 (December 11, 2006)

   Java SE 7 (July 28, 2011)

Automatic memory management

 Java uses an automatic garbage collector to manage memory inthe object lifecycle. The programmer determines when objects are created, and

the Java runtime is responsible for recovering the memory once objects are no

longer in use. Once no references to an object remain, the unreachable

memory becomes eligible to be freed automatically by the garbage collector.

Something similar to a memory leak may still occur if a programmer's code

holds a reference to an object that is no longer needed, typically when objects

that are no longer needed are stored in containers that are still in use. If 

methods for a nonexistent object are called, a "null pointer exception" is

thrown.

One of the ideas behind Java's automatic memory management model is

that programmers can be spared the burden of having to perform manual

memory management. In some languages, memory for the creation of objects is

implicitly allocated on the stack, or explicitly allocated and deallocated from

the heap. In the latter case the responsibility of managing memory resides with

the programmer. If the program does not deallocate an object, a memory 

leak occurs. If the program attempts to access or deallocate memory that has

already been deallocated, the result is undefined and difficult to predict, and

the program is likely to become unstable and/or crash. This can be partially 

remedied by the use of smart pointers, but these add overhead and complexity.

Note that garbage collection does not prevent "logical" memory leaks, i.e. those

where the memory is still referenced but never used.

Garbage collection may happen at any time. Ideally, it will occur when a

program is idle. It is guaranteed to be triggered if there is insufficient free

memory on the heap to allocate a new object; this can cause a program to stall

momentarily. Explicit memory management is not possible in Java.

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 14/25

 Java does not support C/C++ style pointer arithmetic, where object addresses

and unsigned integers (usually long integers) can be used interchangeably.

 This allows the garbage collector to relocate referenced objects and ensures

type safety and security.

 Java contains multiple types of garbage collectors. By default, HotSpot

uses the Concurrent Mark Sweep collector, also known as the CMS Garbage

Collector. However, there are also several other garbage collectors that can be

used to manage the Heap. For 90% of applications in Java, the CMS Garbage

Collector is good enough.

Java Virtual Machine

 The heart of the Java platform is the concept of a "virtual machine" that

executes Java bytecode programs. This bytecode is the same no matter what

hardware or operating system the program is running under. There is a

 JIT(Just In Time) compiler within the Java Virtual Machine , or JVM. The JIT 

compiler translates the Java bytecode into native processor instructions at

run-time and caches the native code in memory during execution.

 The use of bytecode as an intermediate language permits Java programs

to run on any platform that has a virtual machine available. The use of a JIT 

compiler means that Java applications, after a short delay during loading and

once they have "warmed up" by being all or mostly JIT-compiled, tend to run

about as fast as native programs. Since JRE version 1.2, Sun's JVM

implementation has included a just-in-time compiler instead of an interpreter.

Although Java programs are cross-platform or platform independent, the

code of the Java Virtual Machines (JVM) that execute these programs is not.

Every supported operating platform has its own JVM.

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 15/25

Usages

  Desktop use

According to Oracle, the Java Runtime Environment is found on over 850

million PCs. Microsoft has not bundled a Java Runtime Environment (JRE)

with its operating systemssince Sun Microsystems sued Microsoft for adding

Windows-specific classes to the bundled Java runtime environment, and for

making the new classes available through Visual J++. 

Some Java applications are in fairly widespread desktop use, including

the NetBeans and Eclipse integrated development environments, and file

sharing clients such as LimeWireand Vuze. Java provides cross platform user

interface for some high end collaborative applications like Lotus Notes. 

  Mobile devices

 Java ME has become popular in mobile devices, where it competes

with Symbian, BREW, and the .NET Compact Framework. 

 The diversity of mobile phone manufacturers has led to a need for new

unified standards so programs can run on phones from different suppliers -

MIDP. The first standard was MIDP 1, which assumed a small screen size, no

access to audio, and a 32kB program limit. The more recent MIDP 2 allows

access to audio, and up to 64kB for the program size. With handset designs

improving more rapidly than the standards, some manufacturers relax some

limitations in the standards, for example, maximum program size.

Google's Android operating system uses the Java language, but not its class

libraries, therefore the Android platform cannot be called Java. Android

executes the code on the Dalvik VM instead of the Java VM.

  Web server and enterprise use

 The Java platform has become a mainstay of enterprise IT development

since the introduction of the Enterprise Edition in 1998, in two different ways:

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 16/25

   Through the coupling of Java to the web server, the Java platform has

become a leading platform for integrating the Web with enterprise

backend systems. This has allowed companies to move part or all of 

their business to the Internet environment by way of highly interactive

online environments (such as highly dynamic websites) that allow the

customer direct access to the business processes (e.g. online banking

websites, airline booking systems and so on). This trend has continued

from its initial Web-based start:

   The Java platform has become the main development platform for many 

software tools and platforms that are produced by third-party software

groups (commercial, open source and hybrid) and are used as

configurable (rather than programmable) tools by companies. Examples

in this category include Web servers, application servers, databases,

enterprise service buses, business process management (BPM) tools

and content management systems. 

DATABASE DESIGN

Database design forms an important part of every project. The

management of data involves both the definition of structure for the storage of 

information and provision of mechanisms for manipulation of information. The

database system must provide safety for the information stored; despite system

crashes or attempts of unauthorized access the database used in this project is

SQLite.

About SQLite

 SQLite is a relational database management system contained in asmall (~275 kB) C programming library. In contrast to other database

management systems, SQLite is not a separate process that is accessed

from the client application, but an integral part of it.

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 17/25

  SQLite is ACID-compliant and implements most of the SQL standard,

using a dynamically and weakly typed SQL syntax that does not

guarantee the domain integrity. 

 SQLite is a popular choice as embedded database for local/client storagein application software such as web browsers. It is arguably the most

widely deployed database engine, as it is used today by several

widespread browsers, operating systems, and embedded systems,

among others. SQLite has many bindings to programming languages.

Design

Unlike client – server database management systems, the SQLite engine

has no tandalone processes with which the application program

communicates. Instead, the SQLite libraryis linked in and thus becomes an

integral part of the application program. The library can also be called

dynamically. The application program uses SQLite's functionality through

simple function calls, which reduce latency in database access: function calls

within a single process are more efficient than inter-process communication. 

SQLite stores the entire database (definitions, tables, indices, and the data

itself) as a single cross-platform file on a host machine. It implements this

simple design by locking the entire database file during writing. SQLite read

operations can be multitasked, though writes can only be performed

sequentially.

History

D. Richard Hipp designed SQLite in the spring of 2000 while working

for General Dynamics on contract with the United States Navy. Hipp was

designing software used on boardguided missile destroyer ships, which were

originally based on HP-UX with an IBM Informix database back-end. The

design goals of SQLite were to allow the program to be operated without

installing a database management system or administration. In August 2000,

version 1.0 of SQLite was released, based on gdbm (GNU Database Manager).

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 18/25

SQLite 2.0 replaced gdbm with a custom B-tree implementation, adding

support for transactions. SQLite 3.0, partially funded by America Online, 

added internationalization, manifest typing, and other major improvements.

In 2011 Hipp announced his plans to add an UnQL interface to SQLitedatabases and to develop UnQLite , an embeddable document-oriented

database. 

Features

  SQLite implements most of the SQL-92 standard for SQL but it lacks

some features. For example it has partial support for triggers, and it

can't write to views (however it supports INSTEAD OF triggers that

provide this functionality). While it supports complex queries, it still has

limited ALTER TABLE support, as it can't modify or delete columns.

  SQLite uses an unusual type system for a SQL-compatible DBMS.

Instead of assigning a type to a column as in most SQL database

systems, types are assigned to individual values; in language terms it

is dynamically typed . Moreover, it is weakly typed in some of the same

ways that Perl is: one can insert a string into an integer column

(although SQLite will try to convert the string to an integer first, if the

column's preferred type is integer). This adds flexibility to columns,

especially when bound to a dynamically typed scripting language.

However, the technique is not portable to other SQL products. A common

criticism is that SQLite's type system lacks the data integrity mechanism

provided by statically typed columns in other products.

  Several computer processes or threads may access the same database

concurrently. Several read accesses can be satisfied in parallel. A write

access can only be satisfied if no other accesses are currently being

serviced. Otherwise, the write access fails with an error code (or can

automatically be retried until a configurable timeout expires). This

concurrent access situation would change when dealing with temporary 

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 19/25

tables. This restriction is relaxed in version 3.7 when WAL is turned on

enabling concurrent reads and writes.

  A standalone program called sqlite3 is provided that can be used to create

a database, define tables within it, insert and change rows, run queriesand manage a SQLite database file. This program is a single executable

file on the host machine. It also serves as an example for writing

applications that use the SQLite library.

  SQLite is a popular choice for local/client SQL storage within a web

browser and within a rich internet application framework;most notably 

the leaders in this area embed SQLite.

  SQLite full Unicode support is optional.

  SQLite also has bindings for a large number of programming languages, 

including BASIC, C, C++, Clipper//Harbour, Common

Lisp, C#, Curl, D, Delphi, Free

Pascal, Haskell, Java,Livecode, Lua, newLisp, Objective-C (on Mac OS

X and iOS), OCaml, Perl, PHP, Pike, Python, REBOL, R, REALbasic, Ruby 

, Scheme, Smalltalk, Tcl, Visual Basic, and JavaScript. 

An ADO.NET adapter, initially developed by Robert Simpson, is

maintained jointly with the SQLite developers since April

2010. An ODBC driver has been developed and is maintained separately 

by Christian Werner. Werner's ODBC driver is the recommend

connection method for accessing SQLite from OpenOffice. There is also

a COM (ActiveX) wrapper making SQLite accessible on Windows to

scripted languages such as JScript and VBScript. This adds database

capabilities to HTML Applications(HTA).

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 20/25

About PHP

Rasmus Lerdorf  — Software Engineer, Apache team member,

and international man of mystery  — is the creator and original driving force

behind PHP. PHP is the Web development language written by and for Web

developers.PHP stands for  Hypertext Preprocessor. The product was

originally named Personal Home Page Tools.  But as it expanded in scope, a

new and more appropriate name was selected by community vote. PHP is

currently in its fifth major rewrite, called PHP5 or just plain PHP.

PHP is a server-side scripting language, which can be embedded in

HTML or used as a standalone binary. Proprietary products in this niche are

Microsoft’s Active Server Pages, Macromedia’s ColdFusion, and Sun’s Java

Server Pages. Some tech journalists used to call PHP ―the open source ASP‖

because its functionality is similar to that of the Microsoft product — although

this formulation was misleading, as PHP ASP was developed before. Server-side

scripting is a collection of super-HTML tags or small programs that run inside

 your Web pages — except on the server side, before they get sent to the browser.

For example, you can use PHP to add common headers and footers to all the

pages on a site or to store form-submitted data in a database.

PHP is an official module of Apache HTTP Server, the market-

leading free Web server that runs about 67 percent of the World Wide Web.

 This means that the PHP scripting engine can be built into the Web server

itself, leading to faster processing, more efficient memory allocation, and

greatly simplified maintenance. Like Apache Server, PHP is fully cross-

platform, meaning it runs native on several flavors of UNIX, as well as on

Windows and now on Mac OS X. All projects under the aegis of the Apache

Software Foundation — including PHP — are open source software.

Features of PHP

  Cost is low

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 21/25

  PHP is an open source software

  PHP is easy to learn

  PHP is embedded within HTML 

 The HTML- Embeddedness of PHP has many helpful consequences:

  PHP can quickly be added to code produced by WYSIWYG

editors.

  PHP lends itself to a division of labor between designers

and script writers.

  Every line of HTML does not need to be rewritten in a

programming language.

  PHP can reduce labor costs and increase efficiency due to

its shallow learning curve and ease of use.

  PHP has Cross-platform compatibility 

  PHP is not tag-based

  PHP is stable means

   The software doesn’t change radically and

incompatibly from release to release.

   The server doesn’t need to be rebooted often 

  PHP is much faster for almost every use than CGI scripts

  PHP makes it easy to communicate with other programs and

protocols

  PHP is fast becoming one of the most popular choices for so-called

two-tier development

  PHP is developed and supported in a collaborative fashion by a

worldwide community of users

Hyper Text Transfer Protocol (HTTP)

HTTP is the protocol ―spoken‖ by Web servers. Client programs that can

speak HTTP, are known as browsers, are used by the people on the Internet to

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 22/25

connect to HTTP servers. These servers provide access to distributed hyper

linked documents, applications and databases. HTTP is a stateless, object

oriented application level protocol that has been in the existence since the early 

days of the WWW. NSCA HTTP is a HTTP/1.0 compliant Web Server and is

credited with being one of the first HTTP servers available. It supports multiple

schemes of authentication.

Html  – The Frame Work For WebPages

Hypertext Markup Language (HTML) is the text markup language on the

World Wide Web. The markup commands applied to the web based content tell

the browser software the structure of document and, when appropriate, how

we want the content to be displayed. It has a well defined syntax and HTML documents have a formal structure. With the introduction of scripting

languages such as JavaScript, the concept of dynamic HTML (DHTML) is

becoming more and more popular and is used to create highly interactive web

pages. When browser reads a document that has HTML markup in it, it

determines how to render it on screen by considering the html elements

embedded within the document. 

DATABASE MANAGEMENT SYSTEM (DBMS)

A Database is defined as a collection of interrelated data, stored

together without necessary redundancy to serve multiple applications. It can be

defined as a large, interrelated, shared pool of information in a form that is

suitable for handling by a computer. The data are stored so that they are

independent of programs that use the data. A common and controlled method

is followed for manipulating the data in the database.

About MySQL 

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 23/25

  MySQL is a fast, easy-to-use RDBMS used being used for many 

small and big businesses. MySQL is developed, marketed, and supported by 

MySQL AB, which is a Swedish company. MySQL (pronounced My Ess Q El) is

an open source, SQL Relational Database Management System (RDBMS) that

is free for many uses (more detail on that later). Early in its history, MySQL 

occasionally faced opposition due to its lack of support for some core SQL 

constructs such as sub selects and foreign keys. Ultimately, however, MySQL 

found a broad, enthusiastic user base for its liberal licensing terms, perky 

performance, and ease of use. Its acceptance was aided in part by the wide

variety of other technologies such as PHP, Java, Perl, Python, and the like that

have encouraged its use through stable, well-documented modules and

Extensions. MySQL has not failed to reward the loyalty of these users with the

addition of both sub selects and foreign keys.

A database system is an overall collection of different database

software components and database containing the parts viz. Database

application programs, front-end components, Database Management Systems,

and Databases.

A database system must provide following features,

  A variety of user interfaces.

  Physical data independence.

  Logical data independence.

  Query optimization.

  Data integrity.

  Concurrency control.

  Backup and recovery.

  Security and authorization.

MySQL is becoming so popular because of many good reasons.

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 24/25

  MySQL is released under an open-source license. So you have nothing

to pay to use it.

  MySQL is a very powerful program in its own right. It handles a large

subset of the functionality of the most expensive and powerfuldatabase packages.

  MySQL uses a standard form of the well-known SQL data language.

  MySQL works on many operating systems and with many languages

including PHP, PERL, C, C++, JAVA etc.

  MySQL works very quickly and works well even with large data sets.

  MySQL is very friendly to PHP, the most appreciated language for web

development.

  MySQL supports large databases, up to 50 million rows or more in a

table. The default file size limit for a table is 4GB, but you can

increase this (if your operating system can handle it) to a theoretical

limit of 8 million terabytes (TB).

  MySQL is customizable. The open source GPL license allows

programmers to modify the MySQL software to fit their own specificenvironments.

7/27/2019 Android document

http://slidepdf.com/reader/full/android-document 25/25