iOS性能优化翻译稿(第一章)
来源:互联网 发布:c语言稀疏矩阵的和 编辑:程序博客网 时间:2024/05/17 03:07
声明:本文翻译自《iosperformance optimization》,原文作者Khang Vo。翻译本文纯属为了技术交流的目的,并不具有任何的商业性质,也不得利用本文内容进行商业盈利。欢迎转载,但是希望转载的时候加上出处连接,谢谢。译者联系方式setipro@163.com,如果有ios开发之类的问题,欢迎一起讨论,谢谢。另,由于本人翻译经验不多,如果翻译不妥或者理解不到位的地方,希望各位朋友海涵,可以发信到上述邮箱,我会及时地根据大家的反馈,对翻译稿做及时地修改,谢谢!
第一章 IOS优化性能介绍
这章将介绍有关这本书的大概内容,内容如下:
谁最适合读这本书
这本书所涵盖的课题
本书的风格和大致结构
智能手机的新纪元
当前,AppStore应用商店上有数十万款IOS应用程序,并有数以亿计的用户在使用它们,这对于任何一个公司和开发者而言,都是一个可开拓的庞大市场。这个市场已经在过去的数年中得到发展,并将在未来的几年内继续发展下去,而对有趣而好用应用程序的需求而言,也同样如此。如果你有一个好的应用软件创意,那么你需要保证这个创意能够很好地实现,这包括一个良好的用户体验设计。因为对于智能设备来讲,其运行软件时所能使用的资源非常有限,所以良好的性能对于你的应用软件来讲是必须的。用户所期望的应用软件,能够对他们的交互行为快速地进行响应,能够迅速地计算数据,并立刻将结果展示给他们。
为什么性能很重要
性能不仅仅是有关于算法,数据结构和内存。它还和应用是否能让用户感觉任何的交互都能尽快地得到响应u有关。所以,你对你的iphone应用程序进行性能优化是十分重要的。要让用户感觉到他们好像在和真正的代理人去沟通,那些代理人可以接收到用户的指令并立刻执行。假设你按下了一个按钮,而两秒后软件才做出反应。你会对这种性能满意吗?如果你觉得不爽,那么你软件的用户的感觉会更糟的。
当然,你可以将你的数据存储和计算的任务转移给云,云里面有数千台能够快速计算并迅速返回结果的服务器。但是,仅仅把所有的数据和所有的计算都塞给云是不行的。网络数据传输是很复杂的,并且你的用户有可能在从网络得到他们想要的数据之前需要等待数秒的事件。
无论你是一个游戏开发者,还是一个普通应用的开发者,你都会在对你的应用进行优化的时候,遇到各种困难。
谁应该使用这本书?
这本书是写给IPhone开发入门者,以及已经了解了IPhone编程基本知识的中级开发者的。如果你是一个性能优化爱好者,并且希望在这个新平台上能够开发出在AppStore上有市场响应的软件,那么这本书就是写给你的。高级开发者甚至也能从本书中受益。
如果你希望深入了解智能手机应用软件编程,那么这本书能够很好地指导你。然后,你可以将你所了解的内容从ios平台应用到Android和WindowsPhone的开发环境中。
我的教学风格
我相信“从实践中学习”,是一个程序开发者学习技能的最好的方式。本书便是基于这个理念的。
我将对相关问题进行一个大致的讨论,然后进行深入的实践,这种方式是来源于我两年的Iphone开发经验以及多年的Java教学经验。我所提出的这些问题,将有助于你在iphone开发中避免或者修复很多的错误。我所选择的这些问题,都是基于经验,以及对一些流行的论坛以及技术社交网站(比如StackOverFlow)上的问题的深入研究。我已经指出了一些常见的陷阱,并且为你提供了一些信息以避开这些错误。
这本书包含三个方面:基本概念,应用场景,还有样例代码。本书并不只是在你遇到一些特殊问题的时候提供查询功能的工具书,而是希望给你提供强大的开发技巧,并将这些技巧应用到日常的iphone开发中去。我运用了多种沟通方式:有时候一图胜千言,有些概念则最好用样例代码来进行说明,有些则需要数千字的文字叙述。
学习性能有关知识的最好方式就是开发一个你自己喜欢的酷应用。这种实践经验比那些容易忘掉的例子能教会你更多的东西。
你并不需要对Cocoa Touch Framework有很多的了解,因为我会对基本的语法和对有助于你改进性能的相关的类的知识进行解释。每章都由一些讨论话题组成,其中的某些也许你已经比较熟悉了。你也可以把这本书当做参考书来用;当你碰到某些具体的问题的时候,你可以通过查阅这本书来获取相关的解决方案。
每章的简单结构如下:
一个简单的概述,后面是相应的主要讨论部分和章节。每章的末尾都会有一个总结归纳,它能帮助你巩固相关的知识,以及指出课程的重点内容,最后有一些基本的实践内容,你能将你所学到的知识进行实践。
你需要什么?
作为一个IOS开发者,你需要一个安装了Xcode的Mac系统。IOS开发者账号中就有一个免费的XCode版本,或者你可以直接从AppStore中下载一个。你也需要一份本书的样例代码,代码你可以从Apress网站下载下来。样例代码在XCode 4.2中测试,并且ARC模式已经打开,你可以在上述环境中没有任何顾虑地运行我的代码。
你应该运行样例代码,以更好地理解我所讲述的概念。也有一些短小的和任何项目无关的代码,你也应该运行一下那些代码。
如何使用本书?
虽然本书的章节之间并没有过多的联系,但是从头到尾地阅读本书将有助于你对iphone的性能优化技巧有一个更加扎实地掌握。章节之间有时有些许的关联和依赖。下一个章节也许是基于你已经阅读并理解了前面的章节这一前提上写的。
在阅读每一章的时候,我同样推荐从头到尾的阅读方式。每章都对讨论的课题进行一个快速的概念介绍,然后是理论与IPhone例子相结合来帮助你理解所讨论的话题。
你应该认真仔细地阅读总结,因为它提示了你应该掌握的重要知识。我同样推荐完成所有的实践内容,因为这些将会帮你巩固你新学到的知识。
本书的概要
本书包含如下内容:基本概念和实践知识,技巧。这些能够帮助你在充满竞争的IOS开发世界中取得成功。本书的九章内容涵盖了九种方式来在IOS的开发过程中解决性能问题。
第二章:介绍了一系列的工具,并且让你了解如何以及何时使用他们。很多开发者不使用这些工具仅仅是因为他们不知道这些工具的存在。
第三章:作为一个IOS开发者,你总会在你的大多数工程中使用TableView来展示一些数据和选项,从简单的实验控件到复杂的控件。使用UITableView的问题在于,一旦你开始对其进行定制化的操作,TableView的滚动性能就会降低。即便你以小心巧妙的方式使用他们,这个问题你还是会碰到。这章将会给你提供一些列的工具和技巧来优化你的TableView的滚动性能。
第四章:你也许相信大多数的性能问题能够通过云计算以及简单地为你的系统增加更多的服务器这种方式来解决。即便那是真的,网络数据传输也是个问题。数据传输将在数年内维持在一个瓶颈的水平上。你应该了解如何在像IOS这种有限的环境下,将数据缓存到本地以及内存中。
第五章:数据结构和算法在IOS开发中和其他的环境有相同点也有不同点。你能从框架中的那些基本数据结构(比如Array, set还有dictionary)中获得高水平的支持。对有些任务来讲,你可以简单地将任务交给云来实现,而对另外一些任务来讲,尤其是收集并处理数据来获得一个良好的可视化效果,你就需要依赖IOS的具体环境了。
第六章:优化应用程序的性能也意味着能够让应用更好的对用户的交互做出响应。这意味着不会阻塞主UI线程。多线程会对此有所帮助,它并不只改进对用户操作的响应性能,还对你的整个应用的性能进行改善。多线程操作对任何平台而言都是一个比较困难的话题,你将通过一系列的插图,例子,清晰的说明,来学习多线程操作。
第七章:随着一个自动内存管理工具的发布,开发者现在可以利用它来避免常见的内存错误,比如内存泄露和崩溃。本章专注于让你了解如何能够最好地运用内存,以及你应该何时将数据载入或者从你的内存中清除。其涵盖了新SDK的Automatic Reference Counting(ARC)机制,来保证你了解和正确地使用。
第八章:在IOS4以及以后的版本中,所有的应用可以利用多线程操作来优化用户体验。事实上,那并不是真正的多线程,而是一种通过某些后台处理的快速应用切换机制(应用并没有真的在后台运行)。本章将帮助你了解IOS提供哪些功能,以及哪些事情可以在后台进行处理和运行。
第九章:在很多的iphone应用中,你并不需要使用任何的C/C++代码来实现一些功能。但是,当你真的需要他们的时候,尤其是整合库的时候,你就真的有麻烦了。你也许并不需要用C/C++来写整个应用,但是你需要在解决某些问题的时候了解这些语言是如何运作的。
第十章:到现在,你应该从不同的方面对IPHONE性能优化有了一个整体的了解。你最终开始考虑将你的应用移植到Android平台和WindowsPhone平台。因此,在最后一张,我将给你提供一个大体的介绍,介绍有关于在IOS,Android和WindowPhone上性能优化问题的相似处。这将有助于你学习新的平台开发。
源码
你应该从Apress网站的本书网页上下载样例代码,并且自己运行试试。
联系作者
如果你有什么问题,请给我发邮件vodkhang@gmail.com或者访问我的网页http://vodhang.com。我很高兴能够聊一聊有关IPhone性能的问题。
(上面是英文版的原文翻译,附上译者的联系方式setipro@163.com,欢迎来信交流IOS开发的相关问题)
- iOS性能优化翻译稿(第一章)
- iOS性能优化翻译稿(第二章,上)
- 《JavaDataObjects》第一章翻译稿
- 《Java Data Objects》第一章 翻译稿
- 学习使用groovy(翻译稿之第一章)
- 《Java Data Objects》第一章 翻译稿
- 翻译稿
- iOS学习--uexiASIHTTPRequest使用指南---<<翻译稿>>
- 飞鸽传书(IPMSG)协议(翻译稿)
- 飞鸽传书(IPMSG)协议(翻译稿)
- 飞鸽传书(IPMSG)协议(翻译稿)
- 飞鸽传书(IPMSG)协议(翻译稿)
- ASIHTTPRequest使用指南---<<翻译稿>>
- ASIHTTPRequest使用指南---<<翻译稿>>
- ASIHTTPRequest使用指南---<<翻译稿>>
- ASIHTTPRequest使用指南---<<翻译稿>>
- ASIHTTPRequest使用指南---<<翻译稿>>
- Android性能优化(第一章)
- 第二数学归纳法
- 关于使用结构体来记录学生成绩输出no。1的学号和成绩 c语言
- UVA 673
- ABAP 打开 Update Debuging
- Total immersion--D'Fusion
- iOS性能优化翻译稿(第一章)
- bash shell shortcut
- iOS性能优化翻译稿(第二章,上)
- RDP related
- 刚刚参加完四个月的java培训,开始找工作了
- booster log 库介绍
- Sharepoint 2010 的一些实践经验和技巧.
- Ubuntu实践(6):默认的shell
- 使用数据时的一个问题:建立数据库时小心使用了关键字