iPhone OS Overview
iPhone系统概览
iPhone OS comprises the operating system and technologies that you use to run applications natively on iPhone and iPod touch devices. Although it shares a common heritage and many underlying technologies with Mac OS X, iPhone OS was designed to meet the needs of a mobile environment, where user’s needs are slightly different. Existing Mac OS X developers will find many familiar technologies, but they’ll also find technologies that are available only on iPhone OS, such as the Multi-Touch interface and accelerometer support.
iPhone系统由操作系统和技术组成,你使用它们在iPhone和iPod touch设备上运行本地应用程序。尽管它共用了一些Mac OS X的传统和底层技术,但iPhone系统被设计成满足移动环境的需求,这种环境中用户的需求有些不同。原先的Mac OS X开发者会发现许多熟悉的技术,但他们也会发现iPhone系统专有的技术,如多点触摸介面和加速度计支持。
The iPhone SDK contains the code, information, and tools you need to develop, test, run, debug, and tune applications for the iPhone OS. The Xcode tools have been updated to support development for the iPhone OS. In addition to providing the basic editing, compilation, and debugging environment for your code, Xcode also provides the launching point for testing your applications on an iPhone or iPod touch device. Xcode also lets you run applications in iPhone simulator, a platform that mimics the basic iPhone OS environment on your local Macintosh computer.
iPhone的SDK包括开发,测试,运行,调试iPhone应用程序的代码,信息和工具。Xcode工具已经支持iPhone程序开发。除了提供代码编辑,编译和调试的环境,Xcode也提供程序在iPhone和iPod touch设备上的调试功能。Xcode也可以在iPhone模拟器上运行程序,模拟器在苹果机上实现对iPhone系统环境的模拟。
This article provides a high-level overview of the basic features found in iPhone OS, to help orient you to the platform. You’ll find other articles in the iPhone Dev Center to help get you up to speed quickly and to help you understand the basic process for creating iPhone applications. You should use these articles to help guide your learning path for iPhone OS.
本文提供高级的iPhone系统基本特征的概览,将你引向iPhone开台。你可以在iPhone开发网站找到其他文档帮你快速了解基本的iPhone程序开发过程。你应该使用这些文档帮助你学习iPhone系统。

Contents:
iPhone OS Technology Layers 
Writing Code for iPhone OS
Where to Start
内容:
iPhone系统的技术层次
为iPhone系统写代码
从何开始
iPhone OS Technology Layers
iPhone系统的技术层次
In iPhone OS, the underlying system architecture, and many of the technologies, are similar to those found in Mac OS X. The kernel in iPhone OS is based on a variant of the same basic Mach kernel that is found in Mac OS X. On top of this kernel are the layers of services that are used to implement applications on the platform. Figure 1-1 shows a high-level overview of these layers.
iPhone系统的底层系统构架和许多技术与MacOSX相似。iPhone系统的内核是基于MacOSX的Mach内核的变种。内核的最上层是实现应用的服务层。图1-1显示这些层次的概貌。

Figure 1-1 iPhone OS technology layers
图1-1 iPhone系统的技术层次

