Thursday, August 18, 2022

Introduction to Mobile Computing and Android

Introduction to Mobile Computing:-

Mobile Computing is a technology that allows transmission of data, voice and video via a computer or any other wireless enabled device without having to be connected to a fixed physical link. The main concept involves −

Mobile communication

Mobile hardware

Mobile software

Mobile communication

The mobile communication refers to the infrastructure put in place to ensure that seamless and reliable communication goes on. These would include devices such as protocols, services, bandwidth, and portals necessary to facilitate and support the stated services. The data format is also defined at this stage. This ensures that there is no collision with other existing systems which offer the same service.

Since the media is unguided/unbounded, the overlaying infrastructure is basically radio wave-oriented. That is, the signals are carried over the air to intended devices that are capable of receiving and sending similar kinds of signals.

Mobile Hardware

Mobile hardware includes mobile devices or device components that receive or access the service of mobility. They would range from portable laptops, smart phones, tablet Pc's, Personal Digital Assistants.

These devices will have a receptor medium that is capable of sending and receiving signals. These devices are configured to operate in full- duplex, whereby they are capable of sending and receiving signals at the same time. They don't have to wait until one device has finished communicating for the other device to initiate communications.

Mobile software

Mobile software is the actual program that runs on the mobile hardware. It deals with the characteristics and requirements of mobile applications. This is the engine of the mobile device. In other terms, it is the operating system of the appliance. It's the essential component that operates the mobile device.

Since portability is the main factor, this type of computing ensures that users are not tied or pinned to a single physical location, but are able to operate from anywhere. It incorporates all aspects of wireless communications.


Applications of Mobile Computing

1. For Estate Agents: Estate agents can work either at home or out in the field. With mobile computers they can be more productive. They can obtain current real estate information by accessing multiple listing services, which they can do from home, office or car when out with clients. They can provide clients with immediate feedback regarding specific homes or neighborhoods, and with faster loan approvals, since applications can be submitted on the spot. Therefore, mobile computers allow them to devote more time to clients

2. Emergency Services: Ability to receive information on the move is vital where the emergency services are involved. Information regarding the address, type and other details of an incident can be dispatched quickly, via a Cellular Digital Packet Data (CDPD) system using mobile computers, to one or several appropriate mobile units, which are in the vicinity of the incident. 

3. In courts: Defense counsels can take mobile computers in court. When the opposing counsel references a case which they are not familiar, they can use the computer to get direct, real-time access to on-line legal database services, where they can gather information on the case and related precedents. Therefore mobile computers allow immediate access to a wealth of information, making people better informed and prepared.

 4. In companies: Managers can use mobile computers in, say, critical presentations to major customers. They can access the latest market share information. At a small recess, they can revise the presentation to take advantage of this information. They can communicate with the office about possible new offers and call meetings for discussing responds to the new proposals. Therefore, mobile computers can leverage competitive advantages.

 5. Credit Card Verification: At Point of Sale (POS) terminals in shops and supermarkets, when customers use credit cards for transactions, the intercommunication is required between the bank central computer and the POS terminal, in order to effect verification of the card usage, can take place quickly and securely over cellular channels using a mobile computer unit. This can speed up the transaction process and relieve congestion at the POS terminals

Limitations of Mobile Computing:-

1. Insufficient Bandwidth: Mobile Internet access is generally slower than direct cable connections, using technologies such as GPRS and EDGE, and more recently 3G networks. These networks are usually available within range of commercial cell phone towers. Higher speed wireless LANs are inexpensive but have very limited range.

 2. Security Standards: When working mobile, one is dependent on public networks, requiring careful use of Virtual Private Network (VPN). Security is a major concern while concerning the mobile computing standards on the fleet. One can easily attack the VPN through a huge number of networks interconnected through the line. 

3. Power consumption: When a power outlet or portable generator is not available, mobile computers must rely entirely on battery power. Combined with the compact size of many mobile devices, this often means unusually expensive batteries must be used to obtain the necessary battery life.In such a way that it saves the power or increases the battery life.  

4. Transmission interferences: Weather, terrain, and the range from the nearest signal point can all interfere with signal reception. Reception in tunnels, some buildings, and rural areas is often poor.

 5. Potential health hazards: People who use mobile devices while driving are often distracted from driving are thus assumed more likely to be involved in traffic accidents. Cell phones may interfere with sensitive medical devices. There are allegations that cell phone signals may cause health problems.

 6. Human interface with device: Screens and keyboards tend to be small, which may make them hard to use. Alternate input methods such as speech or handwriting recognition require training.


Architecture of Mobile Computing:-

             

3-tier architecture is an application program that is organized into three major parts, comprising of:

The data access layer tier at the bottom,

The application tier (business logic) in the middle and

The client tier (presentation) at the top.

Each tier is distributed to a different place or places in a network. These tiers do not necessarily correspond to physical locations on various computers on a network, but rather to logical layers of the application.

1. Presentation Layer (UI):

This layer presents data to the user and optionally permits data manipulation and data entry, also this layer requests the data form Business layer.

This layer accomplished through use of Dynamic HTML and client-side data sources and data cursors.

2. Business Logic Layer:

The business logic acts as the server for client requests from workstations. It acts according Business rules fetch or insert data through the Data Layer.

In turn, it determines what data is needed (and where it is located) and acts as a client in relation to a third tier of programming that might be located on a local or mainframe computer.

Because these middle-tier components are not tied to a specific client, they can be used by all applications and can be moved to different locations, as response time and other rules require.

3. Data Access Layer:

The third tier of the 3-tier system is made up of the DBMS that provides all the data for the above two layers.

This is the actual DBMS access layer.

Avoiding dependencies on the storage mechanisms allows for updates or changes without the application tier clients being affected by or even aware of the change.


Characteristics of Mobile Communication:-

Mobile computing has changed the complete landscape of our day-to-day life. Following are the major advantages of Mobile Computing −

Location Flexibility:-

This has enabled users to work from anywhere as long as there is a connection established. A user can work without being in a fixed position. Their mobility ensures that they are able to carry out numerous tasks at the same time and perform their stated jobs.

Saves Time:-

The time consumed or wasted while travelling from different locations or to the office and back, has been slashed. One can now access all the important documents and files over a secure channel or portal and work as if they were on their computer. It has enhanced telecommuting in many companies. It has also reduced unnecessary incurred expenses.

Enhanced Productivity:-

Users can work efficiently and effectively from whichever location they find comfortable. This in turn enhances their productivity level.

Ease of Research:-

Research has been made easier, since users earlier were required to go to the field and search for facts and feed them back into the system. It has also made it easier for field officers and researchers to collect and feed data from wherever they are without making unnecessary trips to and from the office to the field.

Entertainment:-

Video and audio recordings can now be streamed on-the-go using mobile computing. It's easy to access a wide variety of movies, educational and informative material. With the improvement and availability of high speed data connections at considerable cost, one is able to get all the entertainment they want as they browse the internet for streamed data. One is able to watch news, movies, and documentaries among other entertainment offers over the internet. This was not possible before mobile computing dawned on the computing world.

Streamlining of Business Processes:-

Business processes are now easily available through secured connections. Looking into security issues, adequate measures have been put in place to ensure authentication and authorization of the user accessing the services. Some business functions can be run over secure links and sharing of information between business partners can also take place.

Meetings, seminars and other informative services can be conducted using video and voice conferencing. Travel time and expenditure is also considerably reduced.




Cellular Network:-

A cellular network is a radio network distributed over land through cells where each cell includes a fixed location transceiver known as base station. These cells together provide radio coverage over larger geographical areas. User equipment (UE), such as mobile phones, is therefore able to communicate even if the equipments   moving through cells during transmission. 

Cellular networks give subscribers advanced features over alternative solutions, including increased capacity, small battery power usage, a larger geographical coverage area and reduced interference from other signals. Popular cellular technologies include the Global System for Mobile Communication, general packet radio service, 3GSM and code division multiple access.

             

Location management:-

Location management enables the networks to track the locations of mobile nodes. Location management has two major sub-tasks: (i) location registration, and (ii) call delivery or paging. 

In location registration procedure, the mobile node periodically sends specific signals to inform the network of its current location so that the location database is kept updated. The call delivery procedure is invoked after the completion of the location registration. Based on the information that has been registered in the network during the location registration, the call delivery procedure queries the network about the exact location of the mobile device so that a call may be delivered successfully. 

The design of a location management scheme must address the following issues: (i) minimization of signaling overhead and latency in the service delivery, (ii) meeting the guaranteed quality of service (QoS) of applications, and (iii) in a fully overlapping area where several wireless networks co-exist, an efficient and robust algorithm must be designed so as to select the network through which a mobile device should perform registration, deciding on where and how frequently the location information should be stored, and how to determine the exact location of a mobile device within a specific time frame.




Handoffs noise and its effects on mobile

Handoff management is the process by which a mobile node keeps its connection active when it moves from one access point to another. There are three stages in a handoff process. 

First, the initiation of handoff is triggered by either the mobile device, or a network agent, or the changing network conditions. 

