这里是兄弟的世界。
Android Intent: the UNIX pipe for GUI
UNIX 哲学中有很重要的一点,就是 pipe (管道) 的运用。正是由于管道的存在,才使得另一个著名的 UNIX 哲学成为可能:"Write programs that do one thing and do it well." 每个程序完成自己的工作,然后用管道串起来,然后多复杂的工作都能轻松搞定了。
但是 UNIX pipe 处理的是标准输入输出,因此只能用在 CLI 上。在 GUI 上一直没有类似的东西出现。 Apple 在 Mac 上做过 AppleScript 和 Automator 两个尝试,可以部分实现 UNIX pipe 的效果,但是它们使用起来都过于麻烦,需要太多的用户操作。
第一个在 GUI 上基本实现了 UNIX pipe 的,我觉得要算 Android 中的 Intent 接口。文档中的概括性介绍是这样的:
An intent is an abstract description of an operation to be performed.
Intent 是个贯穿 Android 核心的概念/接口,在 Android 中大部分的操作都是由一个 Intent 发起的。在桌面上点了个 Gmail 的快捷方式来 打开 Gmail?那其实是你的桌面程序 (Launcher) 发起了一个「我要启动 com.google.android.apps.gmail.MainActivity」的 intent 而已;在 Gmail 里菜单里面选了「选项」?那其实也是 Gmail 发起了一个「我要启动 com.google.android.apps.gmail.SettingsActivity」的 intent 而已。。。
当然这里举的例子跟 UNIX pipe 无关,咱们再来看下面几个例子:
我在 Google Currents 上看到了一篇不错的文章,想分享给朋友们。跟大多数 Android app 一样, Currents 里面也有个分享按钮的:
点了后会给出一个可以处理这个格式的内容的程序列表 (可以处理的程序太多,截图中只是其中一部分而已):
然后你可以选 Gmail:
或者 Google+:
或者 Twitter:
或者 Facebook, Path, 新浪微博,豆瓣说。。。只要你装了相应的程序,你就能分享到你想分享到的地方。
这里的分享动作就是一个 Intent。 Currents 只用管告诉系统说我这里有段文字要分享,然后后面的事情就完全不用操心了。系统自然会找出用户安装的所有可以用来分享文字的程序,让用户来选择自己想要的那个,然后把文字传给相应的程序,由程序来完成分享的工作。这样做的好处是什么?好处当然是 Currents 的程序员不需要在自己的程序里面写上一大堆分享到 twitter 的代码,分享到 google+ 的代码,分享到 facebook 的代码。。。
「什么?还有中国人用我们的程序?那我们是不是还得写分享到新浪微博和入人网的代码?」
「有日本用户抱怨我们不支持 mixi 了,咱是不是考虑加一下?」
...
iOS 5 说他们终于深度集成 twitter 了,在任何程序里面都可以直接分享到 twitter 了。但是其实 Android 从第一个版本开始,早就「深度集成」了所有社交网站了。。。
上面的例子是文字的,如果你要分享的是图片,体验也是相似的:
你看,你想用什么就能「深度集成」什么。在没有 Intent 的系统上,如果你不幸是个不像 Flickr 这么主流的图片站的用户,你能想象每个能输出图片的程序都写分享到 SmugMug 的代码么?
通过 Intent,你完全可以轻松完成任何图片处理流程,比如:拍照,分享到 Skitch 用红圈圈出重点,然后分享到 Facebook。
也正是因为如此,每个 Android app 都只需要管好自己的工作就行了。比如 Flickroid 就是一个优秀的 Flickr 上传工具,在早期版本中甚至在安装完后你都不能在 Launcher 中找到程序入口,因为它唯一的功能就是把图片上传到 Flickr,所以你只用在相册或者别的程序中把图片分享给 Flickroid 就行了。
"It just works."
分享只是 Intent 的无数种用法中的一种而已。除了分享外, Intent 还可以拿来干很多别的事情,比如要数据。Google Authenticator 是一个给 Gmail 或者别的账户生成登录时使用的基于时间的临时密码的程序。在设置账户的时候,需要扫描一个二维码,但是 Google Authenticator 完全不需要自己实现这个功能, Barcode Scanner 或者 Google Goggles 或者别的程序已经实现好了:
所以 Authenticator 只需要给系统一个 Intent 说我要扫一个二维码就行了。系统会让用户选择一个程序来完成这个工作 (或者如果只装了一个或者选过默认程序的话,直接打开那个程序),然后把扫描后的结果返回给 Authenticator。
btw, 昨天在网上看到一篇吹微信的文章,于是我去 Android Market 上看了一眼,结果就被截图震惊了 (原图在此,我这里留了个备份):