This layering gives you choices when it comes to implementing your code. For example, the Core OS and Core Services layers contain the fundamental interfaces for iPhone OS, including those used for accessing files, low-level data types, Bonjour services, network sockets, and so on. These interfaces are mostly C-based and include technologies such as Core Foundation, CFNetwork, SQLite, and access to POSIX threads and UNIX sockets among others.
这些层次给你实现代码提供了选择。例如,Core OS 和Core Services层包括了文件访问,低级数据类型,Bonjour服务,网络套接字等iPhone系统的基础接口,这些接口绝大部分是基于C的,包括Core Foundation, CFNetwork, SQLite, 访问POSIX线程和UNIX套接字等技术。
As you move into the upper layers, you find more advanced technologies that use a mixture of C-based and Objective-C based interfaces. For example, the Media layer contains the fundamental technologies used to support 2D and 3D drawing, audio, and video. This layer includes the C-based technologies OpenGL ES, Quartz, and Core Audio. It also contains Core Animation, which is an advanced Objective-C based animation engine.
往上面的层是基于C和基于Objective-C接口的技术。例如Media层包括用来支持2D、3D绘图,音频,视频的基础技术。此层基于C的OpenGL ES, Quartz和Core Audio技术,也包括Core Animation技术,它是一种基于Objective-C的高级动画引擎。
In the Cocoa Touch layer, most of the technologies use Objective-C. The frameworks at these layers provide the fundamental infrastructure used by your application. For example, the Foundation framework provides object-oriented support for collections, file management, network operations, and more. The UIKit framework provides the visual infrastructure for your application, including classes for windows, views, controls, and the controllers that manage those objects. Other frameworks at this level give you access to the user’s contact and photo information and to the accelerometers and other hardware features of the device.
Cocoa Touch层大部分的技术基于Objective-C。这层的框架提供你的应用的基本结构。例如,Foundation框架提供集合的对象支持,文件管理,网络操作等。UIKit框架提供你的应用的视觉结构,包括窗口、视图、控件类和管理对象的控制器。这个层的其他框架让你可以访问用户联系表,图片,加速度计和设备的其他硬件功能。
The starting point for any new project is the Cocoa Touch layer, and the UIKit framework in particular. When deciding what additional technologies to use, it is recommended that you start with frameworks in the higher-level layers and fall back on the frameworks in the lower layers as needed. The higher-level frameworks make it easy to support standard system behaviors with the least amount of effort on your part. The only time you should fall back to the lower-level frameworks is when you want to implement custom behavior that is not provided at a higher level.
任何新工程的开始点都在Cocoa Touch层,特别是UIKit框架。开发时,应该先从高级层的框架开始,有必要时再使得低级的层框架。高级层可简化对标准系统功能的使用。只有当你要实现高级层没有提供的功能时再访问低级层。
For a more detailed overview of the technologies in iPhone OS, see iPhone OS Technology Overview.
要了解iPhone系统技术的详细内容,请参阅文档:iPhone OS Technology Overview
Writing Code for iPhone OS
iPhone系统写代码
The iPhone SDK supports the creation of graphically-oriented applications that run natively in iPhone OS. The applications you create reside on the user’s Home screen, along with the other system applications, such as Photos, Weather, and Clock. After it is launched, aside from the kernel and a few low-level daemons, your application is the only application running on the system. While running, your application occupies the entire screen and is the focus of the user’s attention. And when the user presses the Home button, your application quits and the system displays the Home screen again. Having the system to yourself is advantageous because it gives you full access to the underlying system resources. You can take advantage of built-in hardware such as the accelerometers, camera, and graphics hardware to run just your code.
iPhoneSDK可创建运行于iPhone系统的图形化本地程序。你创建的程序位于用户主屏上,与其他系统程序如照片、天气和时钟在一起。程序启动后,除了系统内核和一少量的后台进程外,你的程序是系统唯一运行的程序。程序运行时占据整个屏幕,用户的注意力都在上面。当用户按Home键时,你的程序退出,系统又显示主屏。你的程序安全占有系统的好处是可以完全访问系统的低层资源。你的程序可以利用内建的硬件如加速度计,摄像头和绘图硬件。
Because the way users interact with iPhone and iPod touch devices is fundamentally different from the way users interact with Mac OS X, the way you design your applications must also be different. In an iPhone application, there is no concept of separate document windows for displaying content. Instead, all of the application’s data is displayed in a single window. This has lead to the creation of new views and controls that allow you to present your application’s data in an organized manner. In addition, many of the standard views and controls may behave a little differently than their Mac OS X counterparts. Most of these changes should be transparent but some may require you to rethink the way you organize and present your data.
因为用户与iPhone和iPod touch设备交互的方式与MacOSX的不同,所以程序的设计方式也不同。在iPhone程序中,没有显示内容的分离文档窗口的概念,所有的程序数据只显示在一个单独的窗口。这使用新的表现程序数据的视图和控件要按组织的方式来创建。并且,许多标准的视图的控件与MacOSX中的行为不同。大部分的改变是很明白的,但有一些需要你重新考虑你组织和表现数据的方式。
The event-handling model in iPhone OS also represents a significant departure from traditional desktop applications. Instead of relying on the traditional mouse and keyboard events, iPhone OS introduces the idea of touch events. A touch event can occur at any time and in combination with one or more additional touch events. Touches can be used to detect simple interactions with content, such as selecting or dragging items, or they can be used to detect complex gestures and interactions, such as swipes or the pinch-open and pinch-close gestures (used, for example, to zoom in and out in the Photos application).
iPhone系统的事件处理模型也与传统的桌面程序不同。不再依赖传统的鼠标、键盘事件,iPhone系统引入了触摸事件。触摸事件可以在任何时候发生,可以与一个或多个事件组合。触摸可用来探测简单的联系表交互,如选择或拖掇项目,也可能来探测的手势交互,如划屏,放大和缩小手势(如用在照片程序中这么大缩小照片)。
Beyond considering the basic structure of your application, you need to think about how users will actually use it. iPhone applications should be clean, and focused on what the user needs in the moment. Remember that users who are on-the-go want to get at information quickly and not spend a lot of time looking digging through several layers of screens. Providing a simple layout that highlights the key information the user needs is important. For games and other fun applications, you should also consider how the users might want to interact with your application and take advantage of technologies such as the accelerometers and camera where appropriate.
除了考虑程序的基本结构外,你还要考虑用户如何实际使用程序。iPhone程序应该是简洁的,关注用户的需求。记住用户忙的时候要很快速找到信息,不会想花费很多时间在多层程序中寻找。提供一个可以突显用户需要的关键信息的界面布局很重要。对游戏和其他有意思的程序,你要考虑用户怎样同你的程序交互,要利用如加速度计和摄像头的技术。
As you start development, the frameworks you want to use initially are the Foundation and UIKit frameworks. These frameworks provide the key services used by all iPhone applications. As you refine your application, you should investigate the other frameworks in the system to see what services they offer. The documentation for each framework includes links to relevant conceptual materials to help you learn more about how to use that framework.
开始开发程序时,你最先使用的框架是Foundation和UIKit。这些框架提供iPhone程序使用的关键服务。如果要扩展你的程序,你应该了解一下系统其他的框架提供了什么服务。每一个框架的文档提供使用框架的相关概念性材料。
For information about the Foundation and UIKit frameworks, see Foundation Framework Reference andUIKit Framework Reference.
了解Foundation和UIKit框架,请参阅文档:Foundation Framework Reference ,UIKit Framework Reference
Where to Start
从何开始
Creating simple applications that run on iPhone OS is relatively easy with the built-in project templates provided by Xcode, but creating applications that do something useful and look nice requires you to spend some time reading through the available documentation. At a minimum, you should take the time to read through the other orientation articles in the iPhone Dev Center, which explore the tools and process for creating applications.
使用Xcode内置的工程模板来创建简单的iPhone程序相对容易,但要创建有用的界面好看的程序要求你要时间通读所有文档。至少你要花时间通读iPhone开发网站的其他培训文档,如使用开发工具和创建程序的流程。
If you are completely new to iPhone OS and to Mac OS X, taking the time to understand the basic design patterns and conventions of iPhone OS is critical to writing code for the platform. Applications operate best in iPhone OS when they take advantage of the power the frameworks provide. If you spend time trying to work around the basic framework behaviors, you may find creating your application much more difficult than simply learning the basic design patterns in use. The basic information that every iPhone developer needs to know is in Cocoa Fundamentals Guide. This document covers the basics of the Objective-C language and the programming conventions and design patterns used by UIKit and many other system frameworks.
如果你未开发过iPhone和MacOS程序,花时间理解iPhone系统基本的设计模式和约定对写代码是很重要的。程序利用了框架提供的强大功能才能运行良好。如果你花时间试着与以基本的框架行为为主而进行开发工作,你会发现你的程序在使用时与简单的学习基本的设计模式有很大的不同。iPhone开发者需要知道的基本信息在文档:Cocoa Fundamentals Guide。此文档包括了Objective-C语言的基础,编程约定,UIKit和许多其他系统框架使用的设计模式。
Once you understand the basic conventions you use to create iPhone applications, you can refer toiPhone Application Programming Guide for specific details on the development process. This book provides key conceptual and task-based information on how to write iPhone applications, including examples of how to display a user interface, handle events, and take advantage of key iPhone OS features. It also describes the overall development process and explains how you use Xcode to build and run your applications.
当你理解了创建iPhone程序的基本的约定后,你可以参阅文档iPhone Application Programming Guide来了解开如过程的细节。此文档提供如何开发iPhone程序的关键的概念性和基于任务的信息,包括一些如何显示用户界面,处理事件和利用iPhone程序关键功能的例子。它也描述开发的整个过程,解释如何使得Xcode和编译和运行程序。
In addition to iPhone Application Programming Guide, you should also look through the available sample code. iPhone OS ships with a number of full-featured samples that show you how to use the available technologies to create real-world applications. You can use these samples as a starting point for your own applications or you can look at them to learn more about how you use specific features.
除了上述文档外,你应该看一些例子代码。iPhone系统有大量包括多种功能的例子,它们可让你明白怎样使用技术去创建真实的应用。你可以以这些例子为起点来开发你自己的程序,也可以从中学习如何使用特定的功能。

