You are on page 1of 22

Mobile Device Development

Anatomy of a Mobile Device

Mobile Device Development UFCFX5-15-3


Agenda

Smartphone hardware architecture


CPU and GPU

Memory & storage

Displays

Connectivity & Sensors

History of Android operating system

Android operating system architecture

History of iOS operating system

iOS operating system architecture

Mobile Device Development UFCFX5-15-3


Smartphone hardware
architecture
Display Camera µphone sensors

Main Memory
GPU CPU Sim card
Transmitter/
receiver
Operating System
Operating System and
and drivers
Baseband radio interface
Runtime Middleware
Modem processors
Application software

Mobile Device Development UFCFX5-15-3


Central Processing Unit (CPU)
• ARM architecture (majority)
• System-on-a-Chip
• 32-bit or 64-bit.
• Low power consumption
• Multi-core

Mobile Device Development UFCFX5-15-3


Graphics Processing Unit (GPU)
• System-on-a-Chip
• Low power consumption
• Accelerate 3D rendering
• Media decoding

Mobile Device Development UFCFX5-15-3


Memory and Storages
 RAM (Random Access Memory)
 Very fast
 Lose contents when power-off
 Internal storage and ROM
 Store the operating system and critical files
 Store user and app data
 Fast access
 Removable storage
 Supported by Android only
 Store user and app data
 Not always available

Mobile Device Development UFCFX5-15-3


Display
 Type one: LCD
 Cheap to produce
 Accurate color reproduction
 Need backlight
 Limited viewing angles
 Type two: AMOLED
 Actively emits colors
 Vibrant colors and high contrast
 Excellent viewing angles
 Shorter lifespan than LCDs
 Inaccurate color reproduction

Mobile Device Development UFCFX5-15-3


Connectivity & Sensors
 Connectivity
 Wi-Fi (can be used as Wi-Fi hotspot)
 3G or 4G data service (3G speed: <200K ; 4G speed <1000K)
 Bluetooth (range from 1m to 100m)
 Near field communication (NFC) (range < 20 cm)
 Sensors
 GPS: detect outdoor location
 Accelerometers: detect screen orientation, movements
 Gyroscope : game controls
 proximity sensor: detect objects nearby
 Temperature, heart beat and mores

Mobile Device Development UFCFX5-15-3


First version of android
 Initial release: Oct. 2008
 NO on-screen keyboard
 NO multitouch capability
 NO paid apps
 The pull-down notification window
 Deep, rich Gmail integration
 The Android Market
 Home screen widgets

Mobile Device Development UFCFX5-15-3


Early versions of android
 Version 1.5 cupcake and Version 1.6 Donut
 An on-screen keyboard
 Extensible widgets
 Video capture and playback
 Version 2.1 – Version 2.3
 multitouch capability
 Support for front-facing cameras
 Screen PIN protection
 Version 3.x
 Targeted exclusively at tablets
 The death of physical buttons
 Improved multitasking

Mobile Device Development UFCFX5-15-3


Current versions of android
 Version 4.0 Ice Cream Sandwich
 NFC support
 Face unlock
 Data usage analysis
 Version 4.1 to 4.3
 Support panoramic image
 Predictive text
 support OpenGL ES 3.0
 Version 4.4 KitKat
 Full screen apps (Immerse yourself)
 Google Cloud Print
 Improved Quickoffice app

Mobile Device Development UFCFX5-15-3


Current versions of android
 Version 4.0 Ice Cream Sandwich
 NFC support
 Face unlock
 Data usage analysis
 Version 4.1 to 4.3
 Support panoramic image
 Predictive text
 support OpenGL ES 3.0
 Version 4.4 KitKat
 Full screen apps (Immerse yourself)
 Google Cloud Print
 Improved Quickoffice app

Mobile Device Development UFCFX5-15-3


Android Architecture

Mobile Device Development UFCFX5-15-3


Application Framework
 Activity Manager android.activity
Manages the activity life cycle of applications
 Content Providers android.provider
Manage the data sharing between applications
 Telephony Manager android.telephony
Manages all voice calls.
 Location Manager android.location
Location management, using GPS or cell tower
 Resource Manager
Manage the various types of resources we use in our App

Mobile Device Development UFCFX5-15-3


Libriaries
 OpenGL ES android.opengl
The OpenGL ES is a 3D graphics library.
 SQLite android.database.sqlite
Contains the SQLite database management classes
 Media Framework
The media framework contains all of the codecs that are
required for multimedia experience.
 FreeType: used to render the fonts
 SSL: used for internet security
 WebKit: open source browser engine

Mobile Device Development UFCFX5-15-3


Linux Kernal
 Based on Linux 2.6 kernel but Android is not Linux.
 Does not include the full set of standard Linux utilities
 No native windowing system
 Used as a hardware abstraction layer
 A lot works in power management
 Open Source: provide libraries to modify hardware
drivers
 It is possible to make your own version of android

Mobile Device Development UFCFX5-15-3


Early versions of iOS
 Before iOS: OS X
 Based on Mach Kernel (a type of UNIX system)
 First version: iPhone OS (OS X for iPhone) 2007
 Didn't support 3G
 Didn't support multitasking
 Didn't support 3rd party apps
 Couldn't copy or paste text
 Apple focused on user experiences
 Have a pinch-to-zoom function
 iPhone OS 2.0
 The App Store
 The development SDK
Mobile Device Development UFCFX5-15-3
Current versions of iOS
 iOS7
 Big changes in UI
 Add a Control Center (copied from Android)
 Add AirDrop for sharing
 Free iWork (document editing tools)
 Changed a lot of APIs
 Touch ID
 iOS 8
 iCloud Drive
 HealthKit
 HomeKit

Mobile Device Development UFCFX5-15-3


iOS Architecture

Cocoa Touch: UIKit, Game Kit, Map Kit, and iAd

Media: Core Graphics, Core Text, OpenGL ES, Core


Animation, AVFoundation, Core Audio, and video
playback

Core Services: memory management, hardware


services such as GPS, compass, accelerometer, …

Core OS: kernel, file system, network, security, power


management, device drivers

Mobile Device Development UFCFX5-15-3


UIKit Architecture

Mobile Device Development UFCFX5-15-3


iOS Development Resources
 Official iOS development resource
 https://developer.apple.com/
 Example projects
 Tutorials

 Technical questions
 Get answer from Google
 Watch for stackoverflow.com for answers

 Example projects in categories


http://code4app.net/

Mobile Device Development UFCFX5-15-3


Summary

• Smartphone is a versatile device. It is a powerful and portable computer


with a lot sensors.
• Android operation system is the most popular OS on smartphone. Java is
the main language used for app development. Android OS is open-source
and it can be customized.
• iOS operating system is the second most popular OS. Object-C is the
official development language. iOS is for iPhone, iPad, iPod only.
• Several third part platforms/API can be used to develop cross platform
app. (such as Unity, Phone Gap )

Mobile Device Development UFCFX5-15-3

You might also like