ios vs Android By: Group 2
The ios System Memory Section A43972 Delta
Core OS Layer Core Services Layer Media Layer CoCoa Touch Layer Memory Section A43972 Delta
Aaron Josephs Core OS Layer - Core OS has 6 sections - Accelerate Framework - Core Bluetooth - External Accessory framework - Generic Security Services Framework - Security Framework - System
Core OS Layer Accelerate Framework - Contains interfaces for doing computationally heavy code - DSP, linear algebra and image-based processing - optimized for the hardware in apple devices - not necessarily fast for things like simple multiplication
Core OS Layer Core Bluetooth - This contain the framework for connecting and disconnecting from bluetooth devices - bluetooth is only for low energy - only operates between 160 feet
Core OS Layer External Accessory Framework - this framework is used for communicating with any accessory connected to yours - any accessory connected to an ios device must use at least one command protocol - apps must declare which protocols they support - when an accessory is connected it will open your app if it supports it
Core OS Layer Generic Security Services Framework - offers standard security services - a security framework is also supplied
Core OS Layer Security Framework - use to guarantee security of data of your app - manage certificates, public and private keys and trust policies - supports generation of cryptographically secure pseudorandom numbers - supports symmetric encryption
Core OS Layer System - all of ios is built on a UNIX like base - this layer includes the kernel and device drivers - provides c-based interfaces - when writing an app access to the system is restricted - ios has a set of interfaces that allow access to low level features
Core OS Layer System - ios provides c-based interfaces that support these features - POSIX threads, Networking(BSD sockets), File-system access, standard I/O, Bonjour, DNS, Locale information, memory allocation and math computations
Core OS Layer System - responsible for process lifecycles, thread management, I/O, interprocess communication, and thread management
Lin He core services layer The Core Services layer contains the fundamental system services that all application use.
core services layer Key technologies available in the Core Services Layer. Icloud storage Automatic reference counting Block objects Grand central dispatch In-App purchase SQLite
Core Services Layer Icloud storage Write user documents and data to a central location Access those items from all of a user's computers and IOS devices. a. view or edit those documents from any device without having to sync or transfer files.
Core Services Layer Automatic Reference Counting simplifies the process of managing the lifetimes of Objective-C objects. ARC evaluates the lifetime requirements of your objects and automatically inserts the appropriate method calls at compile time.
Core Services Layer Block objects useful as callbacks or in places where you need a way of easily combining both the code to be executed and the associated data. As a replacement for callback functions To implement completion handlers for one-time operations Together with dispatch queues, to
Core services layer Grand Central Dispatch BSD-level technology manage the execution of tasks in your application. combine an asynchronous programming model with a highly optimized core to provide a convenient alternative to threading. Also, provide alternatives for many lowlevel tasks, such as reading and writing file descriptors, implementing timers, etc.
Core Services layer In-App purchase Vend content and services from inside your application. implemented using the Store Kit framework that provides the infrastructure needed. SQLITE embed a lightweight SQL database into application without running a separate remote database server process. create local database files and manage tables and records in those files.
Alex Kleiner Media Layer Memory Section 24A64 Tango
Alex Kleiner Media Layer Significant Breakdown Graphics Technologies Audio Technologies Video Technologies AirPlay
Alex Kleiner Graphics Technologies - Media Core Graphics (Quartz) for 2d Vectors Core Animation (Quartz) for animation vectors OpenGL for 2d and 3d rendering using hardware-acceleration Image I/O interfaces for reading and writing most image formats
Alex Kleiner Audio Technologies - Media Core Audio Frameworks that support the following codecs and formats: o o o o o AAC ALAC LinearPCM AES3-2003 (and others)
Alex Kleiner Video Technologies Frameworks for playing video formats: Favored Formats: - H.264 - MPEG-4 - MOV
Alex Kleiner AirPlay New feature found in ios 5. Utilized Multiple Media Frameworks, and streams the data to a compliant external device.
Alex Kleiner CoCoa Touch Layer
Alex Kleiner Purpose of CoCoa Touch Layer This layer contains the key frameworks for actual user and application interactions with the system.
Alex Kleiner CoCoa Touch Layer Breakdown Storyboards Multitasking Printing Data Protection Push Notification Services Local Notification Services Gesture Recognition Standard System View Controllers
Alex Kleiner Story Boards - CoCoa You can use a single storyboard file to store all of your application's view controllers. At Build time contents are loaded separately for better performance.
Alex Kleiner Multitasking - Cocoa Applications are not terminated when switched off. All code and information is stored in memory, but not code is executed in this suspended state.
Alex Kleiner Printing - CoCoa Print jobs are handled by the printing system, which manages the actual printing process.
Alex Kleiner Data Protection When device is locked by the user, an actual encryption key is set. When unlocked, the decryption key for the data is entered as well in the system.
Alex Kleiner Push Notification Services - CoCoa An ability to ios to receive remote triggers from external services to relay a message to the user.
Alex Kleiner Local Notifications - CoCoa Same end-user result as push notifications, however adds the framework on the device itself locally.
Alex Kleiner Gesture Recognition Services - Cocoa Frameworks the recognize multiple-input gestures such as: Tapping Pinching in and out Pan,ing and Dragging Swiping Rotating Long Presses
Alex Kleiner Standard System View Controllers - CoCoa Major Universal System API and Frameworks: Display or edit contact information Create or edit calendar events Compose SMS or Email messages Take a photo Film a video
The Android Operating System
System Overview Core OS Layer Dalvik Virtual Machine
Kate Lamendola What is Android? - Linux based OS for mobile devices - Developed and maintained by Google - Open source - 300 mil. Android devices in use by Feb 2012
Kate Lamendola A Brief History - Android, Inc. founded in 2003 - "...smarter mobile devices that are more aware of its owner's locations and preferences" - Sold to Google in 2005 - Unveiled at the Open Handset Alliance in 2007
Kate Lamendola Android: System Overview -Kernel based on the linux kernel
Kate Lamendola Android Marketshare - Could reach 70% in 2012
Kate Lamendola Version History: Recent releases - 2.3 Gingerbread: refined UI, improved keyboard and copy/paste functions - 3.0 Honeycomb: Tablet oriented, support for multi-core processors - 4.0 ICS: brought Honeycomb features to smartphones; network data usage monitor
Kate Lamendola Android Features - Handset layouts: 3D graphics in Open GL - Multiple languages - Connectivity: GSM, CDMA - Messaging: SMS and MMS - Web browser - Media formats - Java support: Dalvik VM
Kate Lamendola Android Features - Multi-touch: Originally avoided at kernel level - Multitasking - Bluetooth support - Tethering: device can be used as WiFi hotspot - Screen capture - External storage
Kate Lamendola Android Features - Security: applications run in sandbox -Widgets - Google Play Store
Sean Kelly Android Core Libraries - General purpose API's written and converted from Java using the Dalvik VM
Sean Kelly Dalvik VM - Virtual Machine built for Android - Converts and runs Java apps - Compiles the Java code to bytecode - Converts the.class files to.dex (Dalvik Executable) files
Sean Kelly - Built around the Linux 2.6 Kernel - Has added features: - Alarm Drivers - Power Management - System Logger - logs events from applications, events, and the system - Writing is optimized to reduce overhead Core OS Layer
Sean Kelly Core OS Layer - Contains drivers for the core features: - Display, Keypad, Camera, WiFi, etc - Contains the power management - Uses user-level wake-locks to determine CPU state
Jie Hui Kuang Applications & Multitasking - Each application is: - a separate process - entitled to own instance of Dalvik VM - Android runtime manages all memory and processes
Memory Management - Processes are not killed even after application is closed - Processes are killed only when necessary
Process Types (high to low) Active - currently interacting with the user Visible - in foreground but not responding to user events Started Service - active in foreground, no UI Background - non-active in foreground, target for kills Empty - remains in memory to make relaunching faster, target for kills
Process Priorities - Application's priority is equal to its highest component - Also depends on interprocess dependencies
Questions?