Core OS Layer

Download Report

Transcript Core OS Layer

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
SQLITE
Vend content and
embed a lightweight
services from
SQL database into
inside your
application without
application.
running a separate
remote database
implemented using
server process.
the Store Kit
framework that
create local database
provides the
files and manage
infrastructure
tables and records in
needed.
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:
AAC
o ALAC
o LinearPCM
o AES3-2003
o (and others)
o
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
Core OS Layer
- 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
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?