恒泰博远,专家级研发软件定制开发公司,为企业定制营销、办公、管理软件 在线咨询 :
咨询电话:010-82969001

解释的iOS 8的扩展:开放平台,同时保持它的安全

来源:http://www.hengtaiboyuan.com 作者:恒泰博远 时间:2014-06-15

[摘要]对比Android的意图只是讲故事的一部分。

对比Android的意图只是讲故事的一部分。

放大/苹果的Craig Federighi介绍扩展在苹果的WWDC主题演讲。
苹果
在所有的iOS 8上周推出了新的功能,应用程序扩展是那些不会对新的操作系统最大的,最明显的影响。该功能是最常见的描述,以此为第三方应用程序来互相对话,虽然这是一个过于简单化,这不是唯一的应用程序扩展可以做的,在iOS的技术上的第三方应用程序还不能直接对话彼此。

我们读过的开发者文档,看着在WWDC会议。现在是时候打破这些功能是如何工作的,他们做什么,以及苹果如何继续平衡于操作系统第三方接入与安全性。

什么应用程序扩展呢?

放大/选择扩展您想使在Xcode的类型。
苹果
允许第三方应用程序与其他应用程序进行通信仅仅是扩展是为了解决 - 第三方键盘的问题之一,连接应用程序到云比其他的iCloud服务,以及新的通知中心部件都是自己的一种扩展。

的iOS并非所有零部件可以改变(或“扩展”)由第三方。如果你想替换的用自己的默认应用程序之一或添加某种切换到控制中心,你不能这样做。苹果定义了一把预先设定的“扩展点”向开发人员展示在那里他们可以添加的东西。 iOS的8扩展点如下:

今天的扩展,也称为小部件,用于在通知中心今日视图提供扫视信息。把它们当作一个答案到Windows Phone的Live瓷砖或Android的主屏幕小部件。
分享扩展允许照片,链接或其他文件从一个应用程序,以在线服务的发布。这将使事情,比如将图片张贴到Pinterest的,或从一个应用程序上传文件到Dropbox的或OneDrive。旧版本的iOS的支持张贴到Facebook和Twitter,并分享扩展把门打开给他人。
行动扩展“操作或其他应用程序的上下文中视图的内容。”在英语中,这意味着编辑照片嵌入在一个文本文件或者像苹果的舞台上表现出在WWDC的主题演讲中,使用类似兵翻译翻译在Safari浏览器窗口中的文本。
照片编辑扩展可以用来拍摄您正在查看的照片的图片,并呼吁特征从另一个应用程序来编辑它(苹果公司展示了一款VSCO凸轮延伸的主题演讲)。照片既保持了编辑图像和未经编辑的原始的,虽然这是不正确的视频文件。
存储供应商扩展将让生产力应用程序打开的文档从各种云服务。人们可以,例如,使用Dropbox的存储文档,那么你可以打开和编辑Office中为iPad或网页。
自定义键盘扩展了新的第三方替换默认的苹果软件键盘。
苹果
A“今天”的扩展名,或窗口小部件,集成到今日在通知中心。

      
我们将主要专注于iOS的扩展的今天,但其中许多(包括通知中心部件和共享的扩展,等等)的工作在OS X中优胜美地就像他们在iOS中。在Mac App Store的应用程序绑定到苹果的沙盒限制,他们会是有用的,但当然还有很多Mac应用程序继续完全绕过App Store和苹果公司的限制。

这个预先设定的扩展点列表不同于Android的意图系统。 Android应用程序使用“意图过滤器”来告诉操作系统的各种事情的应用程序可以处理。 Twitter的,或Facebook应用程序可以告诉机器人,他们是能够张贴照片或链接;谷歌驱动器和Dropbox可以用来上传大部分类型的文件; Chrome和Firefox可以打开网页;新的发射器可以完全改变你的主屏幕的外观和工作方式。第三方甚至可以指定自己的定制意图过滤器的操作系统。相比之下,iOS的还是比较有限的(虽然不是没有道理的,我们将在后面讨论)。

请记住这一点,因为它要来了一堆:扩展大大提高的东西第三方可以做的清单,以及许多常见的用例,他们会从意图功能没有什么区别。这些变化停止远低于Android的“怎么都行”的心态,虽然,这主要是在维护的iOS的安全模型的名称。

你如何得到扩展,以及它们如何工作的?

放大/扩展交付作为生活在一个二进制文件“包含的应用程序。”
苹果
就像在非越狱iPhone的所有第三方应用程序,所有的iOS扩展从App Store下载。这里最大的限制是,苹果不会允许开发人员提供的只是扩展应用程序。每个分机有内住“包含的应用程序,”和苹果强制要求包含应用程序必须提供一些功能给用户。不像在Android中,开发者不能提供的只是小部件或只是键盘的应用程序(这仅适用于iOS的; OS X的开发者可以提供的应用程序,是简单的包装进行扩展)。

此限制听起来更繁重比它实际上是。看Fleksy,第三方键盘的应用程序通过App Store已经提供。它包含的应用程序是不是一个键盘教程,文字实践中的一个字段,并且设置面板更小。一个基本的分享按钮,让您发送您键入作为一个电子邮件或文件的文本。这个程序没有做了一大堆,但它是关于复杂,因为一个应用程序包含一个键盘或小工具将必须。

