Category Archives: 热点

Android 物联网初探

Android OS作为现今智能手机操作系统的老大,对智能设备的流行起到重要作用,从手机、平板到TV、手表、汽车等等,无处不在,无所不包,已然是现实意义的便携式设备OS的代表,虽然不同的设备厂商各怀鬼胎、高度定制,但不可否认Android OS确实推动了产业的迅速发展。随着智能设备的微型化和物联网的发展,Android团队也为我们带来了在物联网领域的又一力作-Android Things。与Android Wear、Android Auto一样,Android Things同样承袭了不开源的路子,预计后续开源的可能性也比较低。

Google在物联网领域主要有两方面:Android ThingsWeave

Android Things(原名为“Brillo”)是基于Android OS面向终端设备的一套定制化OS,旨在为了解决异构SoC物联网设备、不同传感器的数据处理等提出的一套解决方案,开发者只需要关注上层应用级别的数据传输和处理,同时还支持自定义传感器等元件的驱动。

Weave主要解决物联网对于后端数据传输和设备交互的需求,通过Google 的基础设施来采集、传输、交换、分析物联网的海量数据,同时联合其他厂商定义了一系列操纵设备指令使得设备可以通过Google Assistant这样的语音交互助手来完成对物联网设备的操控。

Android Things基于Android OS,在软件架构上没有太大的改动。

Android OS Architecture

Linux KernelHALNative C/C++ LibrariesAPI Framework沿袭了原有的架构和代码。在Framework同一层级上增加了Google Services(Google Mobile Services),这一模块是Google对Android设备提供完整移动服务的核心,在国内的Android手机上由于不可抗拒的原因无法提供服务,如果有幸能够买到Nexus、Pixel系列的手机,其实这些手机ROM的软件架构于此基本一致。除此之外还包含有一套IoT设备专有的支持库,它扩展了Android核心Framework API,以此来支持更多的传感器或者其他手机上不存在的硬件设备。

与手机平板相比,在App层面上有一个重大的区别,那就是Android Things的单应用运行模式。这意味着IoT设备在开机启动后第一个运行的应用就是当前开发的应用,即刻提供服务,像手机的电话、通讯录、日历、相机、Launcher等系统应用在此平台下都不再存在,这对开发者来说可能是一大变化。

Android Things Architecture

Android Things提供了对于物联网设备无差异的支持,但对于不同设备制造商、不同类型的传感器的数据传输、交换还是存在着巨大的鸿沟,这就是Weave存在的意义。Weave被定义为一个物联网的通信平台。不同OEM生产的物联网设备嵌入Weave SDK,然后通过Google Cloud基础设施与Weave服务器之间进行数据交换和收集。Weave联合一部分厂商定义了许多设备可操纵参数,比如灯的开关亮度、插座的开关、空调通风量等等,同时约束了一系列的设备注册流程和安全协议,通过这一系列的操作,可以让OEM厂商只需要关注设备本身以及提供的特定服务而无需关注设备与服务器之间的交互和数据传输。说到底这是一套完整的物联网数据交换解决方案,Google的野心也并非仅此而已,Google Cloud的基础设施,人机交互的指令定义,Google Assistant的原生支持,通道与终端的完整控制使得Google不再像Android OS一样脱缰狂奔,而是牢牢把握在自己手中。

Weave虽好,OEM厂商对此的支持又如何?这还是一个疑问,当前的SDK只支持Linux、高通、Marvell的特定芯片,同样的疑问还有,无法访问Google Services的中国用户怎么办?联想到之前推出的Android Wear中国版,或许是一个选择。

走走停停-致2016

快速浏览了一下过去三年的年终总结,没有红黑榜,不是年终奖,但工作顺利、父母健在、孩子欢乐生长、一切安康,这就是对自己一年生活最好的总结。

