Zheming's profile享受生活BlogListsGuestbookMore Tools Help

享受生活

畅游互联网;用苹果点亮生活

Zheming Lin

欢迎在此留言,将逐一答复。或者也可以给我发消息。
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.

联系方式

给我发邮件
我的Windows Live Messenger账号
Skype用户名:zheming_lin
April 16

苹果为什么要做 Push Notification而不是真正的“后台运行”?

iPhone 是一个革命性的移动互联网终端,其 Multitouch 多点触控操作是在鼠标之后的又一革新。但是,在 iPhone 上迟迟不见后台运行程序的支持。虽然,从技术的角度来说,iPhone OS 在系统架构上和 Mac OS X 如出一辙,同样也支持后台程序(比如 Apple 的电话程序等,都是可以在后台运行的),但是 Apple 是从政策上不允许第三方应用程序在后台运行。其理由是技术上的“第三方程序在后台运行会消耗大量的电能,影响设备的待机时间”。但是我们依然可以看到,主流的掌上设备操作系统无一例外的支持第三方程序的后台进程,也不见得这些设备的电能受到如此大的影响。可见这个技术问题,也许只是一个托辞,那么,Apple 为什么要做 Push Notification 呢?

从我的理解来看,Apple 在 iPhone 上市初始阶段,仅允许第三方程序使用 Web App 的方式运行在 iPhone / iPod touch 的 Safari 浏览器中,并为 Safari 浏览器(确切的说是 Webkit 引擎)新增了很多特性来支持这些仅为 iPhone 开发的 Web App。并且,有一些有意思的增强可以在 Apple-Specific Meta Tag Keys 这个页面中找到。其中使用 “apple-mobile-web-app-capable” 这个 meta-tag,可以让 Web App 在 Safari 中以全屏的方式运行,这,难道不就是一个 WebOS 上应用程序的样子?

从这里再联想到 Push Notification,Push Notification 是要求开发者自己有一个 Web 服务器的,并且可以使用 Push Notification 服务来给 Apple 的服务器发送通知消息,之后这个消息会被用推送的方式转发到 iPhone/iPod touch 设备上。可以想见,这个方式,是可以同时让本机的程序,和 Web App 都可以采用的通告方式。反而,让 Web App 这样一个基于 RESTful 的 HTTP 协议下的产物在后台运行,是不现实的。

结论很简单,这一切都是为了让 iPhone/iPod touch 这个 Apple 下一代的掌上明珠,可以持续站在 Web OS 时代的最高峰。iPhone 是一个革命性的移动互联网终端。

March 27

联通的预存话费换手机方案

OK,下面看一下联通的预存话费优惠方案。由此可见,iPhone 在国内正式上市后,大概可能的价格范围。

这里是联通当前的预存话费优惠购机方案

签约时间都是在12个月,预存12个月,每个月258/358,可以优惠1008/1608 元人民币。

