iOSシステム構成の纏め
iOSのアーキテクチャ
a) iOSのアーキテクチャは階層化されている
最上位レベルでは、iOSはそれが稼働しているハードウェアとアプリケーションの間の仲介役を果たします。アプリケーションがハードウェアと直接やり取りすることはめったにありません。代わりにアプリケーションは、明確に定義された一連のシステムインターフェイスを介してハードウェアとやり取りします。このようなインターフェイスによって、ハードウェアの能力が異なるデバイス上でも一貫性を保って動作するアプリケーションを容易に作成できます。
iOSテクノロジーの実装は、図1-1に示すように、1つのレイヤセットで表現できます。システムの下位の各レイヤには、すべてのアプリケーションが依存する基本的なサービスとテクノロジーがあります。一方、上位レベルの各レイヤには、より高度なサービスとテクノロジーが含まれます。

図 1-1 iOSのレイヤ
主要階層構造 :
|
Cocoa Touch レイヤ |
Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework |
Cocoa Touchはいくつかの重要なフレームワークで構成され、大きく「Foundationフレームワーク」と「UIKitフレームワーク」の2つに分けることができる。前者は主に基本的なデータの処理を、後者は主にGUI(グラフィカル・ユーザー・インタフェース)の構築をつかさどる。 |
|
Media レイヤ |
Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、Core Media |
Mediaレイヤには、マルチメディア体験を演出することを目的とする、グラフィックス、オーディオ、 およびビデオの各テクノロジーが含まれています。このレイヤのテクノロジーは見た目もサウンドもすばらしいアプリケーションを簡単に開発できるように設計されています。 |
|
Core Service レイヤ |
Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch 、In App Purchase、Location Services、SQLite、XML Support |
Core Servicesレイヤには、アプリケーション向けの基本的なサービスが含まれています。中でも重要 なのは、あらゆるアプリケーションに必要となる基本的な型を定義している、Core Foundationと Foundationフレームワークでしょう。このレイヤには、地理的位置の検出、iCloud、ソーシャルメディア、ネットワークなどを活用するために必要な、個別の技術も組み込まれています。 |
|
Core OS レイヤ |
Accelerate Framework、External Accessory Framework、Security Framework、System |
Core Servicesレイヤには、アプリケーション向けの基本的なサービスが含まれています。中でも重要なのは、あらゆるアプリケーションに必要となる基本的な型を定義している、Core FoundationとFoundationフレームワークでしょう。このレイヤには、地理的位置の検出、iCloud、ソーシャルメディア、ネットワークなどを活用するために必要な、個別の技術も組み込まれています。 |
b) iOSの技術はフレームワークというパッケージとして提供される
Appleでは、フレームワークと呼ばれる特殊なパッケージとしてほとんどのシステムインターフェイスを提供しています。フレームワークは、共有ダイナミックライブラリとそのライブラリをサポートするために必要なリソース(ヘッダファイル、画像、ヘルパアプリケーションなど)を含む1つのディレクトリです。フレームワークはXcode上でアプリケーションプロジェクトに組み込んで使います。
c) Developer Libraryを自由に活用して開発できる
iOS Developer Libraryはアプリケーション開発における重要なリソースです。また、APIリファレンス、プログラミングガイド、リリースノート、技術ノート、サンプルコードその他、アプリケーション開発に役立つさまざまなヒントやガイダンスが揃っています。
iOS Developer Libraryには、Apple Developer Webサイトから、またはXcodeからアクセスできます。
Xcode上で「Help」>「Documentation and API Reference」を実行すると、Xcodeの資料を扱うウインドウが開きます。ここにはiOSアプリケーションの開発に関する情報が集約されています。資料を閲覧、検索するほか、「しおり」をつけておくことも可能です。
アプリケーションの構成
a) iOSアプリケーションの主要オブジェクト

図 2-1 iOSアプリケーションの主要オブジェクト
UIApplicationMain関数は、動作に不可欠なオブジェクトをいくつか用意した後、アプリケーショ ンの実行を開始します。iOSアプリケーションの心臓部に当たるのがUIApplicationオブジェクトで す。システムと、アプリケーションに属する他のオブジェクトとの間で、やり取りを仲介する役割を 果たします。多くのアプリケーションで使われる主なオブジェクトを図 2-1に示し、表 2-1で各オブ ジェクトの役割を説明します。まず注意しておきたいのは、iOSアプリケーションが「モデル-ビュー-コントローラ」アーキテクチャにもとづいて動作する、という事実です。この設計パターンには、アプリケーションのデータやビジネスロジックを、その視覚的表現と分けて管理する、という働きがあります。画面の大きさが異なるさまざまなデバイスで動かすためには、このアーキテクチャが不可欠です。
b) メイン実行ループ
アプリケーションのメイン実行ループは、ユーザが関与するイベントをすべて処理します。 UIApplicationオブジェクトは起動時にメイン実行ループをセットアップし、これを使ってイベント を処理したり、ビューベースのインターフェイスを更新したりします。名前からも分かるように、ア プリケーションのメインスレッド上で動作します。したがって、ユーザが関与するイベントは、受け 取った順で直列に処理されます。 図 2-2に、メイン実行ループのアーキテクチャと、イベントに応じてアクションが実行される様子を 示します。ユーザはデバイスを介してアプリケーションとやり取りするので、これに関係するイベン トをシステムが収集し、UIKitがセットアップする特別なポートを通してアプリケーションに配信する ようになっています。イベントは内部のキューに入り、メイン実行ループでひとつずつ取り出して、実行コードにディスパッチします。UIApplicationオブジェクトがまずイベントを受け取り、どのように処理するか判断します。タッチイベントは通常、主ウインドウオブジェクトにディスパッチされ、これが次に、タッチイベントが発生したビューにディスパッチします。ほかのイベントも、経路は若干異なるものの、最終的に適切なオブジェクトに渡ります。