The second stage is for a new connection generation, where the network must find new resources for the handoff connection and perform any additional routing operations.

 Finally, data-flow control needs to maintain the delivery of the data from the old connection path to the new connection path according to the agreed-upon QoS guarantees. Depending on the movement of the mobile device, it may undergo various types of handoff. 

In a broad sense, handoffs may be of two types: 

(i) intra-system handoff (horizontal handoff) 

 (ii) Inter-system handoff (vertical handoff). 


Reasons:-

when the phone is moving away from the area covered by one cell and entering the area covered by another cell the call is transferred to the second cell in order to avoid call termination when the phone gets outside the range of the first cell;

when the capacity for connecting new calls of a given cell is used up and an existing or new call from a phone, which is located in an area overlapped by another cell, is transferred to that cell in order to free-up some capacity in the first cell for other users, who can only be connected to that cell;

in non-CDMA networks when the channel used by the phone becomes interfered by another phone using the same channel in a different cell, the call is transferred to a different channel in the same cell or to a different channel in another cell in order to avoid the interference.












1.3 Understanding GSM and CDMA

 The cellular mobile service is being used everywhere in the world today. GSM and CDMA are two dominant technologies in the world of mobile communication. These two technologies differ the way in which the calls and data transfer takes place over a network and mobile.

What is GSM?

GSM stands for Global System for Mobile Communication. It is a digital mobile telephony system used for trans-receiving of the data and voice signals and is a second generation standard for mobile networks.

The GSM standard operates on three different carrier frequencies 900MHz, 1800MHz and 1900MHz. 900MHz band is used for original GSM system and the 1800MHz band is added to support the increasing number of customers. The 1900 MHz frequency band is used mainly in the United States.

A GSM phone is a digital cellular technology used for transmitting mobile voice and data services. GSM makes use of narrowband Time Division Multiple Access (TDMA) technique for transmitting signals.

                             

Time Division Multiple Access (TDMA)

The GSM standard has led to the evolution of the wireless services like GPRS (General Packet Radio Service) UMTS (Universal Mobile Radio System) and EDGE (Enhanced Data Rates for GSM Evolution). Its users were the first to take the advantage of Short Message System (SMS).

A GSM system makes use of cells to provide wireless communication to the subscribers. The GSM mobiles are identified by using Subscriber Identity Module (SIM). This is a removable smart card which contains the information of the subscriber. This SIM card allows the customer to switch from one mobile to another.

Advantages of GSM

GSM provides improved spectrum efficiency

Low-cost mobile set and base stations

High-quality speech

International roaming

Compatibility with Integrated Services Digital Network (ISDN)

What is CDMA?

CDMA stands for Code Division Multiple Access. It is used in cellular communication similar to GSM and is a second generation and third generation standard for mobile networks. It is the most secure mode of communication because of its spread spectrum property.

CDMA is a form of multiplexing where a number of signals occupy a single transmission channel and optimizing the use of available bandwidth. This technology is used in ultra high frequency (UHF) cellular systems having a band ranging from 800MHz to 1.9GHz.

                    

Code Division Multiple Access (CDMA)

CDMA uses to analog to digital conversion in combination with spread spectrum technology. First, the audio signal is digitized to binary elements.

The frequency of the transmitted signal is then made to change according to the code. Thus, it can be intercepted only by a receiver whose frequency is programmed with the same code.

The original CDMA standard called CDMA One offers a transmission speed of up to 14.4 kbps in its single channel form and up to 115kbps in an eight-channel form. CDMA2000 and wideband CDMA deliver the data many times faster.

Advantages

Efficient utilization of fixed frequency spectrum.

Flexible allocation of resources

Multipath fading may be substantially reduced due to large signal bandwidth.

No limit on a number of users.

Impossible to decipher the code sent and better signal quality.

Soft hand-off minimizes signal breakup as the handset passes from one cell to another.

CDMA is compatible with other cellular technologies, thus allowing a national wide roaming.

Differences between GSM and CDMA

1. The GSM is based on wedge spectrum called a carrier. The CDMA is based on spread spectrum technology.

2. This carrier is divided into time slots, and each user is assigned a different time slot. Thus, until the ongoing call is finished, no other user can access the same slot. CDMA technology allows each user to transmit over the entire frequency spectrum all the time.

3. Less security compared to CDMA technology. More security is provided in CDMA technology.

4. Signals can be detected as the GSM signals are concentrated in the narrow bandwidth. The signals cannot be detected easily in CDMA.

5. The GSM network operates in the frequency spectrum of 850MHz and 1900MHz. The CDMA network operates in the frequency spectrum of 850MHz and 1900MHz.