iPhone 3G 在香港的售价是 8G HKD 4680 元(预存+购机费),这是包括了购机补贴的价格。而裸机是 HKD 5400,苹果产品在两地的价格差距百分比(汇率HKD:CNY 按照 0.89:1 计算,大陆的价格是香港价格的 120% 左右。而如果仅考虑近期上市的新品 shuffle/Mac mini/iMac/Mac Pro,这个比例缩小到了 114%。 因此可以看出如果iPhone 在大陆上市,很有可能的价格(裸机)是 5400 HKD * 0.89 * 114%= 5478 元左右。这个是裸机的价格方案

采取一年合约的方式,预存话费 3100 元,每个月最低消费 258 元,补贴 1008 元,则需要使用: 3100+5478-1008=7570 元。 !!! 预存话费 4300,每个月最低消费 358 元,补贴 1608 元,则需要使用 4300+5478-1608=8170 元。!!!

这里的政策是全国政策,并且还是 2G 的方案,但是在各地都有很大的灵活空间。这样来看,除非联通在终端补贴上作出很大让步,否则是不能很好打击水货市场的。

March 18

后台多任务确实不是一个必要的东西...

iPhone 3.0 中的这个 Push Notification,有点像很多年前提出的瘦客户端的感觉。

瘦客户端,就是处理都不在本地,本地就搞定输入输出的东西,通过网络的方式,用服务器来搞定信息处理。

如果网络状况OK,并且不需要太复杂的应用的情况下,瘦客户端模式是有很大优势的,而后台运行程序,则不那么必要了。

首先,后台运行的程序,和前台的交互方式,基本只有 notification 这么个交互。比如有新的 IM 来了,提示用户有新的 IM,点一下打开阅读。后台运行只是让设备可以随时获知最新的 IM,然后即时通知用户。而 Push Notification 就是把后台运行的程序放在了云端,而已。有了这个,就根本不需要本地登录了。发送一个登录信息到服务器,说我要登录了,然后服务器处理登录,push 消息过来就是。典型的就是 meebo 这样的程序。

其次,Push Notification 应该是 Apple 提供的一个整合的服务,这样有多个程序需要发送通知,就只要一个连接就可以完成,极大节约了客户端资源和网络开销。

在 iPhone 这样一个处理资源受到非常大限制的终端上,用户需要的体验是快速的打开/切换。因此,尽量把处理的操作移到云端,解放客户端资源,这是发展的趋势。相比现在 App Store 里面很多简单的小应用都需要花费好几秒的时间来打开,运行,这不是一个好事情。本地应该是作为一个缓存的概念存在的,速度对于体验来说非常重要。

March 17

关于 iPhone OS,Apple Branded NetBook

在一天后,就知道关于 iPhone OS 3.0 的详细情况了,在这之前,说说自己的一些猜测和想法。

首先是,Apple 要维护好一个 OS X for iPhone,再维护一个 OS X for Mac,已经是比较吃力的事情,如果还要添加一个 OS X for NetBook,应该是一个噩梦。所以,就算 Apple 要推出这样的产品,那也应该是采用现有的操作系统而非创建一个单独的版本。
其次,由于分辨率对于掌上设备比较重要,而 iPhone 上的程序都是在一个固定的分辨率下开发的。如果多一个分辨率更高的设备,则对开发者来说,会是一个噩梦。除非,分辨率无关的 iPhone 开发?这个应该不是个太大的问题,用可缩放的矢量来代替位图好了,但是这对于设备的性能又提出了更高的要求。
再来考虑 iPhone 在 Apple 产品线中的定位。可以知道的是 iPhone 刚出来的时候,是没有第三方程序的,并且其架构上一开始设计出来就是不允许第三方程序运行,这个从权限设置/内存管理等方面就可以看出,Apple 的 SDK,是仓促推出应付越狱社区的。2.0 的 SDK,也是 Apple 将自己用来开发软件的工具,加上了一些对安全性的考虑,糅合了 iTunes 的分发渠道,仓促推出的,很简单,甚至简陋。那 iPhone 是个什么角色呢?移动互联网终端。这个词听起来怎么那么耳熟?嗯,其实 iPhone 就是个 NetBook,就已经可以完成大部分 NetBook 所做的事情。
Apple 在 WWDC 上推出 SproutCore session,为的就是给开发者开发 Web Apps 提供方便的框架,这个框架和自己的 Cocoa/Objective-C 是一脉相承的。这样,再联系 iPhone 上最初只允许使用 Web App,就可以看出 Apple 是希望控制终端战略,提供内容产生和分发,这也是 Apple 一贯的商业模式。
这样,Apple 还需要推出一个介于 MacBook 系列和 iPhone 系列中间的一个全新系列的产品么?如果需要,也是这两个系列的一个延伸,还必须防止因为新产品的引入而挤压现有产品线的空间。这是个很让人头痛的问题。普遍认为 MacBook 价格相对较高,那么,一个低价的产品,可以方便访问互联网服务,轻便小巧,比 MacBook 屏幕小,这样的产品在操纵感上应该比 MacBook 差很多,应该不能算是 Mac 系列的。而这个产品价格应该要比目前的 iPhone / touch 稍高,屏幕稍大,使用同样的触控界面。这样的话,谁还需要 iPhone/iPod touch?仅仅因为价格便宜么?价格绝对不是 Apple 用来区分其产品线的依据。所谓专业级/消费级产品线才是 Apple 的划分方式。现在的 iPhone/iPod touch,就会被当作廉价版的 Apple NetBook,各方面均没有特色,只是小一些,便宜一些,这也不是 Apple 的产品区分方式。虽然在移动领域,大小确实很重要,但是将 NetBook 用来代替掌上设备,略显大,用来代替电脑,又太不实际。确实是一个尴尬的产品。
只好拭目以待了。

February 25

恢复 Safari 4 的 Inline Progres Indicator

Safari 4 的新 Tab 很不错,可是加载进度指示条消失了,这个不好。虽然可以通过这个命令来恢复成老界面:

$ defaults write com.apple.Safari DebugSafari4TabBarIsOnTop -bool NO
但是毕竟还是蛮喜欢新的 Tab 位置的。那么可以在终端中使用如下命令(注意开始的$是提示符):

$ defaults write com.apple.Safari DebugSafari4IncludeToolbarRedesign -bool NO
$ defaults write com.apple.Safari DebugSafari4LoadProgressStyle -bool NO

这样就保留了 Safari 4 中 Tab 在顶部的设置,同时保留了原来的工具栏。