【转载】iPhone系统概览的更多相关文章

  1. atitit 点播系统 概览 v2 qb1.docx

    atitit 点播系统 概览 v2 qb1.docx 1.1. 多界面(可以挂载多个不同的界面主题)1 1.2. 独立的选片模块(跨设备,跨平台)2 1.3. 跨设备平台(android安卓盒子,pc ...

  2. iPhone屏蔽IOS更新、iPhone系统更新的提示(免越狱,有效期更新至2021年)

    iPhone屏蔽IOS更新.iPhone系统更新的提示(免越狱,有效期更新至2021年) 1.在Safari浏览器中粘贴如下链接,按提示打开链接. 输入http://apt.dataage.pub 2 ...

  3. 【转】Android系统概览

    这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...

  4. iPhone系统固若金汤,为何还有人偷苹果手机去卖?

    2016年初,美国FBI希望苹果开发软件用以解锁一部嫌疑人的iPhone.苹果虽然帮助FBI从疑犯iCloud账户中提取数据,但有些数据仍然不可获取.由于不知道手机密码,FBI也无法打开手机.虽然在最 ...

  5. iOS获取iPhone系统等信息和服务器返回空的异常处理

    前言: 在项目中经常会遇到需要获取系统的信息来处理一些特殊的需求和服务端返回为空的处理,写在这里只是笔记一下. 获取设备的信息 NSLog(@"globallyUniqueString=%@ ...

  6. 【Darwin】 越狱后玩耍IPhone系统

    玩耍IOS系统 大家都知道IOS是自Mac OS修改而来的.而Mac OS和IOS的共同核心是Darwin,其基于FreeBSD发展而来,整体而言也是个类Unix系统.之前把自己的手机越狱之后正好开始 ...

  7. iPhone 系统刷机

    1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手 ...

  8. iPhone系统常用文件夹位置

    1. [/Applications]   常用软件的安装目录 2.    [/private /var/ mobile/Media /iphone video Recorder]   iphone v ...

  9. Thinking in Unity3D:材质系统概览

    关于<Thinking in Unity3D> 笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎 ...

随机推荐

  1. 201621123037 《Java程序设计》第3周学习总结

    #Week03-面向对象入门 1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联 ...

  2. QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QXmlStreamReader/QXmlStreamWriter实现Qt下xml文件读写   ...

  3. 【beta】视频预发布

    beta阶段视频发布地址: 秒拍: http://www.miaopai.com/show/Ivh31LgnAuWELxboH6gl7g__.htm

  4. LR监控tomcat服务器

    采用编写VuGen脚本访问Tomcat的Status页面的方式获取性能数据(利用了关联和lr_user_data_point函数),本质上还是使用tomcat自带的监控页面,只是将监控结果加到LR的a ...

  5. 【EF】EF Code-First数据迁移

    Code-First数据迁移  首先要通过NuGet将EF升级至最新版本. 新建MVC 4项目MvcMigrationDemo 添加数据模型 Person 和 Department,定义如下: usi ...

  6. UVA11735_Corner the Queens

    题目是这样的,游戏规则,每个人轮流将二维空间上的皇后往下,往左或者往斜下45度的方向移动. 谁第一个移动到0,0的位置就获胜. 题目给定你若干个矩形,求矩形中任取一点且该点必胜的概率有概率. 其实是这 ...

  7. 【转】.gitignore失效的解决办法

    转自:http://foreverdo.diandian.com/post/2012-09-20/40038034798 How to make .gitignore works? Just got ...

  8. listen() 函数

    声明:本文来自网络博文的合并,文后有链接. 一.listen函数仅由TCP服务器调用 它做两件事: 1.当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用conne ...

  9. LINUX内核设计与实现第三周读书笔记

    LINUX内核设计与实现第三周读书笔记 第一章 LINUX内核简介 1.1 Unix的历史 1969年的夏天,贝尔实验室的程序员们在一台PDR-7型机上实现了Unix这个全新的操作系统. 1973年, ...

  10. 流媒体协议之JRTPLIB的使用20170919

    主要介绍JRTPLIB 2.x系列和3.x系列两种版本,它们的区别是2.x系列代码量少使用简单,但是只支持RFC 1889不支持RFC 3550,3.x支持RFC 3550,但代码量稍多,以及使用也稍 ...