放大/包含应用程序不一定要很复杂,但他们必须做些什么。该Fleksy键盘的包含应用程序是一个非常基本的笔记应用程序主要用于练习。
安德鲁·坎宁安
其他的事情都是由苹果公司建议,但不是强制性的。该公司认为,扩展的设计,以配合苹果的内置软件。第三方小部件的外观和行为像苹果自己的小部件。与照片应用程序工作的照片编辑扩展不应该从照片应用程序完全不同。肯定会有谁不遵循这些原则的开发,但大多数的iOS应用程序开发人员已经在实行的制作与苹果的UI融合应用。

虽然这些准则是比Android开发者将被用于更多的限制,苹果规定了扩展您的应用程序包含提供的数量或类型没有限制。您可以通过添加一个新的“目标”,以它在Xcode中添加一个扩展到你的应用程序,而苹果提供的默认模板为所有不同类型的扩展。

每种类型的扩展以不同的方式激活。 Widget是从通知中心启用和禁用,并且键盘是在设置的键盘部分改变(在那里你会去选择不同的语言或启用的iOS 7的绘文字键盘)。使用照片应用程序和使用任何应用程序,有一个文件选择器,当情况下,照片编辑和存储提供程序的扩展只能拿出具体分别。分享和行动扩展可以从任何应用程序调用,但是开发人员应该添加激活规则的扩展来指定什么样的数据,它将与。如果您的扩展只是为了分享照片,激活规则可以被配置以确保当用户试图共享一个URL或一个文件,扩展名不会出现。

放大/激活规则告诉什么样的文件,你的分机可以一起工作的操作系统。你不会想,如果你要上传的文件被提供的照片编辑扩展。
苹果
虽然他们都需要打包里面包含应用程式,扩充一般分别从含有应用程序本身运行。每个扩展名是自己的小二进制的。APPEX文件扩展名,可以打开,做它的工作,并关闭而没有运行包含应用程序。对于需要能够执行一些相同的任务,它们所包含的应用程序,Instagram的一个扩展,它增加了一个过滤器,以图像的扩展,例如,鼓励开发人员使用“嵌入式框架”共享负责这些代码任务。创建框架,拖放代码进去,然后嵌入到框架包含应用程序和扩展两种。唯一需要注意的是,这种方式设置的应用程序将需要的iOS 8.0或更高版本,并且他们不会在较早版本的操作系统上运行。

为什么扩展名分别来自其包含的应用程序推出的一个原因是因为严格的苹果施加的内存限制。窗口小部件是特别的限制,由于用户可以有很多都运行在同一时间。我们必须要看到一个通知中心挤满了小部件就会像iPhone 4S或iPad 2的一个内存受限的设备上执行。

放大/苹果设计的扩展有一个“生命周期短。”他们打开,他们做他们的工作,他们关闭。
苹果
此外,由于内存限制的一部分,分机不很长的运行,并正在积极清理出的内存系统。扩展的目的是尽自己的任务,然后让开道路。对于执行例如上传冗长后台任务的扩展,Apple建议扩展传递任务上传到系统中,然后关闭。

这个占地他们将如何扩展打包,他们是如何访问,以及如何表现他们在跑步时的基础知识。甚至与他们的限制,他们站到了很多添加到操作系统 - 它们很可能因为的iOS 4或iOS 5中,我们已经得到了最大的功能性的改变。更重要的是令人印象深刻的是这些扩展在不牺牲苹果的沙盒模式的工作方式,这将有助于保持你和你有关的安全性和私有,因为它可以是这几天的数据。

维护安全和隐私,以及如何的iOS不同于Android的

苹果
扩展是通过苹果的系统架构推出。第三方扩展点是不允许的。

在一个句子里,Android的方式对待安全和隐私和iOS“的方法给它之间的区别在于,Android将会给用户和开发人员足够的绳子上吊。

保持启用默认设置和读取的东西,应用程序可以要求做每次你安装的东西的时候广泛的名单,而Android用户都在收缩恶意软件或给别人提供他们的个人资料而不自知的危险性很小。但是,这些应用程序的权限可能会造成混淆。有些人想从比谷歌播放等地侧向载荷应用程序,和其他人想解开自己的引导程序,并获得root访问自己的手机并安装替代Android的分布。 Android的让人们做这些事情。这是一个功能,吸引了一些人的平台,但你做这一切在自己的危险。

相比之下,即使扩展,iOS的还是搭设的应用,其扩展和应用程序的数据之间的障碍,努力保护用户(以及他们的信息),从自身做起。对于初学者来说,应用程序仍然没有真正彼此交谈直接正如我们前面所提到的,扩展是其包含的应用程序,通常是独立推出小型二进制文件。这一称呼为扩展名(苹果称之为“主机应用程序”)应用程序直接一旦被推出了延长会谈,但主机的应用程序从不直接与含有应用程序进行通信。即使当一个主机应用程序要使用一个扩展,它会发送一个请求通过苹果的系统框架,然后启动扩展,应用程序不直接启动扩展。