这群人能放着 Android 基于 Intent 的分享功能不用而用这种山寨 iOS 的实现,不得不说很符合腾讯一贯的山寨本色。
2 月,芽庄日出 (Nha Trang, Vietnam):
2 月,億载金城 (台南,台湾):
4 月,绿色 (古猗园,上海):
5 月,海滩边上的船 (葫芦岛,辽宁):
7 月,甜品楼 (Google Campus, Mountain View, CA):
9 月,大峡谷的日出 (Grand Canyon National Park, AZ):
9 月,夕阳 (Mihama, Chata, Okinawa, Japan):
11 月,芝加哥夜景 (John Hancock Observatory, Chicago, IL):
12 月,普吉日落 (Le Méridian, Phuket, Thailand):
最后这张不是我自己拍的,但是是最能代表全年的一张 (Sunabe Sea Wall #1, Okinawa, Japan):
看的电影和玩的游戏都比 2010 少了不少。水木 TV_Game 版的例行总结我都不好意思写了。 blog 也少了不少。
工作上这是我人生中第二个一整年从 1 月 1 号到 12 月 31 号都为同一个公司工作的一年 (上一个是 08 年为搜狗)。借工作之便出了不少差,去了一些地方。不过因为出差的关系看的演出也少了不少 (主要是不知道啥时候就要出差了看到有兴趣的演出也不敢提前买票)。
说到出差,今年的飞行记录是:
当然今年除了结婚以外最大的收获就是潜水达到 12 次 (芽庄 2 次,冲绳 8 次,普吉 2 次),把某人拖下水拿到潜水证,自己顺便学了高级证。
今年年初福大爷身体不太好,做了个手术,幸好到了年底目前看来恢复和控制的不错,希望明年他不要再受苦了。
老早就预定了 Star Wars: the Complete Saga,结果去美国出差的时候在发货前一天回国了,于是只好托同事帮我带回来。加上休婚假,于是直到十一后才终于拿到手:
拿到手后赶紧按照差不多一天一部的速度把全 6 部给重看了一遍——考虑到不到一年前重看过一遍,这次看的是评论音轨和字幕。从里面果然看到了不少有趣的东西:
This is George Lucas, and I'm the writer/director of Star Wars. I made this film a long, long time ago... in a galaxy far, far away.
I chose R2 to be the one that was introduced first. Because I guess I gave him the priority because em... I don't know. I guess I'm partial to him. Don't tell 3PO that. He'll get upset.
另外还提到了一些彩蛋和致敬:
So this is how liberty dies, with thunderous applause.
从日本蜜月归来。照片照惯例见 Flickr。游记现在懒得写,先写点 tips 方便各位也想去日本玩的人。
日本大使馆实在太懒了。懒得处理兲朝人民的旅游签证申请,于是所有国内的旅游签证业务都是包给各个旅行社的,但是兲朝的旅行社啥质量大家也是知道的。。。
我这次办的是新的三年多次有效的「冲绳签证」,找的是上次 broom 找的那家旅行社。估计是个关系户开的皮包公司,目测只有一个人,但是基本靠谱,价格也比别家便宜一点,比如我问她冲绳签证多少钱,她直接问我在别处问的最低价多少。。。也没有有的旅行社的一大堆奇怪的要求,比如必须有存款证明必须押很多很多钱的押金之类的。想找的可以私下找我要联系方式。
国际机票部分国航、东航、JAL 和 ANA 等都有中国-日本的航线,其中东航如果提前足够久 (我这次是大概提前两个月) 而且选的日期合适,可以买到很便宜的往返机票,比如我这次买的是 ¥450 单人单程也就是说 ¥900 往返,而且往返不要求在日本的是同一个机场 (比如我这次就分别是 OKA 和 KIX)。但是:
我主要是因为要去冲绳,而当时只有东航有直飞冲绳的航班 (后来海航也开了 PEK-OKA 直飞航班了),所以选了这个,反正北京到上海这种航线竞争透明也不会太贵。如果不在上海也不去冲绳的话,不一定要选东航。
日本国内的交通本岛就是新干线,别的地方就是日本的国内机票。当然本岛比如东京到大阪也可以坐飞机,一般来说也会比新干线便宜,不过折腾而且都去日本了不体验一下新干线么?不过新干线超级贵就是了,比如我们坐的东京到京都就花了 12710 日元一个人。。。
当然从冲绳到本岛还是要买机票的。我这次是用去美国出差累积的 CO 里程兑换的 ANA 的机票,当然如果买的话也还好不算很贵而且价格基本透明。基本上你积了 Star Alliance 的航空公司的里程,比如 CO, BMI, UA 啥的就能打电话换 ANA 的日本国内机票。什么你说你积的是国航?你看到我同情的眼神了没?
日本有个叫 Super Hotel 的连锁酒店基本上到处都有 (好吧,冲绳除外。。。),而且价格适中设施还不错,比如大阪和京都的 Super Hotel 基本都自带天然温泉。如果没有什么特殊要求可以考虑就住 Super Hotel。除了 Super Hotel 外还有个连锁是 Hearton,价格会便宜一点但是感觉舒适下降的程度远赶不上便宜的那一点,所以如果预算不是很紧的话不是很推荐。
有个需要特别提出来推荐一下的是京都的和式旅馆: Nishiyama Ryokan (西山旅馆)。京都的和式旅馆大部分都价格贵的离谱,这家算是价格适中的。不过最重要的是老板超 nice!这家是西山家开的家庭旅馆,老板就是一群姓西山的人。我们每天早上要出门的时候都会在大堂被老板娘叫过去给我们免费表演茶道然后一人给一杯抹茶喝;时不时的会有日本文化活动教客人茶道、书法、围棋什么的 (也免费); check-out 的时候也被老板娘叫去表演茶道然后还聊了很久的天,得知我们接下来要去大阪她以前在大阪待过几年的儿子还跑来很热心的给我们推荐大阪哪儿好玩。对了,老板娘虽然是个 50 多岁的大妈,但是英文至少是日本人的平均水品的,所以不用过于担心。。。另外一个不用担心的是至少这家和式旅馆房间内也是有浴室和洗手间的。
我们主要把购物集中在了大阪的心斋桥地区。这里的整条购物街基本每家店都:
但是即使如此,因为日元汇率坚挺的关系,在这里买的化妆品跟淘宝价一比还是便宜不了几块钱。所以如果是淘宝上买的到靠谱的话,完全没有必要跑去日本带化妆品。
不过日本的衣服很便宜。
这次比较意外的是日本大部分的取款机是不支持银联的。不过在有两家取款机比较多的银行支持银联,所以我基本都是在这两家取的:一家是 JP,即日本邮政,基本上你在地图上看到有邮局的地方就有取款机可以取银联,不过要注意有的邮局晚上关门后取款机也是会关的;另一家是 Seven,即国内常见的 7-11,也是有 7-11 便利店 (貌似在日本已经全部改名叫 Seven 了) 的地方就会有取款机,不过意外的是感觉日本的 Seven 远没有 FamilyMart 和 Lawson 多。。。
机场的话我在那霸机场二楼找到了一个支持银联的取款机,别的机场没去找不过既然那霸都有了,应该没理由没有才对。不过为了以防万一出国前还是可以先换个一两万日元用来打车或者坐地铁。。。
貌似是这个系列的 blog 目前为止片子最少的一篇。。。
1、倩碧2号水: 喜欢
清洁效果好,化妆棉上真的有脏东西,酒精挥发的清凉感很舒服。
2、倩碧黄油(有油):一般
和水一起用,效果更好一点。涂上有时候太油,有时候保湿不够
3、倩碧 城市隔离 :不搓泥就好了
物力防晒,不会过敏。之前一直很好,但最近突然开始怎么都搓泥。另外有点小油,除此之外都很好。
4、origins 睡眠面膜: 一般
容易弄到枕头上。效果还可以。味道太香了
5、兰蔻粉水:喜欢
直接拍,因为太粘了,不好用化妆棉。马上能看出来脸色有提亮
6、Olay Regenerating Serum:喜欢
上脸之后,有点水,也有点滑,但都不太过。不会很油,轻薄,适合夏天。据说还能抗氧化。
wish list: 加抗氧化的,水和面霜一起。 不会搓泥,轻薄一点的物力防晒
----------------------------------------------
1、倩碧洗面奶:不喜欢
刚开始过敏了。感觉像冲不干净。
2、origins 一举两得:喜欢
洗完稍微一点点干。
3、origins 蘑菇系列洗面奶:味道太大
干手干脸直接用,清洁又保湿。不适合天天用,味道太大了。
4、兰蔻洁面乳:喜欢
泡沫丰富,洗的干净,能卸防晒
wish list:能卸防晒,能洗干净
-----------------------------------------------
1、倩碧 all about eyes: 没感觉
没有负担,也没有感觉。不起脂肪粒
2、契尔氏牛油果:太油
wish list: 心里安慰。。
------------------------------------------------
1、兰蔻小黑瓶: 没感觉
2、倩碧宛若新生面霜:不喜欢 假滑
3、倩碧宛若新生面膜:一般 有亮粉
1、上个星期太阳还能把人烤化了,今天早上出门,穿凉拖就开始冻脚。林肯的天变化太快。看样子,离下雪的日子也不远了
2、昨天一只小松鼠好像死在家边上了。先是看见它没头没脑的在墙边乱撞,看见人也不知道躲,隔壁老大爷说,几次差点冲到他家去,以为是玩的发了疯,等到晚上就看见它趟在地上不知道是死是活了。今天早上出门看,已经不见了踪影。但愿是被好心人带走了,一只松鼠,实在无能为力,要是一只小猫,我还能想想办法。
3、买了秤,控制体重,每顿饭吃一大堆水煮的,或者干脆是生的蔬菜+一点点牛肉。真是节约做饭时间啊,不知道能坚持多久。
4、实在没有片看,开始重温老片。下了全部的friend,从头开始看,还是很好看啊。还在下boston和格蕾,好期待重新看第一季的格蕾哦,温暖暖的,嗯,还有X-men, 我已经想不起来它演的到底是什么了,从头来过。
本来想找个周末去趟LA,可是无奈徐同学作业繁重,那就找个海滩吧。Santa cruze beach,听说没有半月湾漂亮,可是也已经足够美到让人身心愉悦啦。
传说中的吉野家,吃到地道牛肉饭
周末在家睡饱了才出门,先去吉野家打牙祭.(加州人民的生活简直让林肯人民那是羡慕嫉妒恨啊~~~)
一路小堵车,一个多小时以后才到。摇下车窗拍的街景果真清爽多了。
踩着滑板遛狗
这里海水很凉,跟把手放在冬天的冷水管子下面差不多,几乎没有去游泳的,冲浪的倒有几个。大部分也就是卷着裤管在水里踩踩。沙子倒是很舒服,虽然不是特别的白,但很细很软,很适合躺在上面卖呆。
海边人不算多,大部分都是三五成群来晒太阳的,或者打沙滩排球。
某人因为身上这件T被搭讪2次
没带什么装备,我们在沙地里坐了会,就沿着桥溜达。一路都是钓鱼的人和各种商店,有卖东西的也有卖吃的,卖吃的地方好好个个生意都不错。中间有一个观鸟台。可以看见海鸟和海豹抢鱼吃,试着拍了半天,也没抢到太清楚的照片。
海鸟对人的存在,表现出各种淡定和不屑
是真的哦,就是不愿意搭理你
115360 visitors since 2005.9.29