智能手机的开放与封闭刍议

作为一个从05年就浸淫其中的玩智能手机玩家,我已经先后拥有了两台WM+Xscale的HTC手机,一部iPhone,最近刚刚又搞了部 Google/HTC N1,准备继续做新技术的小白鼠,同时也体验一下新技术是如何惠及人类生活的。N1入手不久,琐碎的快乐和烦恼自是不少,但是都无足挂齿。直到最近,有个 搞开源朋友的托我找人从美国带一台将于4月3号完全封闭的iPAD,莫名地就有了些感悟和心得,想跟圈子里面的朋友分享一下。

目前的智能手机,从技术构成上,可以粗略的分为两类:开放的封闭的,泛指涉及其中的软硬件平台。请注意这里我不是用的是开源,而是开放。在我的上下 文里面,基于Symbian的手机还有iPhone算是封闭的,Google Android和基于Maemo/MeeGo的手机算是开放的。自然这里的封闭也未必是全封闭,譬如说作为当今智能手机不可或缺的浏览功能,Apple的 Safari浏览器就从开源项目KHTML中获益良多,甚至iPhone的操作系统OS X也和FreeBSD不能完全摆脱干系。

先说说我买各款智能手机的背后动因:最开始要选择买Wintel的智能手机,是因为从内心里面抵触那些显得小众又不那么开放的其他选择的 (PalmOS和Symbian归为此类),其实现在回想起来未必是是最佳选择,个中原委我会在以后的章节中说明。买iPhone和Google N1是着了口碑销售的道,而且是面对面的口碑销售,而且兼带试用的那种,拿过来一用:哎,这款手机还真是智能啊,买了!

再谈谈买完手机后我做得最多的事情,就四件事,一、找ROM,二、刷ROM(在iPhone上异化为升级固件和越狱)三、找软件,四、安装软件。甘 苦颇多,但是乐此不疲。现在越来越多的人把iPhone的成功部分归于AppStore的存在,其实这种需求在Symbian,Palm OS以及WM智能手机时代就广为存在,看看当时满互联网的手机软件下载网站就知道,只可惜当时提手机提供商和小白鼠们都太技术,太PC,没能把这种需求推 及到那些不太技术的潜在客户,白白错失了一个大的商机,现在这几家公司已经从Apple的成功中吸取了经验,纷纷开起了自己的AppStore,Ovi Store, Marketplace,诸如此类,但怎么看都更像亡羊补牢,仓促应对市场需求而已。这种层次、这种境界,跟乔布斯同志相比,显然差得不是一星半点,因为 他掌握了最广大消费者的消费心理:越简单越易得的东西越好,简单反应了需求,易得提供了手段。这点,别告诉我你不赞同,不赞同是因为你跟我一样,是个不折 不扣的技术呆子(technical nerd)。

那AppStore的成败跟开放和封闭有啥关系呢?有,而且关系巨大,基本结论就是:相对封闭的东西容易更快地建立有效的生态环境,请注意其中的形 容词和副词,没有太多理论基础,就跟大家举个简单例子:我为iPhone开发的一代应用,可以做很少调整就能跑在目前的3GS手机上,相比较而言,开放的 Android上就没那么简单了,同样是Android 1.6x,凯立德地图跑在Moto Droid上很好,N1上基本上就完全不可用,这还不算糟糕的,糟糕的是需要借助NDK进行开发,以满足性能需求的一些应用,如媒体播放器,你想想,虽然 两款机器都是用的ARM,Moto Droid用的是Cortex A8,Google N1用的是Snapdragon,解码芯片完全不兼容,你说这些开发者该咋办?有熟悉软件开发的程序员可能会说,我在芯片的功能之上做抽象,做解耦 啊,so what?你是不是还要写几套适配器,应用还得做个智能侦测之类的?不做这类工作也行,那就索性在market place挂上n套应用:万能播放器-A8版本,Snapdragon版本,Tegra版本,直接把消费群体领向技术呆子群体拉倒。

那么从AppStore的生态建立角度来说,是不是封闭就是最好的呢?不是,往根子里挖,Apple的封闭其实是不自觉中解决了软硬件的兼容性问 题,开放的系统如果保持良好的兼容性,同样具有此类优势。Android的问题就是虽然它开放了,但是做得不彻底,支持不同的ARM芯片而且不做抽象就代 表着引入了万恶不赦、万劫不复的兼容性问题。那么开放的操作系统如何保持良好的兼容性呢?依我看只有一条路,硬件上解决兼容性,最根本的解决知道就是一家 独大(我看好Intel,哈哈),要么就是通过软件上的再次抽象解决兼容性问题,这个工作应该由操作系统开发商来做,Google同志可以学学当年 Microsoft力推DirectX,或者直接使用OpenXL拉倒。

今天就喷到这里,后面再慢慢聊。

分类: 其他

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA笔记

type [upper:lower] vector_name;例如wire [0:7] b; // 8-bit wire where b[0] is the most-significant bit.ATM是Asynchronous Transfer Mode(ATM)异步传输模式突发传输(Burst transmission),一般也称为数据突发&…

