Organized from the Internet, thanks to the original author!
1.iOS is based on UNIX systems, so it's much better from the stability of the system than the products of other operating systems.
The 2.iOS system architecture is divided into four tiers, from top to bottom: the touch layer (Cocoa touch layers), the media layer, the core service layer, and the core OS layer
(1) Touch Layer : Provides a variety of common frameworks for application development and most of the frameworks are related to the interface, which is essentially responsible for the user's touch interaction on the iOS device. It includes the following components:
Multi-Touch Events Core Motion cameraview Hierarchy Localization alertsweb views Image Picker multi-touch Controls
(Supplemental NEW: The touch layer primarily provides user interaction related services such as interface controls, event management, notification hubs, maps, including
- UIKit (interface related)
- Eventkit (Calendar event reminders, etc.)
- Notification Center (Notification centre)
- Mapkit (Map Display)
- Address Book (Contact person)
- IAd (AD)
- Message UI (message and SMS display)
- Pushkit (iOS8 new push mechanism)
)
(2) Media layer : Through it We can use a variety of media files in the application, for audio and video recording, graphic drawing, as well as the production of basic animation effect. It includes the following components:
Core Audio OpenGL Audio mixingaudio recording Video Playback jpg,png,tiffpdf Quartz Core Animation OpenGL ES
(Supplemental NEW: The media layer mainly provides image engine, audio engine, Video engine framework.)
- Image Engine (core Graphics, core image, Core Animation, OpenGL ES)
- Audio engine (Core audio, AV Foundation, OpenAL)
- Video engine (AV Foundation, Core Media)
)
(3) Core Service Layer : We can access some of the iOS services through it. It includes the following components:
Collections Address book networkingfile Access SQLite Core locationnet Services Threading Preferencesurl Utilities
(Supplemental NEW: The Core services layer provides basic system services for programs such as network access, browser engine, location, file access, database access, and so on, mainly including the following framework:
- Cfnetwork (Network access)
- Core data (datastore)
- Core location (positioning function)
- Core Motion (acceleration of gravity, gyroscope)
- Foundation (basic functions such as NSString)
- Webkit (Browser engine)
- JavaScript (JavaScript engine)
)
(4) The core operating system tiers include: memory management, file systems, power management, and some other operating system tasks. It can interact directly with the hardware device. The core operating system layer includes the following components:
OS X Kernel Mach 3.0 bsdsockets Power Mgmt File systemkeychain Certificates Securitybonjour
(Supplemental NEW: The core system layer provides the most basic services for the superstructure, such as operating system kernel services, local authentication, security, acceleration, and so on.)
- Operating System kernel Services (BSD sockets, I/O access, memory request, file system, math, etc.)
- Local Authentication (fingerprint identification verification, etc.)
- Security (interfaces that provide management certificates, public keys, keys, and so on)
- Acceleration (performs math, large numbers, and DSP operations, these interfaces match the iOS device hardware)
)
About 3.Cocoa Touch
(1) Many of the technologies in the top cocoa touch layer are based on the Objective-c language. The Objective-c language provides support for iOS with collections, file management, network operations, and more. The Uikit framework, for example, provides a variety of visual components for applications such as window, view, and button components (UIButton). Other frameworks in the Cocoa touch layer are also useful for our development in the application, such as access to the user's correspondence function framework, the framework for obtaining photo information, and the hardware support for the accelerometer and the three-dimensional gyroscope.
4.framework--Application Framework
What is a framework? It is essentially a software library that helps us accomplish a variety of specific functions.
The application projects we wrote started with the cocoa touch layer, specifically from the Uikit framework. When there are some special functions that need to be used in the process of writing a program, we should start by looking for the appropriate framework from the top of the framework, and use the underlying technology only if the superstructure is not able to solve it. In fact, the top-level framework already covers most of the features we need.
The following table lists some of the commonly used iOS SDK frameworks.
common iOS SDK frameworks:
Frame name |
Energy |
Addressbook.framework |
Provides access to user contact information stored in the core database |
Addressbookui.framework |
Provides a user interface for displaying contact information stored in the Address Book |
Audiotoolbox.framework |
Provides the underlying API for audio recording and playback , as well as managing audio hardware |
Audiounit.framework |
Provides an interface that allows our applications to process audio |
Avfoundation.framework |
Provides the underlying API for audio recording and playback , as well as managing audio hardware |
Cfnetwork.framework |
Access and configure networks, like HTTP,ftp, and Bonjour Services |
Corefoundation.framework |
Provides abstract common data types such as Unicode strings,XML,URLs, etc. |
Coregraphics.framework |
Provides a C-based API for 2D drawing |
Continuation table:
Frame name |
Energy |
Corelocation.framework |
Get location information using GPS and Wi-Fi |
Foundation.framework |
Provides basic classes of object-c (like nsobject), Basic data types and operating system services, etc. |
Gamekit.framework |
Provides network functions for games, peer-to-peer and in-game voice communication |
Mapkit.framework |
An interface that provides an inline map for an application |
Mediaplayer.framework |
Provides the ability to play video and audio |
Messageui.framework |
Provides a view control interface to handle e-mail and SMS |
Opengles.framework |
Provides a concise and efficient subset of OpenGL APIs for drawing 3D graphics and both |
Quartzcore.framework |
Provides animation effects and the ability to render through hardware |
Storekit.framework |
Provides support for applications to consume in the run of programs |
Systemconfiguration.framework |
Ability to detect current network availability and hardware device status |
Uikit.framework |
Creating and managing the user interface for an application |
IOS System Architecture && Common framework