IOS设计施炯谈WP7设备上的传感器开辟仓酷云
很多框架是用C写的学习iOS开发基础可以按照下面两个方面学基础(原料钢铁塑料)在7月5日,由天翼空间·开辟者工场主理,InfoQ帮忙筹划的第十一期专家讲坛举动上,来自WindowsEmbedded偏向MVP施炯(@浙万院电信物联网专业-施炯)向开辟者先容了WP7设备传感器开辟的相干常识,次要谈到了Accelerometer类、Compass类和Gyroscope类的利用,MotionAPI的利用,并针对开源控件AccelerometerHelper、ShakeGestureLibrary举行了分享。SensorsOnWP7(讲稿下载)
分享次要包括WP7设备传感器设备简介,怎样利用Accelerometer、Compass和Gyroscope,实例项目RunningMate理论等。
WP7设备上包括的传感器次要有减速计(Accelerometer)、麦克风(Microphone)、A-GPS、摄像头(Camera)、罗盘(Compass)、陀螺仪(Gyroscope)。
减速计次要用来检测手机遭到的减速度巨细和偏向,手机静置时只遭到重力减速度影响,以是又有人把减速计功效又叫做重力感到功效。WP7里的减速度计也可以呼应手机的俄然挪动,好比抖动或俄然晃悠,能够用来仿真骰子或其他范例的随机活动。减速计一般有三个轴(x,y,z),同时遵守笛卡尔右手坐标体统。在开辟过程当中,必要注重Landscape分为左Landscape形式和右Landscape形式。
罗盘也称之为磁力计,次要用来测试磁场强度和偏向,磁力计的刚强在于定位设备的方位。能够丈量出以后设备与西北东南四个偏向上的夹角。磁力计次要供应了以上层面的数据:
[*]HeadingAccuracy:偏向唆使的精度
[*]MagneticHeading:与地磁北极的偏角
[*]TrueHeading:与地舆北极的偏角
[*]MagnetometerReading:从磁力计失掉的原始数据,以微特斯拉为单元
因为遭到内部电磁场的搅扰,会使到手机的Compass数据精度下降,在这类情形下,我们必需提醒用户阔别磁场搅扰,而且对Compass举行校准。在WindowsPhone7上,与CurrentValueChanged一样,OS为Compass供应了校准事务处置compass_Calibrate。在OS检测到headingaccuracy的相对值年夜于20度时,就会触发该事务。在对Compass举行校定时,一样平常显现一个图片,提醒用户敌手机举行绕“8”字挪动。
陀螺仪就是外部有一个陀螺,它的轴因为陀螺效应一直与初始偏向平行,如许就能够经由过程与初始偏向的偏向盘算出实践偏向。手机里陀螺仪实践上是一个布局十分严密的芯片,外部包括超巨大的陀螺。陀螺仪丈量是参考尺度是外部两头在与空中垂直的偏向长进行动弹的陀螺。经由过程设备与陀螺的夹角失掉了局。陀螺仪的刚强在于丈量设备本身的扭转活动。对设备本身活动更善于。但不克不及断定设备的方位。
MotionAPI所做的事变,实在质就和GPSID相似。在使用程序开辟过程当中,假如开辟者猎取原始的传感器数据,然后对其数据举行剖析,从而往判别手机的姿势和挪动偏向,如许一个处置流程的确有点庞大,并且偶然候也很难处置,如减速度传感器的前往值中,不单单包括了手机挪动的减速度,还包含了重力减速度(现实上,在WindowsPhoneOS7.0上,处置减速度传感器时,我们切实其实是必要履历下面的历程)。
因而,在WindowsPhoneOS7.1(Mango)中,引进了MotionAPI,用它来对底层的传感器数据举行剖析和处置,从而失掉开辟者必要的信息,如设备的姿势(yaw,pitch,androll)、扭转减速度和线性减速度。必要注重的是,一代的WindowsPhone7手机没有开放MotionAPI。因而,假如想要在WindowsPhoneOS7.0上写基于Motion的使用程序,那是没法完成的。可是,自从这个月初微软供应了Mango晋级今后,良多设备厂商都对其临盆的WP7推送了Mango更新。在OS晋级今后,有些设备就供应了对MotionAPI的撑持。
别的,在分享过程当中,施炯还排列了开辟中的一些注重点:
[*]WP7OS7.0和7.1的减速度传感器数据猎取办法差别:ReadingChangedvsCurrentValueChanged
[*]硬件限定要素,如Focus前往的最年夜减速度为2g
[*]传感器数据更新的工夫距离:TimeBetweenUpdatesInterval
[*]Accelerometer:20ms
[*]Compass:25ms
[*]Gyroscope:5ms
[*]Motion:17ms
[*]Compass与Gyro前往的数值分歧:Compass前往角度,Gyro前往弧度
在问答环节,施炯回覆了网友的发问,具体信息以下:
问:WindowsPhone都有哪些传感器接口?是否是一切WindowsPhone都具有这些传感器?
答:WindowsPhone次要的传感器包含减速度传感器、数字罗盘、陀螺仪等等。必要注重的是,并非任何一个WP7手机都撑持这些传感器。好比,Compass并非必需的。换句话说,微软并没有对其举行强迫划定,硬件厂商能够依据本人的志愿来选择是不是对其临盆的WindowsPhone7设备到场数字罗盘的撑持。比方,关于我的三星Focusi917而言,它撑持减速度传感器和Compass,可是却其实不撑持Gyro。
问:WP传感器都能够用来哪些相干范例使用软件的开辟,是不是必要外界硬件设备的撑持?
答:WP传感器对照多,能够用到良多使用中,有游戏、工具等等。开辟这些使用,起首要确保你的手机撑持这些传感器,如许才干调试。今朝SDK的摹拟器中,只给出了减速度传感器的摹拟。
问:WindowsPhoneRTM版本和WindowsPhoneMango版本有甚么分歧呢?
答:RTM就是OS7.0,Mango就是OS7.1。
问:PhoneGap是不是供应了对传感器的撑持?
答:PhoneGap撑持减速度传感器和数字罗盘,详细信息可参考:GettingStartedwithWindowsPhone。
问:基于陀螺仪API能够开辟哪些范例的wp7使用呢?感到对陀螺仪的感化和相干使用仍是不太分明?
答:陀螺仪的数据反应了手机在三个轴偏向的扭转减速度。绝对而言,我以为MotionAPI中的三个姿势加倍有效。
关于讲师
施炯,新浪微博账号@浙万院电信物联网专业-施炯,卒业于北京邮电年夜学信息与通讯工程学院,获工学博士学位,曾任MicrosoftWindowsPhone/MobileMVP,现任WindowsEmbedded偏向MVP,微软中文手艺论坛(MSDN)版主,专业的乐趣喜好为嵌进式体系,出格是基于WindowsPhone、WindowsMobile和WindowsEmbedded平台的使用开辟。其博客地点:http://www.ckuyun.com/dearsj001/。
还有很多工具需要学iOS5的SDK已经支持ARC可以自动进行release但是对iOS4的支持还有一个小问题现在要开发应用可能还需要按照之前的MRC的方式allocreleaseretainautorelease之类的内存管理方法 以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。 近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来, 同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。 要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。 其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。 好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。 在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解 培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦, 中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者, 特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地 最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 边吃零食边看Stanford的视频教程 众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。 培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。 其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。 学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。 这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。 好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
页:
[1]