図 2-2 メイン実行ループでのイベント処理
参照:
「iPhoneAppProgrammingGuide 」
「iOSTechOverview」
iOSシステム構成の纏め的更多相关文章
- JSP基本_JSPの構成要素、アクション、ディレクティブ
1.JSPの構成要素[コア要素] JSP文法のコアとなる要素で.サーブレットソースに変換される. ・宣言: <%! - %> (宣言で指定した変数は.Javaの「フィールド変数」になる.ス ...
- 【SAPUI5】ODataを構成するもの
はじめに SAPUI5でアプリケーションを作るにあたり.ODataは避けては通れないトピックです.結構広いテーマなので.5-7回くらいに分けて書きたいと思います.1回目はODataの概要について説明し ...
- IOSアプリケーション開発環境の構築
IOSアプリケーション開発環境の要求 1) IOSシステムの構造はそのようになっています: 2) ハードウエアの方の要求: コンピューター a) デュアルコアCPU b) 8 gメモリ(開 ...
- 怎样創建 iOS 展開式 UITableView?
原文:http://www.appcoda.com.tw/expandable-table-view/ 译者:kmyhy(appcoda的驻站译者) 幾乎全部的 App 都會以導航的方式向用戶展示多個 ...
- IOS框架和服务
在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS为应用程序开发提供了许多可使用的框架 ...
- [iOS 主要框架的总结]
原文地址:http://blog.csdn.net/GooHong/article/details/28911301 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件, ...
- iOS 的基本框架
在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS为应用程序开发提供了许多可使用 ...
- unity与ios交替
unity和ios的相互作用是更简单的.直接出口xcodeproject,这个大家都知道如何操作,如果需要二次开发ios码成unity,事实上,整合非常easy找到出口xcodeproject内iPh ...
- hbuilder ios 打包失败,无法导入p12证书的解决方案
问题描述: 在profile文件和私钥证书通过hbuilder ios 打包成功过的前提下,突然遇到打包失败的问题,问题详情是无法导入p12证书. 探索过程: 本着遇到问题先自省的态度,重复打包了几次 ...
随机推荐
- 2014 百度之星题解 1002 - Disk Schedule
Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景. 磁盘 ...
- mongodb 学习笔记 09 -- shard分片
概述 shard 分片 就是 把不同的数据分在不同的server 模型 当中: 用户对mongodb的操作都是向mongs请求的 configsvr 用于保存,某条数据保存在哪个sha ...
- oracle12 pl/sql
pl/sql块介绍 介绍 块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块,要完成相对简单的应用功能,可能只需要编写一个pl/sql块,但是如果想要实 ...
- Android(java)学习笔记191:Android数据存储5种方式总结
1.使用文件(File)存储 存储一般的数据 2.使用sharedperference(xml) 存储设置信息.配置信息.密码 3.数据库Sqlite 开源的,嵌入式的数据库,轻量级 4.使用Cont ...
- android 6.0获取 WRITE_SETTINGS 权限
android 6.0上只写在AndroidManifest中是不行的,还必须手动打开才行 private void setBrightnessMode(Context context, int mo ...
- bootstrap-datetimepicker 时间表箭头不能显示
我使用的是bootstrap-datetimepicker+bootstrap v3,但这个插件使用的时候,并没有和V3相匹配,仍然调用的是bootstrap V2的图标,代码是: <i cla ...
- PS软件之,快速的修改图片你的尺寸
进入 -- 图像 --- 图像尺寸 -- (前面两个去掉后,只剩下最后一个选项的时候就能够任意的修改图像的尺寸)
- js基础知识之_入门变量和运算符
js页面效果学习 (轮播图,文字滚动效果等等) javascript能来做什么 1.数据验证 2.将动态的内容写入网页中(ajax) 3.可以对时间做出响应 4.可以读写html中的内容 5.可以检测 ...
- org.hibernate.HibernateException: No CurrentSessionContext configured!
hibernate可以通过两种方式获得Session: getCurrentSession() 和openSession(). 当通过getCurrentSession()方法时,需要在 hibern ...
- hadoop_并行写操作思路_2
如果想实现将 Client端的 File并行写入到 各个Datanode中, 首先, 应该修改的是,DistributedFileSystem中的create方法, 在create 内部调用FSNam ...