年龄就像树的年轮一样,指发之间只有自己无法看到年轮的痕迹,久别重逢的故人却一眼道出你脸上的青春和沧桑。回到老家大家都问:北京怎么样?工作累不累?压力大不大?要在北京定居吗?然后你的统一回复就是:北京冬天的雾霾确实很严重。话不对题,题不对味,索然无趣。你或许羡慕低头不见抬头见的是天安门,或许悲悯拥堵致死的地铁线,哪个更真实?我知道你不知道,你也不想知道,这些只是了然无味的谈资罢了。每天无数人走过一个个的街角,踏过一个个门槛,穿过一趟趟的地下铁,你喜欢用智能手机计步,他喜欢Apple Watch聊天。

无论答案是怎么样,对面的人都不可能得到一个满意的答案,因为我不是你,你也不是我,这就是鲜活的个体。

最好的时代也是最坏的时代,好在WiFi无处不在,坏在各种奇葩理性的存在。偶尔的断网手机欠费可能会让你浑身难受,两手局促地不知道放在身体的哪个部位合适,所以高管的肖像照都是双手交叉放于胸前,因为他们没带手机,哈哈。不幸在年前的这几天里宽带到期,每天晚上回家都需要面对没有网的生活,虽然手机还有4G网络可用,但刻意体验了一下没有网的日子,电视不需要,手机不需要,你以为你丢了个世界的热点、刷新的朋友圈,亲朋好友的联系,其实一切都在,一切都在运转,最亲密的人依然能够电话联络,一顿热饭不需要WiFi来烘培,一杯热水只需要水壶来烧开。我喜欢你静静的装逼走天涯,你喜欢他静静的看我。

之前和我在一个病房的老大哥,河北人,两个儿子一个闺女再加上自己老婆,四个人每天轮流照看,等到探看时间一到,大包小包的一下就都进来了;而我这边,老爸年龄大了耳朵沉,很多事情也搞不明白索性就没让他到医院里值班看着,这样就剩下了妹子和姐夫两个人。在农村人眼里,有人就有家,养活一个人就是一口饭;但生活在城市就截然不同,对一个孩子,一个个体的负责,不仅仅是一口饭,我们已经度过了兵荒马乱的年代,个体还需要接受教育、抵抗疾病意外、获取精神满足。在健康面前,我们习惯肆意放纵,做不完的工作可以拼命加班,吵架了过不下去可以离婚分家,活不过了可以杀人放火;哪一天当你猝然处于弥留之际时,你思考的是情、爱、自我,父母、妻子、儿女、当下的你,短暂未来的你;你再也不需要等价交换,钱也便没了意义,上帝只是等待收回它的最后一丝自然价值;你再也不能拼命工作了,因为你生命动能已然无存。如果你幸运最后呆在医院,全身插着各种管子、各种监测仪器,全身没有知觉,你只能看看白色的屋顶,外部的声音传入你的耳朵却无法带去震动的电信号,你唯一能做的就是不自主的眨一眨眼睛,有人说打喷嚏是唯一一个不自主可控的生理现象,但此时你连打一个喷嚏的能量都供给不上,或许喷嚏也是放弃了,时不时的周边围着一群表情严肃的白大褂,话语简短急促,你想对着口型思考他们到底说了什么,但却跟不上那语速,也就作罢。每天一个小时的时间,父母围簇、妻儿靠前、朋友襟坐,你还是只能眨眼,此刻你的眼神就是对他们最大的慰藉,因为你其他的都不会。很幸运,上帝怜悯了你一次,请你珍惜所有的渴求和梦想,遵从自然默默地活下去,爱着所有的人,与你与它,这个世界才算是美好。哪怕是意外,都是所有事情偶然的汇聚,有些事不会留下总结的机会,那你就寻着它去吧,爱过,喜怒哀乐过,这世界走过一遭,默默祈祷~

年终回顾自己的一年,工作时间虽占大半,想写却写不出来,反倒是自己业余的东西略有声色,不免有些伤感。蓄势,定信心,祝未来更好~