6. GSM is used over 80% of the world’s mobile network. CDMA is exclusively used in the United States, Canada and Japan.

7. GSM uses EDGE data transfer technology. CDMA has faster data transfer as EVDO ready data transfer technology is used.


1.4 Overview of Android

     Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008.

On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance.

The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2.

Why Android?

             

Features of Android

Android is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below −

Sr.No. Feature & Description

1 Beautiful UI

Android OS basic screen provides a beautiful and intuitive user interface.

2 Connectivity

GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.

3 Storage

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

4 Media support

H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

5 Messaging

SMS and MMS

6 Web browser

Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine supporting HTML5 and CSS3.

7 Multi-touch

Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero.

8 Multi-tasking

User can jump from one task to another and same time various application can run simultaneously.

9 Resizable widgets

Widgets are resizable, so users can expand them to show more content or shrink them to save space.

10 Multi-Language

Supports single direction and bi-directional text.

11 GCM

Google Cloud Messaging (GCM) is a service that lets developers send short message data to their users on Android devices, without needing a proprietary sync solution.

12 Wi-Fi Direct

A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection.

13 Android Beam

A popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together.

Categories of Android applications

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

                     

History of Android

The code names of android ranges from A to N currently, such as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat, Lollipop and Marshmallow. Let's understand the android history in a sequence.

         


1.8.1 Android architecture


Android architecture is a software stack of components to support a mobile device needs. Android software stack contains a Linux Kernel, collection of c/c++ libraries which is exposed through an application framework services, runtime and application.

 

Following are main components of android architecture those are

1. Applications

2. Android Framework

3. Android Runtime

4. Platform Libraries

5. Linux Kernel

In these components Linux Kernel is the main component in android to provide its operating system functions to mobile and Dalvik Virutal Machine (DVM) which is responsible for running a mobile application.

 

Following is the pictorial representation of android architecture with different components.

 

        

Applications

The top layer of android architecture is Applications. The native and third party applications like contacts, email, music, gallery, clock, games, etc. whatever we will built those will be installed on this layer only.

 

The application layer runs within the Android run time using the classes and services made available from the application framework. 

Application Framework

The Application Framework provides the classes used to create an Android applications. It also provides a generic abstraction for hardware access and manages the user interface and application resources. It basically provides the services through which we can create the particular class and make that class helpful for the Applications creation.

 

The application framework includes services like telephony service, location services, notification manager, NFC service, view system, etc. which we can use for application development as per our requirements.

Android Runtime

Android Runtime environment is an important part of Android rather than an internal part and it contains a components like core libraries and the Dalvik virtual machine. The Android run time is the engine that powers our applications along with the libraries and it forms the basis for the application framework.

 

Dalvik Virtual Machine (DVM) is a register-based virtual machine like Java Virtual Machine (JVM). It is specially designed and optimized for android to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management.

 

The core libraries in android runtime will enable us to implement an android applications using standard JAVA programming language.

Platform Libraries

The Platform Libraries includes various C/C++ core libraries and Java based libraries such as SSL, libc, Graphics, SQLite, Webkit, Media, Surface Manger, OpenGL etc. to provide a support for android development.

 

Following are the summary details of some core android libraries available for android development. 

Media library for playing and recording an audio and video formats

The Surface manager library to provide a display management

SGL and OpenGL Graphics libraries for 2D and 3D graphics

SQLite is for database support and FreeType for font support

Web-Kit for web browser support and SSL for Internet security.

Linux Kernel

Linux Kernel is a bottom layer and heart of the android architecture. It manage all the drivers such as display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are mainly required for the android device during the runtime.

 

The Linux Kernel will provides an abstraction layer between the device hardware and the remainder of the stack. It is responsible for memory management, power management, device management, resource access, etc.


1.8.2 Android Libraries

This category encompasses those Java-based libraries that are specific to Android development. Examples of libraries in this category include the application framework libraries in addition to those that facilitate user interface building, graphics drawing and database access. A summary of some key core Android libraries available to the Android developer is as follows −

android.app − Provides access to the application model and is the cornerstone of all Android applications.

android.content − Facilitates content access, publishing and messaging between applications and application components.

android.database − Used to access data published by content providers and includes SQLite database management classes.

android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.

android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.

android.text − Used to render and manipulate text on a device display.

android.view − The fundamental building blocks of application user interfaces.

android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.

android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.

Having covered the Java-based core libraries in the Android runtime, it is now time to turn our attention to the C/C++ based libraries contained in this layer of the Android software stack







No comments:

Post a Comment