Introduction to Mobile Computing PDF
Document Details
Uploaded by TopnotchDubnium
Tags
Summary
This document provides an introduction to mobile computing, including various types of mobile devices, their components, and application development. It also touches on the different categories of applications based on architecture and platform.
Full Transcript
Introduction to Mobile Computing Mobile Computing Mobile computing is a generic term that refers to a variety of devices that allow people to access data and information from wherever they are. Mobile computing transports data, voice, and video over a network via a mobile device. Driven by technolo...
Introduction to Mobile Computing Mobile Computing Mobile computing is a generic term that refers to a variety of devices that allow people to access data and information from wherever they are. Mobile computing transports data, voice, and video over a network via a mobile device. Driven by technology and vision ◦ mobile computing platforms ◦ device miniaturization ◦ wireless communication technology ◦ global infrastructure SMART HELMET: Real-Time Crash Detection with Emergency Notification, Tracker and Anti-Theft System Using IoT Cloud Based Technology Smart Devices A smart device is a device that is digital, active, computer networked, is user reconfigurable and that can operate to some extent autonomously. A smart device is a ubiquitous computing device: a device that exhibits some properties of ubiquitous computing including artificial intelligence. Mark Weiser categorized ubiquitous devices: ◦ Tabs: accompanied or wearable centimeter sized devices, e.g., smart phones, smart cards ◦ Pads: hand-held decimeter-sized devices, e.g., laptops ◦ Boards: meter sized interactive display devices, e.g., horizontal surface computers and vertical smart boards. 10 Smart Devices at Home / Office Smart Devices on Road In-body Smart devices In-body smart devices ◦ Sensors/monitoring devices ◦ Drug delivery systems ◦ Medical robots ◦ Neural implants Mobile Programming Projects Habitat Monitoring Smart Phone – Overview A smartphone is a high-end mobile phone Feature phone vs. Smartphone Combines the functions of Feature phone ◦ mobile phone, personal digital proprietary firmware & limited assistant (PDA) platforms ◦ portable media players, camera Smartphone phones open and complete mobile operating system ◦ high-resolution touchscreens tightly integrate with the user interface ◦ web browsers, GPS navigation and phone features ◦ Wi-Fi and mobile broadband access, relies on a more powerful application etc. programming interface (API) 15 Mobile Application Development is the process to making software for smartphones and digital assistants, most commonly for Android and iOS. Smart Phones – Statistics Smart Phone – Pros Always with the user Increasingly powerful devices Typically GPS capable Typically have accelerometer Designed for communication 2+ types of wireless connections Many apps are free or low-cost Smart Phones – Cons Limited battery life Limited processor speed Limited RAM Limited, unreliable, and slow network access Limited screen size Limited permanent storage capacity Limited or awkward input ◦ (none great: soft keyboard, phone keypad, touch screen, stylus, speech) Inconsistent platforms across devices High costs associated with data transfer Components of Mobile Computing 1. Mobile Communication Refers to form of communication between sender and receiver not dependent on physical connection only but who may move from one physical location to another during communication. 2. Mobile Hardware Includes mobile devices or device components that receive or access the service mobility. 3. Mobile Software A mobile software, most commonly referred to as an App, is a type of application software designed to run on a mobile device Introduction to Application An application is software that is used to accomplish specific requirements of user ◦ read PDF files ◦ creating documents ◦ gaming applications ◦ applications to play audio and video files ◦ applications that processes transactions Application Development is the process of creating a computer program or a set of programs to perform the different tasks that a business requires. Application Categories On the basis of Architecture Single-tier Architecture Two-tier Architecture Three-tier Architecture Web-based application Client-server application Client – Presentation Layer Stand-alone application Client handles presentation and Business logic layer Application Application layer Server – Data Layer MP3 player or MSword Server – Data Layer Application Categories On the basis of Platforms Desktop applications – applications used on personal computers Web applications – applications that are hosted on the web server. Needs a browser to run the application Mobile applications – applications developed for mobile devices Cloud applications - these applications are the combination of desktop and Web applications (ex. Google docs) Application Types Foreground ◦ Useful when being used. ◦ Suspended otherwise Background ◦ Apart from when being configured, spends most of lifetime hidden (e.g., call screening app) Intermittent ◦ Some interaction but mostly in the background (e.g., media player) Widget ◦ Home screen status update 25 Application Categories On the basis of Devices Native – device specific applications Device agnostic – application is designed for a wide range of devices. There is no need to develop different versions of application for different devices. Mobile Applications What are they? ◦ Any application software that is developed for small low-power handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones. Users on mobile phone’s ◦ Typically check the news, weather, email, or their social networks ◦ Often have a choice between the mobile web version or a specially-created mobile app. Mobile App Types ◦ Web apps: run in a web browser ◦ HTML, JavaScript, Flash, server-side components, etc. ◦ Native: compiled binaries for the device ◦ Not cross-platform, but more interesting options 27 Mobile Application Development Web Apps Vs Native Apps Web apps are developed using HTML5, Javascript and others. The application is influenced by the web style of appearance. ◦ Web application requires Internet connectivity if the application is run from a webserver and a browser. Native Apps are specific to the operating system of the mobile and development is made using Objective-C or Java or others. ◦ Developed specifically for one platform. It can be installed through an application store (such as Google Google Play Store or Apple’s App Store 28 Native Development Environments Options ◦ Java ME ◦.NET Compact Framework (C++, C#, VB.NET) for ◦ Windows Mobile ◦ Qualcomm’s BREW (C or C++) ◦ Symbian (C++) ◦ BlackBerry (Java) ◦ Android (Java) ◦ iPhone (Objective-C) ◦ Flutter ◦ V4A 29 xCode IDE & iPhone Emulator Emulator mimics device software hardware and OS. Eclipse and Android Emulator 32 Android Operating System Android Android, Inc. founded in Palo Alto, California in October 2003 Google acquired Android Inc. in August 2005 Developed a mobile device platform powered by the Linux kernel Google marketed the platform to handset makers and carriers on the premise of providing a flexible, upgradable system On November 2007, the Open Handset Alliance, a consortium of several companies (e.g., Broadcom, Google, HTC, Intel, etc. unveiled itself). The goal is to develop open standards for mobile devices. Open Handset Alliance unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6 Android OS (open source) released in October 2008 Why Android Simple and powerful SDK Android SDK makes use of JDK (Java SE Development Kit) No licensing fees Excellent documentation, and a thriving developer community From commercial perspective Requires no certification for becoming an Android developer Provides the Android Market for distribution and monetization of your application Has no approval process for application distribution Gives you total control over your brand and access to the user’s home screen 36 Android – Features & Specifications Platform is adaptable to larger, VGA, 2D graphics library, 3D OpenGL graphics library Storage - SQLite, a lightweight relational database Connectivity - supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. Messaging – SMS, MMS, threaded text messaging, Push Messaging service. Multiple language support Web browser - based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. Java support – no Java Virtual Machine, Dalvik executables and run on Dalvik 39 Android – Features & Specifications Media support - audio/video/still media formats: WebM, H.263, H.264, MPEG-4 SP, WAV, JPEG, PNG, GIF, BMP, etc. Streaming media support - RTP/RTSP streaming (3GPP PSS, ISMA), HTML5 tag, Adobe Flash Streaming (RTMP), HTTP Dynamic Streaming, Apple HTTP Live Streaming Additional hardware support - video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits and accelerated 3D graphics Multi-touch Bluetooth - supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) 40 Android – Features & Specifications Video calling – no native video calling, but some handsets have a customized version of the operating system that supports it. Video calling through Google Talk is available in Android 2.3.4 and later. Skype 2.1 offers video calling in Android 2.3, including front camera support. Multitasking Voice based features - Google search through voice and voice actions for calling, texting, navigation, etc. Tethering - Supports sharing of Internet connections as a wired/wireless hotspot Google describes Android as: “The first truly open and comprehensive platform for mobile devices, all of the software to run a mobile phone but without the proprietary obstacles that have hindered mobile innovation.” 41 Android Architecture 42 Android SDK Features No licensing, distribution, or development fees Wi-Fi hardware access GSM, EDGE, and 3G networks for telephony or data transfer, allowing you to make or receive calls or SMS messages, or to send and retrieve data across networks Comprehensive APIs for location-based services such as GPS Full multimedia hardware control including playback and recording using the camera and microphone APIs for accelerometer and compass hardware 44 Android SDK Features IPC message passing Shared data stores An integrated open source WebKit-based browser Full support for app that integrate Map controls as part of their user interface Peer-to-peer (P2P) support using Google Talk Mobile-optimized hardware-accelerated graphics including a path-based 2D graphics library and support for 3D graphics using OpenGL ES Media libraries for playing and recording a variety of audio/video or image formats An application framework that encourages reuse of application components and the replacement of native applications Android Development “Open philosophy” Application framework that encourages reuse of app components Access to (much) hardware Release and fix mentality (or it seems like it, sometimes) Background services Shared data and inter-process communication 46 Android Development Notifications (via UI) Intents Content providers (managed access to app private data) All applications are created equal Native Development Kit (NDK) (C++ tinkering under the hood) OS optimization of memory and process management Android Development Expect... ◦ Limited processing power ◦ Limited RAM ◦ Limited permanent storage capacity ◦ Small screen and low resolution ◦ High cost of data transfer ◦ Slow data transfer rates with high latency ◦ Unreliable data connections Application framework that encourages reuse of application components 48 Android Development “Screens” are Activities that are chained with lightweight exchange of data between them OS can handle stack of Activities if you want it to (e.g., back) OS Manages process lifetime (app assassin) You MUST ◦ Ensure that your app is ready for swift death ◦ Yet, it must remain response and/or restart in the background ◦ Must come to the foreground quickly 49 END OF PRESENTATION