部署 DevStack - 每天5分钟玩转 OpenStack(17)

本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作系统 安装 Ubuntu 14.04,并配置 eth0 的 IP devstack-controller 192.168.104.10 devstak-c…

理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)

作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限维护 OpenStack Services 的 EndpointAuthentication(认证)和 Authorization(鉴权)学习 Keystone,得理解下面这些概…

C++11 Lambda函数(匿名函数)

C11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问。 Lambda表达式的语法通过下图来介绍: Lambda表达式的引入标志,在‘[]’里面可以填入‘’或‘&…

时序约束与分析

时序约束与分析 设计约束所处的环节:约束输入、分析实现结果、设计优化。 设计约束分类 物理约束I/O接口约束(例如引脚分配、电平标准设定等物理属性的约束)、布局约束、布线约束以及配置约束。 时序约束:设计FPGA内部的各种逻辑或走线的延时,反应系统的频率和速度的约束…

通过例子学习 Keystone - 每天5分钟玩转 OpenStack(19)

上一节介绍了 Keystone 的核心概念。本节我们通过“查询可用 image”这个实际操作让大家对这些概念建立更加感性的认识。 User admin 要查看 Project 中的 image 第 1 步 登录 当点击时,OpenStack 内部发生了哪些事情?请看下面 Token 中包含了 User 的 R…

从Linux到Meego

网上看到一个Intel的强写的一篇关于meego的文章,很是受用,一篇好的文章就好比一顿每餐,在这里与大家分享。 从2月份Meego发布后一直在学习,现在把一些学到的内容跟大家共享一下。 首先想说说Meego是什么,Meego首先是…

理解 Glance - 每天5分钟玩转 OpenStack(20)

OpenStack 由 Glance 提供 Image 服务。 理解 Image 要理解 Image Service 先得搞清楚什么是 Image 以及为什么要用 Image? 在传统 IT 环境下,安装一个系统是要么从安装 CD 从头安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题&…

C++ Applications

C的应用 C Applications (English version): http://www.stroustrup.com/applications.html 这里有一个有关系统、应用程序和库的列表,列表中的全部或者大部分代码用C编写,当然,该列表并不全面。即使我如何努力,我也不能列举一个…

四选一多路器

四选一多路器 状态转换 d0 11 d1 10 d2 01 d3 00 信号示意图 timescale 1ns/1ns module mux4_1( input [1:0]d1,d2,d3,d0, input [1:0]sel, output[1:0]mux_out ); //*************code***********//reg [1:0] mux_out_reg;always(*)begincase(sel)2b00:mux_out_reg d3;2b0…

简化从Win32到Windows 10的迁移之路

面对庞大的传统Win32应用程序生态所取得的巨大成功,Microsoft目前在Windows 10方面遭遇了一个重大挑战。这使得该公司面临两难困境:因为潜在买家的市场可能不太大,因此开发者不愿意为Windows 10开发应用;而由于用户无法使用他们惯…

了解OPhone平台---OPhone平台架构和主要开发组件

OPhone平台基于Linux和开放手机联盟(OHA)的Android系统,经过中国移动的创新研发,设计出拥有新颖独特的用户操作界面,增强 了浏览器能力和WAP兼容性,优化了多媒体领域的OpenCORE、浏览器领域的WebKit等业内众…

如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)

本节首先讨论 image 删除操作,然后介绍 OpenStack CLI 的使用方法,最后讨如何 Troubleshoot。 Web UI 删除 image admin 登录后,Project -> Compute -> Images在列表中选择格式为 ARI 和 AKI 的 image,点击点击确认删除 …

异步复位的串联T触发器

异步复位的串联T触发器 T触发器的特征方程 Qn1 T Qn ’ T ’ Qn T⊕Qn T触发器的特征表 信号示意图 timescale 1ns/1ns module Tff_2 ( input wire data, clk, rst, output reg q ); //*************code***********//reg m;always(posedge clk or negedge rst)beginif…

硬件工程师笔试题

转载 http://djydiy.com/index.php/archives/256 模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 基尔霍夫定理包括电流定律和电压定律。 电流定律(KCL):在集总电路中,任何时刻&#xff0…

Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

本节通过日志详细分析 Nova Pause/Resume 操作。 有时需要短时间暂停 instance,可以通过 Pause 操作将 instance 的状态保存到宿主机的内存中。当需要恢复的时候,执行 Resume 操作,从内存中读回 instance 的状态,然后继续运行 ins…

Windows® CE 系统中的同步机制

看到篇好文章,呵呵,独乐乐,不如众乐乐 本文转自http://blog.csdn.net/thl789/archive/2006/01/17/582246.aspx ,转载请注明出处 摘要 ... 1 目录 ... 1 一、 WinCE进程 /线程模型概览 ... 1 二、临…

Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)

本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作。 Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 instance 的状态保存到宿主机的磁盘上。当需要恢复的时候,执行 Resume 操作,从磁盘读回 instance 的状态…

关于奇偶校验

关于奇偶校验 奇校验(Odd Parity):所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如: 1 0110,0101 0 0110,0101 偶校验(Even Parity):所有传送的数位&am…

More C++ Idioms

http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms