Archives for mobile

Nexus 7 平板键盘的修改

经常用Android手机的朋友,应该都知道系统自带的键盘上,第一排字母键上面都有所谓的hint label,一般都是数字,这个有什么用呢?比如说如果你现在在字母的panel,但想快速输入一些数字和字母的mix,但又不想在数字和字母面板上切换来切换去,那只需要在想输入数字的时候长按这个数字对应的字母键,就能输入数字了。 这个是我最常用的特性之一,没想到在Nexus 7的键盘中居然把这个特性去掉了。不清楚作出这个决定的motivation是什么,但结果就是我用着很不爽。Android的好处是什么呢?一旦什么东西你用着不爽,你就可以修改让其用着爽。所以我就改了下IME的源代码,把第一排字母的hint label又加了回去,然后编译了一个可安装的版本出来。具体可以参考下图,左边是N7 tablet系统默认的键盘,右边是我修改后的键盘

Why Apple is acting like a silly bully these days?

Sign. Believe it or not, I used to love Apple a lot. If you know me in reality, I own a lot of Apple products. I have problems with stupid Apple fanboy, but I have no problem with some of the fantastic hardware from them. Like iMac or MBA. I never supported #boycottapple . I [...]

Hackborn的吐槽和Munn的剖析: Android graphics低性能背后的真像

Google+上有意思的讨论从未间断,几乎已是Google+的标志性特色了。最近两天,移动领域的爱好者都被Dianne Hackborn的一则吐槽所吸引。吐槽要火,两大因素不可缺少,一是该话题乃众人关注,却无统一意见。二是吐槽中有大料或者干货爆出,引人入胜。此番吐槽吸引人的地方,正是因为此吐槽是关于饱受争议的Android graphics性能的,自从Android推出的第一天起,graphics的渲染,动画切换等就为人诟病,到后来几乎成了果粉安粉大战的必备话题。而吐槽之人呢?是Android团队中比较senior的架构工程师Dianne Hackborn,相信关注Android开发的朋友,都不会对此女陌生。 为什么Dianne Hackborn身为Android内部人士,会突然公开讨论如此敏感的一个话题呢?用她自己的话说,就是“受够了外界谣传的关于Android图形渲染的不实信息”。我把她吐槽的大概重点归纳如下:

谈谈Android 4.0

昨天刚拿到Galaxy Nexus,把玩了差不多一天了。这篇文章并不想花大篇幅介绍这款机器的硬件和软件,如果你好奇,可以看一下下面这些知名网站的评测,再详细不过了 Engadget The Verge: 8.6/10(和iPhone4s同分) SlashGear Boy Genius Report TechRadar PhoneArena: 9.5/10 GigaOM:一个iPhone用户的评测 Gizmodo GigaOM 如果真要总结,那只有一句话,这是Android有史以来第一款能和苹果手机并肩的机器。这篇文章里,我就谈谈,在我眼里,Android的后续发展,和ICS的意义,当然都是结合了我在Google4个月的所见所闻以及感想。很多朋友希望看到我有一篇专门的实习总结,我想了想还是算了,首先我实习做的东西比较保密,没法说,其次也没什么写的,Google工作环境好,条件好,牛人多,大家都知道,没必要再吹一次。

当增强现实遇见移动

前两天看见一个新闻,sony在可能的psp3000手持设备上将引入一个新的关于增强现实的卖点:用摄像头将游戏中的造型以投影的方式带进现实世界,如图: 如果这是真的话,这将是非常有趣的卖点。据高级经理Petro Piasecki所说,他们搞这个已经搞了两年多了。在投影的背后,是对游戏者的感知:麦克风,多点触摸,motion感应,等等。 另一个类似的东西可以看这里

聊聊Xbox Kinect

昨天下单pre-order了Kinect,同时打消了长久以来买一个Wii的念头。和Wii类似但更先进,Kinect不需要任何控制器,就能追踪你的身体的3D动作并识别。简单来说,就是全身上下都参与游戏。我对Kinect为什么能做到这点很感兴趣,但找不到相关的正式论文以及技术白皮书,所以去网上查了一些对应的资料。从百度百科上看到,以色列公司PrimeSense是Kinect的主要测量技术提供商,所以去它们的台湾公司主页闲逛了一圈,收获不少。 总的来说Kinect的强大,主要还是体现在多重传感器的使用上,这是一个trend,不管是医疗电子化,还是虚拟现实,还是人机交互革命,新涌现的各种各样的传感器都将扮演重要的角色。比如Kinect,它的具体构造如图 小小一个设备,就包括了用于面部表情和动作识别的摄像头,深度传感器,和用于语音识别的多点阵列麦克风。他的工作原理大概是这样的,首先,正中间那个就是普通摄像头,顾及是用来识别和追踪身体的相应部位,追踪是靠底部的马达随着对焦物体的移动而转动实现的,这个技术倒是不新,麻烦的是图像处理的算法要有比较高的精度,所以需要用到的辅助信息来自于摄像头两边的深度传感器。这两个传感器分别由红外线发射器和红外线摄像机构成。个人猜测工作流程大概是,Kinect通过摄像头里面获得的视频流来判断面前的用户是否有动作,如果有,就通过发射器发射红外线,再用摄像机(一个CMOS image传感器)来收集反射回来的红外线,并计算出景深。这里,景深是关键,因为对于摄像头来说,可以通过可视范围内的像素做物体的识别,但这些物体哪些是人哪些是背景呢?景深就是一个很重要的信息了。有了景深,加上可能实现就有的人体识别的training数据(我估计Kinect事先已经内置了不少较为常见的人体形状与姿态数据),就可能达到很高的识别精度。 但景深的精准测量并不是很容易做到。一开始微软宣布Natal项目的时候,有人最早猜测判断人体位置是红外线测温度,但这个方面拿来成像还行,测距的话在实用中差了十万八千里,所以一开始我就觉得不靠谱。我最早听到Natal项目信息的时候,也猜了几种方法,比如两个摄像头分别扮演左眼和右眼的角色,拍摄3D影像,然后一个红外线传感器来检测深度,这是网上流传最广的方法。或者就是直接搞多个红外线测距器,扩大测距范围,这种方法简单粗暴,但我当时比较怀疑精度。 后来谜底揭晓,微软采用PrimeSense公司提供的光编码(light coding)技术,网上关于这个技术的描述如下: Light coding,顾名思义就是用光源照明给需要测量的空间编上码,与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑(laser speckle),是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。 我唯一不清楚的地方,就是该激光散斑是通过所有粗糙物体都会形成同样高随机性的衍射图案,还是说任何一个特定的粗糙物体对应一个unique的高随机性衍射图案。如果是前者,那么参考平面的截取和计算就会非常方便,如果通过数据共享甚至可以引入分布式的概念提高计算速度。如果是后者,那么每一台Kinect的参考空间都是不一样的,不仅出场时需要针对每一台设备进行校正,而且计算也必须都在本地进行,可能会带给Kinect潜在的运算性能隐患。 阵列麦克风这个技术好像也是PrimeSense提供的的,就是多组麦克风一起工作,方便噪音的消除,这个技术是很简单的,而且因为是阵列,几乎可以肯定这玩意用了Beamforming技术,因为这个模型能提供给你声源的大体位置。但对于商业产品来讲,要找到最合适的阵列排布比较困难,而且针对各个国家和口音的语料库也比较难做。当然以微软之力,这些应该都不是问题。因为没有拿到机器,我也不知道具体的效果会如何,要是不能分辨我这种Chingnish,就悲剧了。 上述技术结合起来,就形成了PrimeSense勾勒的这个场景 在没拿到设备之前,我对Kinect最大的担忧就是两点:延迟和精度。特别是深度检测和运动追踪的所有计算都在本地进行,到时候响应时间能否跟上剧烈运动类型的游戏,还需观察。当然,这些游戏可以针对Kinect做优化,这就是另外一方面了。至于精度,瓶颈很大程度上可能在于运动追踪,这个如果资料库足够大,我估计微软还是能handle的。 从Kinect的推出我们可以看到,未来的世界,是传感器的世界。各种各样的传感器会逐渐渗入人们的生活,和当年的手表一样普遍。而对于移动平台开发者来讲, 如何有效利用平台上的传感器 如何有效和别的互补平台上的传感器沟通 这两个课题深入研究下去,会很有意思,也会有很大的商业价值。

Samsung Galaxy S上手感受

先说一下配置 4 inch capacitive Super AMOLED Display 1GHz Hummingbird processor 1500mAh lithium ion battery 5MP camera with 720p video recording 2GB microSD card preloaded 在最新一代Android手机中做出选择时,由于EVO和DroidX都缺少移动计算研究中一个杀手级的部件:陀螺仪,所以,硬件配置不相上下的Sumsang Galaxy S就成了我的唯一选择。我是从Tmobile买的Sumsang Vibrant,实际上和原版Galaxy S是一模一样的,区别就是多了一坨我用不着的程序。 直入主题吧,先来一张包装照

移动设备智能化的基石–从iPhone4的传感器谈起

毫无疑问,今天的智能手机已经是人们注目的焦点,作为移动计算最坚定的鼓吹者,我实在想不出它将来不风卷整个世界的理由。它小巧,易携,功能却很强大,可以用它当照相,摄像,玩游戏,玩虚拟现实应用,当然,最重要的一点,就是可以拿来装B。它可以通过你的不同动作来辨别你对它的控制期许,根据你的使用情况进行实时反馈。它是未来数字世界智能化的先锋,也是单身青年的泡妞利器。但是,在你在无聊时大玩Labyrinth2迷宫滚球时,当你在追女孩时拿出手机在Google Map上找酒吧时,当你手持iPad在飞机上低调不语还能引来空姐围观时,有没有仔细想过,是什么东西将这种新潮,智能,百般武艺样样精通的光环带给移动手机呢?

从Twitter看移动平台的信息快餐文化

毫无疑问,以twitter和facebook为首的social network,正在改变我们的生活。我们每天在上面分享,寻找,交流,甚至游戏。09年的一份报告曾经指出,在美国,几乎有20%的互联网用户使用twitter来分享和阅读信息。Facebook的流行程度更不需要我赘述了。在这些正在如火如荼发展的趋势下,人和信息交互的方式,也在不知不觉中被“革命”。我们知道,一个人,要获得信息,需要媒介。同样的,作为信息源的twitter和facebook等服务,也需要一个合适的媒介去将信息推送给人们。传统的台式机市场已经无法满足现代人对于信息的渴求,而同样正在冉冉升起的另一个新兴市场,则是移动市场。从智能手机,到tablet,到轻便级别的笔记本,人们越来越多得依靠非固定,非台式机的媒介去获取信息。 公平地说,移动市场才是social network的最佳媒介,因为只有移动设备才会在大面积时间里面陪伴着用户,并频繁被用户所关注,也只有移动设备才能随时随地获取用户的相关信息。举几个信息源在移动设备上应用的例子:

Gingerbread,向左走还是向右走?

今天网上广为流传的消息,是来自TechCrunch的,Android团队正在努力解决用户体验的问题。伴随而来的,是Google正在考虑停止厂商自定义UI的权利,包括Sense UI、Moto Blur、Ninja Blur等等,原因是Google认为这些界面实际上是拖慢了系统速度,却没有带来什么实质性好处,还给升级平添一道障碍。如果消息属实的话,Android还说Gingerbread的用户体验能接近iPhone。 刚读到这个消息时,我的第一感觉是,这是一个代表Android发展分叉口的版本,成败,可能就在此一役,而且,一旦消息属实,Android是在进行一个大的赌博。

Android并不伟大,但丝毫不令人沮丧

自从Google IO大会之后,Android单挑iPhone OS的新闻甚嚣尘上。人们开始真正对这场所谓的战争感兴趣,并不厌其烦一次又一次地去将所有的细节放在放大镜下分析。昨天在twitter上看到朋友分享的cnbeta的一篇文章—为什么说Android令人沮丧,看完之后的感想就是,很多观点实在无法认同,并且,文章中充满了自己的想象,然后把自己的想象以事实的口吻说出。举两个例子。该文说 Google控制社区的核心手法就是频繁升级Android的同时少量修改API,造成兼容性问题。 我不明白没有API的升级的话,一个新系统如何保证竞争力。Android目前的发展阶段决定了每一次major update都必然伴随API的改动,原作者却想当然认为这是Google控制社区的核心手法,是Google为了“故意造成兼容性”的手段。我们国家的人民现在对什么事情估计都能联想到“阴谋论”了。 当年Windows Mobile就是死在三方ROM之上,Android不过是在重复Windows Mobile的老路。 我不知道作者有什么证据说当年Windows Mobile就是死在三方ROM之上的,难道他统计过Windows Mobile用户自己刷ROM的比例?实际上,这个衰落的原因主要在于下面几点 Windows Mobile可靠性差,可用性差,反应奇慢,用户体验差得发指。 Windows Mobile的一些常用软件很难让人满意,比如以前的IE。 Windows Mobile的创新太少太慢。这个是关键点。Windows Mobile早期手机很贵,面向的是比较小众的高端市场,又没有好的系统表现,不过由于MS的影响力和推广,总算还是有不错的份额。iPhone和Android崛起的时候,微软没有想过问题的严峻性,继续不紧不慢躺在老版本上做小改动,而且release一个几乎没啥创新的新版本都要按年来计。随着iPhone和Android就像赛跑一样发布一个个重量级的新版本系统时,微软开始着手这些问题的改进了,可惜的是,iPhone和Android已经吸引走了大批开发者,而且从系统本身性能和特性来讲,Windows Mobile再也不占任何优势。 所以,Windows Mobile之衰败,主要是自己系统的原因,归咎于第三方ROM实在不公平。事实上,除了Geek和有不浅的电脑知识的人,大部分普通用户在购买手机之后都不会去刷ROM。 回到正题。这里,我展开谈谈,为什么Android不仅不令人沮丧,反而可以算是表现优异。

Tablet不可逆转的潮流

和一些Google的爱好者以及开发者不同的是,我并不排斥苹果的产品。从iPad刚推出开始,我就一直跟进其动向,因为我觉得,这就是移动计算的半个未来。另半个自然就是手机了。在忙完今年上半年的几个paper之后,我迅速入手了iPad并试玩了很多应用。每天起来浏览一下新闻,图片和rss,闲暇时间上网或者逛逛youtube,所有的pdf传到上面看,晚上看看iBook里面的书。LD会经常在上面玩钢琴程序,连连看游戏,也会用sketch画画。顺便放两幅试手之作 总体来讲,我对它的评价可以总结为: 缺点很多 革命性的产品

未来十年移动计算发展十大趋势

移动计算领域是一个发展极快,潜力极大,市场极广的领域,只要你抓住了某个创新点,你就可能成功。说起来容易,但实际上,如何判断你想做的东西是一个创新点呢?擒贼的时候要先擒王,找点的时候要先找面。这里,你必须理清大方向上的思路,才能捋出创新的小细节。这就是所谓的Big picture。Rudy de Waele,一个移动领域的专家,专门请了一些移动领域比较牛的人,针对未来十年移动计算发展的趋势分别各自进行了预测,并以博文形式登出。虽然人很多,说得很多,但是大部分东西都可以抽象成某个相同得领域或者方向。这里,我把有意思的内容归纳成十类并翻译过来,同时添加了自己的评论,也算是给自己以后的research提供一些big picture的参考吧。所有的预测我都是用一句话概括,预测下面的段落都是我的评论。需要说明的是,这些方向并不是完全独立不相交的,很多方向已经就包括了其他方向的大部分技术,只是应用领域的不同。 1 环境检测系统 这是我目前正在关注的东西之一,有点类似于手机和传感器的结合。目前来看这种结合还不是很方便,原因是手机较小,结合多种传感器比较麻烦。但如果水果的平板电脑一推出能引领和以前iPhone一样的潮流的话,那就不一样了,平板电脑结合传感器,考虑到其体积,难度不该太大。一旦这玩艺结合到移动设备中,environmental sensing将是一个巨大的市场,能做的东西也很多。有兴趣的朋友可以和我邮件讨论以下这方面的东西。从我个人观点来看,tablet将有一天取代laptop而成移动设备主流的。

Android上的skype

传说Skype要单飞了,不错,作为其忠实用户,还是比较看好它的发展的,当然在中国除外,天朝的儿子移动和联通肯定是不会放过他的。而Skype在移动设备上的发展还算比较顺利,wm上的skype以前用的很high,苹果上的skype甚至成为iPhone必须被阉割才能进入中国的源泉。甚至Symbian上也有Fring让你用。不管怎么说,你都是可以用的,最多就是效果没有台式机好而已。 问题是到了Android,恩,这个问题就大了。Skype官方推出了Skype-lite版本的软件,这个软件最大的特点——也是唯一的特点——-就是即使是skype < ==> skype的通话也是要收本地话费的!你见过这么扯淡的Voip软件么?

这一年来玩过的手机

来个全家福 这些都是我这里的。至于类似于iPhone或者别的是玩朋友的,我就不列了。 喜爱程度排名: HTC Hero > Nokia N810 >>>> Nokia N95 > HTC Diamond