放大/扩展和“主机应用程序”的推出扩展可以沟通,但延长不直接与它包含的应用程序进行通讯和共享数据。
苹果
爱德华多·丰塞卡,在iOS开发者在FortyTwo公司,帮助解释了如何保持的iOS应用程序和扩展彼此屏蔽。

“每一个扩展是主要的应用程序包内的一个单独的包,包含一个单独的可执行文件里面,”丰塞卡告诉人工鱼礁。 “有趣的是,一个扩展名是不是一个应用程序,它被通过苹果的系统框架调用,使用一个定义良好的接口,生成一个进程并执行扩展,所有的代码放在一个单独的执行上下文中执行,这意味着没有得到执行里面的第三方“应用空间。”因此,对于将支持扩展(如Safari),也有关运行您的扩展里面的其他应用程序的任何问题的任何应用程序的风险。他们就像油和水不混合。“

即使扩展需要,其包含的应用程序进行通信,它必须这样做间接通过系统API。默认情况下,包含应用程序和它们的扩展甚至不能访问彼此的数据。

放大/当扩展和它们所包含的应用程序进行通信,它们必须这样做间接通过API和特殊的共享数据容器。
苹果
要共享一个包含应用程序及其扩展之间的数据,你需要做的包含应用程序和应用程序组,它允许一些数据要在他们两个之间在这两个沙箱之外的第三个容器中共享它的扩展部分两者。如果你曾经想知道为什么签约到Chrome浏览器在iOS上也可以注册你进入地图或谷歌驱动器,这是因为他们是谷歌的App集团的所有成员。即使应用程序组被限制在共享某些类型的数据,它是“不是面向用户的。”它们可以共享数据库,高速缓存,和登录信息,例如,但不是本地存储的媒体或文档。

放大/放置一个包含应用程序和一个扩展到同一个应用程序组可以让他们分享一些类型的数据在共享位置。否则,应用程序和扩展保存在单独的容器的数据。
苹果
一个简单的方法来概括这一切:苹果不希望一个应用程序,以便能够进入另一个应用程序的沙箱。扩展是像小沙箱中之沙箱,以促进不同应用程序之间的通信,而从来没有与主机应用程序共享他们所有的包含应用程序的数据直接。

扩展的执行方式也不同于应用程序的执行方式。如果您在开始使用相同的扩展名在两个或多个主机应用程序的同时,如果你火了在Safari的扩展名,然后跳过去,开始相同的扩展在邮件中,例如,该系统实际上推出的两个单独的副本该扩展并运行它们作为单独的进程。他们不共享相同的内存寻址空间。这样可以使两个主机应用程序的同时具有扩展的沙箱中的数据,并能持续扩展的所有实例从走下去如果崩溃。像Chrome和Safari浏览器上运行的所有个别标签为同样的原因独立的进程。

Android提供自己的应用程序沙盒模式,其目的是保护存储在一个应用程序的数据从一个应用程序没有权限访问它被访问,尽管这可以通过开发者可以绕过,如果他们想要的。尤其危险的权限设置,将让所有的应用程序的数据读取和写入的任何其他应用程序就被抛弃在后面的Android 4.2,但内容提供商和解析器仍然可以一起提供的应用程序可以访问其他应用程序的数据。

同样,这些都是使用得当,这将保护您的数据就好了机制,但所有的Android的用户所要做的把这个数据处于危险之中是授予权限的恶意应用程序,人们不能指望读那些应用程序权限对话框小心他们安装一个应用程序每次。苹果还提供了方便的列表和切换为已请求访问存储在第一方应用程序,功能谷歌考虑为Android 4.4,但在最终版本中删除数据的所有应用程序。这是没有直接关系的扩展工作方式,但它的的iOS 8将如何继续牺牲灵活性,安全性和私密性的名称的例子。

苹果已经放在其他限制的扩展,他们不能使用所有的API的应用程序就可以了,尤其是自定义的键盘是由许多不同的强制性限制,并建议规则,但是这应该涵盖的基础知识,如果你想知道如何苹果的推广模式不同,谷歌的各种跨应用程序的通信机制。在它的心脏,iOS的8相比仍有到Android锁定的操作系统。第三方应用程序还不能直接互相分享他们所有的数据。的iOS的体验某些元素,包括主屏幕,默认的应用程序,留在每一个iPhone和iPad存在统一的。

尽管如此,它看起来像苹果已经解决了有关的方式,不会大幅增加操作系统的内存需求或危及其安全模型平台的最大的抱怨之一。我们可能看不到苹果的执行的所有弱点,直到我们使用的iOS设备8吨与安装的扩展,但在纸面上看起来很有希望。我们将有机会参加一个更好看的扩展在实践中我们充分的iOS 8回顾今年秋天,在此期间对扩展苹果公司的公开可用的文档和演示文稿的WWDC是有用的资源,如果你想了解更多信息。 Macstories的费德里科Viticci也写了这一点,谈论更多关于什么特定的扩展能做和不能做什么,以及如何开发人员反应,该功能很好的概述。