妹子虽记得我的生日,但每次还是要问我到底要过哪一个?农历一个、身份证一个、正确的公历一个,私下想,三个都过甚好,哈哈哈,最后也只能招得白眼。今年的生日在高铁上度过,做了目前最大的一笔财务投资,从3月份默默地看,再到5月份的疯涨,到8月份的无望,到年底的仰视,无奈和无助写在脸上是一定的。无奈财力有限,只能在有限范围内作出选择,这就是抓得住的幸福与稳定,当下的稳定和未来的期待一个都不能少。

2016,跌宕起伏,坎坷与幸福并存,本想着会很顺利的写下来,结果是一场难产的旅行,从元旦动笔一直写到农历年的最后一天,这恰似不能说的秘密,啊哟,不错哟~

2017,爱与祈祷~星星点点的注脚,点缀成繁花似锦、起起伏伏的Timeline~

 

全景图片格式

近期工作中学习了一些VR相关的技术点和相关资料,记录一下。

本文翻译自panotools.org,介绍了全景图片的几种格式。

原文链接

全景有一个宽泛的定义:将整幅地图或者部分的3D场景投影到一个2维度的屏幕或者输出上。不同的投影主要包括如下几种格式:

  1. 全球面格式
    1. 等间距
    2. 立方体
    3. “小星球”
  2. 部分球面格式
    1. 圆柱体
    2. 弧形
    3. 直线
    4. 部分球体

全球面全景格式

主要包括两种球面格式:等间距、立方体,这两种格式都能够水平360度、上下90度环绕的显示完整的视界。特定的浏览工具能够看特定的全景。

等间距

等间距格式使用广泛,比如PTViewer、SPi-V。它由单张横纵比2:1(注意:宽度必须是高度的2倍)的图片组成。

Equirectangular.JPG ‎(640 × 320 pixels, file size: 220 KB, MIME type: image/jpeg)

立方体

立方体格式是由环绕在我们周围的6个面来显示完整的视界。图片可以无缝被映射到立方面上。

广泛使用立方体格式是QuickTime VR,它将6个立方面压缩为一张JPG图片,在文件头信息中标识如何全景显示。另外一个例子是SPi-V,它将6个立方面放在一个单行或者单列中。SPi-V是将所有的立方面放置在一个横纵比为6:1的图片中。

Cubic.jpg ‎(400 × 300 pixels, file size: 26 KB, MIME type: image/jpeg)

“小星球”

这不是一种常用的格式,它映射的全景看起来像在地面上看远处的小星球。

Original file ‎(800 × 800 pixels, file size: 63 KB, MIME type: image/jpeg)

部分全景格式

部分球面的显示有很多种情况-这是因为它会在一个方向或者其他方向并不显示完整的视界。部分球面在短边上不能覆盖120度角(这意味着它们可以在一个方向上覆盖360度,但在其他方向上必须小于120度)的视界时可以直接显示。主要的格式有圆柱体、直线,部分球面全景也算是。

圆柱体

圆柱体全景能够显示水平方向的一圈或者一部分,它在水平全景中非常流行,如果是用于建筑物上,水平线(地平线除外)的弯曲问题可能比较麻烦。

Cylindrical.JPG ‎(640 × 320 pixels, file size: 210 KB, MIME type: image/jpeg)

弧形

它是圆柱体投影在某个部分的一种特殊情况。

Original file ‎(866 × 297 pixels, file size: 16 KB, MIME type: image/jpeg)

直线

直线全景显示物体就像一个普通镜头(非鱼眼)。水平和垂直的视界都被限定在120度角范围内。直线一直保持直线,所以这个格式对建筑物非常友好。但是如果视界范围太广,有时就被无形的扭曲在角落里。

Rectlinear.JPG ‎(640 × 358 pixels, file size: 213 KB, MIME type: image/jpeg)

部分球面

部分球面的应用领域就像上文讲述的全球面一样。它们多用于切断顶点或者低点。在这种情况下,垂直角度的视界必须被限制在防止观看者误解原图像上。

Equirectangular_cut.jpg ‎(640 × 320 pixels, file size: 129 KB, MIME type: image/jpeg)